Swift Package Manager: Package.swift ๊ฐ„๋‹จ ๊ตฌ์กฐ ์ •๋ฆฌ

Swift Package Manager: Package.swift ๊ฐ„๋‹จ ๊ตฌ์กฐ ์ •๋ฆฌ

์•„๋ž˜ ๋‹ค๋ฃฐ ์ฃผ์ œ 1. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์™€ Package.swift ์•ˆ์˜ 1:1 ๋งค์นญ ๊ตฌ์กฐ 2. Package class์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ 1. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์™€ Package.swift ์•ˆ์˜ 1:1 ๋งค์นญ ๊ตฌ์กฐ ํŒจํ‚ค์ง€ ์ด๋ฆ„๊ณผ 1:1 ๋งค์นญ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ตฌํ˜„ ํƒ€๊ฒŸ ์„ค์ • ํ…Œ์ŠคํŠธ ํƒ€๊ฒŸ์€ "ExampleTarget"๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์˜์กด์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ํ…Œ์ŠคํŠธ ํƒ€๊ฒŸ ์„ค์ • 2. Package class์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ name: Swift ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„ products: ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ œํ’ˆ๋“ค์˜ ๋ชฉ๋ก .library -> name: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„ .library -> targets: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œํ’ˆ์— ๋ฌถ์—ฌ ์žˆ๋Š” ํƒ€๊ฒŸ๋“ค. targets: ์ฝ”๋“œ ๋ชจ๋“ˆ, ํ…Œ์ŠคํŠธ ์ •์˜ .target -> name: ํƒ€๊ฒŸ ์ด๋ฆ„ ..

  • textsms
Swift5.9 Macro(๋งคํฌ๋กœ) ๋งŒ๋“ค์–ด๋ณด๊ธฐ

Swift5.9 Macro(๋งคํฌ๋กœ) ๋งŒ๋“ค์–ด๋ณด๊ธฐ

๊ฐœ๋ฐœ ์ค‘ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋Š” ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์–ด๋ ต๊ฒŒ ํ•˜๊ณ , ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ๋ชจ๋“  ๊ด€๋ จ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ '๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ(Boilerplate)'๋ผ ๋ถ€๋ฅด๋ฉฐ, ๊ฐœ๋ฐœ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ํ•˜์ง€๋งŒ ์ฝ”๋“œ ์–‘๊ณผ ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. Swift5.9์—์„œ๋Š” ๋งคํฌ๋กœ๋ฅผ ํ†ตํ•ด ์œ„ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ–ˆ๋‹ค. Swift ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์•ฑ์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋” ํ‘œํ˜„์ ์ด๊ณ  ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  Swift ํŒจํ‚ค์ง€์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ ๋‹ค๋ฃฐ ์ฃผ์ œ๋ฅผ ์ •๋ฆฌ ํ–ˆ๋‹ค. (Xcode15.2 ๊ธฐ์ค€) 0. ์˜ˆ์‹œ ์†Œ๊ฐœ 1. ๋งคํฌ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‹คํ–‰ 2. ๋งคํฌ๋กœ ๋™์ž‘ ๋ฐฉ์‹ 3. ๋งคํฌ๋กœ ํ…Œ..

  • textsms
Swift Package Manager(SPM)๋ฅผ ์ด์šฉํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“ค๊ธฐ Step By Step

Swift Package Manager(SPM)๋ฅผ ์ด์šฉํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“ค๊ธฐ Step By Step

Swift Package Manager๋ฅผ ์ด์šฉํ•ด์„œ ๋‚ด๊ฐ€ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ์œ ๋ช… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Alamofire, Snapkit, RxSwift, Kingfisher, SDWebImage..)๋“ค๋„ SPM๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐํฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Xcode15.2๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ ๋˜์—ˆ๋‹ค. 1. Launchpad ์„ ํƒ 2. Xcode ์‹คํ–‰ 1. Xcode๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ชจ๋‹ˆํ„ฐ ์™ผ์ชฝ ์ตœ์ƒ๋‹จ File ๋ฉ”๋‰ด๋ฅผ ์„ ํƒ 2. New ๋ฉ”๋‰ด ์„ ํƒ 3. Package ๋ฉ”๋‰ด ์„ ํƒ 1. Multiplatform ๋ฉ”๋‰ด ์„ ํƒ 2. Library ์„ ํƒ 3. Next ์„ ํƒ 1. ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ž‘์„ฑ 2. Source Control ์ƒ์„ฑ ์œ ๋ฌด. Github์— ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜ฌ๋ ค์„œ ๋ฐฐํฌ..

  • textsms
Swift Package Manager(SPM)๋ฅผ ์ด์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Swift Package Manager(SPM)๋ฅผ ์ด์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Swift Package Manager(SPM)๋Š” Swift ์–ธ์–ด๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋‹ค. ์—ฌ๊ธฐ์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ž€, ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋ฅผ ๋งํ•œ๋‹ค. ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ , ์ถ”๊ฐ€ํ•˜๋ฉฐ, ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค. CocoaPods, Carthage์™€ ๊ฐ™์€ ๊ธฐ์กด ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋„๊ตฌ๊ฐ€ ์žˆ์ง€๋งŒ, SPM์€ ํŽธ์˜์„ฑ๊ณผ ๋นŒ๋“œ ์†๋„์˜ ์ด์ ์„ ๊ฐ€์ ธ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์• ํ”Œ์—์„œ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” 1st party ์˜์กด์„ฑ ๋„๊ตฌ์ด๋ฏ€๋กœ ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง€๊ณ  ์žˆ๋‹ค. Swift Package Manager๋Š” Swift ์–ธ์–ด์— ๋‚ด์žฅ๋œ ๋„๊ตฌ๋กœ, Xcode์™€ ํ•จ๊ป˜ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ๋‹ค๋ฅธ ์–ธ์–ด์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ๋Š” JavaScript์˜ npm,..

  • textsms