๊ฐ์
์ก์ก ์๋
ํ์ธ์ ์ด์์
๋๋ค๐ฅณ, ์ค๋์ ์ค์ํํธ ํจํค์ง ๋งค๋์ (SPM)์ ๋ํด ์์๋ณด๋ คํด์.
SPM์ Swift ์ธ์ด๋ก ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ํ๋ก์ ํธ์์ ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ๊ณ ๊ด๋ฆฌํ๋ ํต์ฌ ๋๊ตฌ ์ค ํ๋๋ก Apple์ ๊ณต์ ๋๊ตฌ์์. ๋ฐ๋ผ์ Cocoapods ํน์ Carthage์ ๊ฐ์ 3rd party tool์ด ์๋๋ฉฐ, Xcode11 ๋ถํฐ ๋ด์ฅ ๊ธฐ๋ฅ์ผ๋ก ์ ๊ณต๋์ด์ง๊ณ ์๋ 1st party์์.
SPM์ Swift ๊ฐ๋ฐ์๋ค์๊ฒ ์์ค ์ฝ๋์ ๋ชจ๋ํ, ์ข
์์ฑ ๊ด๋ฆฌ, ๋น๋ ํ๋ก์ธ์ค ์๋ํ, ํ
์คํธ ์ง์ ๋ฐ ํจํค์ง ๊ณต์ ๋ฅผ ์ํ ๋ค์ํ๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ฅผ ์ ๊ณตํด์.
ํน์ง
- ์์กด์ฑ(์ข
์์ฑ) ๊ด๋ฆฌ: SPM์ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ์ ํ์ํ ์ธ๋ถ ํจํค์ง ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ถ๊ฐํ๊ณ ๊ด๋ฆฌํ ์ ์์ด์. ์ด๋ก์จ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์์ด์.
- ์๋ ๋น๋: ํจํค์ง ๋ฐ ์ข
์์ฑ์ ๋น๋ ํ๋ก์ธ์ค๋ SPM์ ์ํด ์๋์ผ๋ก ์ฒ๋ฆฌํด์. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ณต์กํ ๋น๋ ์คํฌ๋ฆฝํธ ์์ฑ์ ํํผํ๊ณ ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ์ ์ง์คํ ์ ์์ด์.
- ํ๋ซํผ ํธํ์ฑ: SPM์ macOS, iOS, watchOS, tvOS ๋ฐ Linux์ ๊ฐ์ ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ๋ซํผ์ ๋ฐ๋ฅธ ์ข
์์ฑ์ ์ ์ํ ์ ์์ด์.
- ํตํฉ ํ
์คํธ: SPM์ ํจํค์ง์ ๋ํ ํ
์คํธ๋ฅผ ์ง์ํ๋ฏ๋ก ์ฝ๋์ ํ์ง์ ์ ์งํ๊ณ ๋ฒ๊ทธ๋ฅผ ์ฌ์ ์ ์ฐพ๋ ๋ฐ ๋์์ ์ค์.
- Git ๋ฐ ์๊ฒฉ ์ ์ฅ์ ์ง์: ํจํค์ง๋ฅผ Git ๋ ํฌ์งํ ๋ฆฌ๋ ๋ค๋ฅธ ์๊ฒฉ ์ ์ฅ์์์ ๊ฐ์ ธ์ค๊ฑฐ๋ ๊ณต์ ํ ์ ์์ด์. ์ด๋ ์คํ ์์ค ํ๋ก์ ํธ์ ํ์
๊ณผ ํจํค์ง ๊ณต์ ๋ฅผ ๊ฐํธํ๊ฒ ๋ง๋ค์ด์.
- ๊ฐ๋จํ ๋ช
๋ น์ด: SPM์ ๋ช
๋ น ์ค ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ๋๋ฉฐ, ์ด๊ธฐ ์ค์ ๋ฐ ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ํ ๊ฐํธํ ๋ช
๋ น์ด๋ฅผ ์ ๊ณตํด์.
ํจํค์ง(Package) ์ถ๊ฐ
-
Xcode ํ๋ก์ ํธ๋ฅผ ์ด์ด .xcodeproj ํ์ผ์ ์ด์ด์ฃผ์ธ์.
-
์ผ์ชฝ ํจ๋์ PROJECT๋ฅผ ์ ํํ๊ณ Package Dependencies ํญ์ ์ ํํด์.
-
์ข์ธก ํ๋จ์ โย ๋ฒํผ์ ํด๋ฆญํด์.
-
์ฐ์ธก ์๋จ์ ๊ฒ์์ฐฝ์์ ์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฃผ์๋ฅผ ์
๋ ฅํด์. ์ ํฌ๋ Alamofire
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฃผ์
ํด๋ณผ๊ฒ์. https://github.com/Alamofire/Alamofire.git ์ ๋ณต์ฌํ์ฌ ๊ฒ์์ฐฝ์ ์
๋ ฅํด์ฃผ์ธ์.
Dependency Rule
- Up to Next Major Version: ์ฃผ์ด์ง ์ฃผ์ ๋ฒ์ ๋ถํฐ ๋ค์ ์ฃผ์ ๋ฒ์ ๊น์ง์ ๋ชจ๋ ๋ฒ์ ์ ํ์ฉํด์.
- Up to Next Minor Version: ์ฃผ์ด์ง ๋ง์ด๋ ๋ฒ์ ๋ถํฐ ๋ค์ ๋ง์ด๋ ๋ฒ์ ๊น์ง ํ์ฉํด์.
- Range of Versions: ์ฃผ์ด์ง ๋ฒ์ ๋ด์ ๋ชจ๋ ๋ฒ์ ์ ํ์ฉํด์.
- Exact Version: ์ ํํ ๋ฒ์ ๋ง์ ํ์ฉํด์.
-
Alamofire๊ฐ ์ ํ๋ ์ํ์์ ์ฐ์ธก ํ๋จ์ Add Package ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ด ์ถ๊ฐํ ํจํค์ง ๋ชฉ๋ก์ด ํ์ถ๋ผ์. ๋ค์ Add Package ๋ฒํผ์ ๋๋ฌ์.
-
์ข์ธก ํ๋ก์ ํธ ๋ค๋น๊ฒ์ดํฐ์ Package Dependencies์ Alamofire 5.8.0 ๋ฒ์ ์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ผ๋ฉฐ, .xcodeproj์ Package Dependencies์์๋ ํ์ธํ ์ ์์ด์.
๋!