# Week7 S4 ## ๐ŸŽ ์บ ํผ.sorted { $0.id < $1.id } | ์บ ํผ | ์ด๋ชจ์ง€ |์„ค๋ช… | | :-: | :--: | :-: | | `S002 ๊ฐ•๋ฏผ์ƒ` | ๐Ÿ’ป | ์Šคํƒ€๋ฒ…์Šค์‹œ๋Ÿฌ (๊ด€์•… ๋ณด์ด~) | | `S005 ๊น€๋‘์—ฐ` | ๐Ÿ‘ป | ๐Ÿ‘ป๐Ÿ‘ป๐Ÿ‘ป๐Ÿ‘ป๐Ÿ‘ป์ •์•„ ๊น๋ถ€ ใ…Žใ…Ž (๋ถ€์ฒœ ๋ณด์ด~) | | `S012 ๊น€์šฐ์žฌ` | ๐Ÿ’ป | ๋“œ๋ฆฝ ์ฒœ์žฌ (์ˆ˜์› ๋ณด์ด~) | | `S014 ๊น€ํƒœํ›ˆ` | ๐Ÿ˜ | ์žฌ๋ฐŒ๋Š” ๋ถ€์บ  ๊ธฐํญ์ œ (์ธ์ฒœ ๋ณด์ด~) | | `S018 ๋ฐ•์˜๊ด‘` | ๐ŸŽƒ | ๋ถ€์บ  ํ•ต์ธ์‹ธ ์•„์›ƒํ’‹ (๊ด‘์ง„ ๋ณด์ด~) | | `S021 ๋ฐ•์ •์•„` | ๐Ÿ˜š | ๋ฆฌ๋“œ๋ฏธ ๊ฑธ~ (๋ณด๋ผ๋งค ๊ฑธ~) | | `S036 ์ด๋‚˜์ •` | โœˆ๏ธ | ๋ฐ”๋‹ค๋ณด๋ฉด์„œ ์ฝ”๋”ฉ์ค‘ (์ œ์ฃผ ๊ฑธ~) | | `S047 ์ด์ฒญ์ˆ˜` | ๐Ÿฑ | ๊ณ ์–‘๋‹˜ ๋ชจ์‹œ๋Š” ์ค‘ (์•ˆ์‚ฐ ๋ณด์ด~) | </br></br> ## ๐Ÿ›€๐Ÿป @required ์‰ฌ๋Š”์‹œ๊ฐ„ - [x] 14:15 ~ 14:30 - [x] 15:30 ~ 15:45 - [x] 16:10 ~ 16:30 </br></br> ## ๐Ÿ’ก ์ฃผ์ œ ### 1. ํ˜‘์—… #### ํ˜‘์—… ๋ฐฉ๋ฒ• - Jira(L?) ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒ€๋„ ์žˆ์Œ(Atlassian) - ๊ฑฐ์ฐฝํ•ด์„œ ๊ตณ์ด ๋‘˜์ด์„œ ํ•˜๊ธฐ์—” ๋ณ„๋กœ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค - publicํ•˜๊ฒŒ ํ• ๋• ๊นƒํ—ˆ๋ธŒ ๊ด€๋ฆฌ๋ฅผ ์ž˜ ํ•˜๋ฉด ์ข‹๊ฒ ์œผ๋‚˜ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” private์ด๋ผ ๋…ธ์…˜์„ ํ™œ์šฉํ•˜๋Š” ํŒ€์ด ๋งŽ์•˜๋‹ค. - ```๋ฏผ์ƒ & ์˜๊ด‘``` : ์šฐ๋ฆฌํŒ€์€ 2๋ช…์ด๊ณ  ๊ทœ๋ชจ๋„ ์ž‘๊ธฐ ๋–„๋ฌธ์— github project, issues๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ์ • ๊ด€๋ฆฌ๋ฅผ ๋…ธ์…˜์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. - ```๋‚˜์ • & ํƒœํ›ˆ``` : ๋…ธ์…˜์— ํฐ ๊ณ„ํš์„ ์ •๋ฆฌํ•˜๊ณ  ์ฒดํฌํ•˜๋ฉด์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์€ ํ•œ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ ํ›„ ์ฝ”๋“œ ํ•ฉ์น˜๋Š” ์‹์œผ๋กœ ํ˜‘์—… - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : driver, navigater ๋ฅผ 3, 4์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. - ```๋‘์—ฐ & ์ •์•„``` : Notion์˜ timeline ๊ฐ€๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ๊ณ„ํš์„ ์„ธ์› ๊ณ  ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€์— ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์„œ๋กœ๊ฐ€ ๊ทธ๋•Œ๊ทธ๋•Œ ์ •ํ•œ ๊ธฐ๋Šฅ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ์น˜๋Š” ์‹์œผ๋กœ ํ˜‘์—…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. #### StoryBoard ๋ถ„๋ฆฌ? (reference?) - ```๋ฏผ์ƒ & ์˜๊ด‘``` : ์Šคํ† ๋ฆฌ ๋ณด๋“œ๋กœ ์“ฐ๋Š”ํŽธ! ์Šคํ† ๋ฆฌ ๋ณด๋“œ๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ์ˆ˜์ •์‹œ git conflict๊ฐ€ ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” ๋ฏผ์ƒ๋‹˜์ด ๋‹ด๋‹นํ•˜์˜€์Šต๋‹ˆ๋‹ค. - ```๋‚˜์ • & ํƒœํ›ˆ``` : storyboard reference ์‹œ๋„ํ•ด๋ดค์ง€๋งŒ ์‹คํŒจ ใ…  - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ๋Š” ์ž‘์—…์€ ์งํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•˜๊ณ  ๋กœ์ง๋งŒ ๊ฐ์ž ์ž‘์—… - ```๋‘์—ฐ & ์ •์•„``` : 100% ์ฝ”๋“œ๋กœ๋งŒ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๋„์ „์ค‘์ž…๋‹ˆ๋‹ค (๐Ÿ‘ ๋ฆฌ์ŠคํŽ™...), - SnapKit ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ (๋ฆฌ๋ทฐ๋ฅผ ๋“ฃ๊ณ ) ๊ธฐ๋ณธ autolayout ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. #### ํ™”๋ฉด๋‹จ์œ„, ๊ธฐ๋Šฅ๋‹จ์œ„? ์–ด๋–ค ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์„œ ์ž‘์—…ํ–ˆ๋Š”์ง€ - ```๋ฏผ์ƒ & ์˜๊ด‘``` : ๋ฉ”์ธ ํ™”๋ฉด์—์„œ๋Š” ์„œ๋กœ ๊ฐ™์ด ์งœ๊ณ  ๊ทธ ์ดํ›„์— ์ค‘๋ณต๋˜๋Š” ์ž‘์—…๋“ค์€ ๋‚˜๋ˆ ์„œ ํ–ˆ์Šต๋‹ˆ๋‹ค. - ```๋‚˜์ • & ํƒœํ›ˆ``` : Model, View Model ๋ฅผ ํ•œ๋ช…์ด ์ž‘์—…ํ•˜๋ฉด ํ•œ๋ช…์ด View Controller ์™€ UI ๋ฅผ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์œ„์ฃผ๋กœ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๊ฐ์ž ์ปจ๋””์…˜ ๋”ฐ๋ผ์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ „๋‹ดํ•ด์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. - ```๋‘์—ฐ & ์ •์•„``` : ํ•œ๋ช…์ด ํ™”๋ฉด ์ž‘์—…์„ ํ•  ๋•Œ ํ•œ๋ช…์€ ๊ธฐ๋Šฅ ์ž‘์—…์„ ํ•˜๊ธฐ๋„ ํ–ˆ๊ณ , ๊ฐ์ž ๊ฐ™์€ ํ™”๋ฉด์— ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ธฐ๋Šฅ ์ž‘์—…, ๋ถ„๋ฆฌ ์ž‘์—…์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋„ ํ–ˆ๊ตฌ์š”! </br> ### 2. Kingfisher, Alamofire ์‚ฌ์šฉํ•œ ์ด์œ  - ```๋ฏผ์ƒ & ์˜๊ด‘``` : ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ์•ˆ์จ๋ดค์—ˆ๊ธฐ ๋•Œ๋ฌธ. ์ด๋ฏธ์ง€ ์บ์‹œ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ๋˜ํ•œ, ํ˜„์—…์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. - ```๋‚˜์ • & ํƒœํ›ˆ``` : ํŽธํ•˜๊ฒŒ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•จ. - ํ‚นํ”ผ์…”์˜ imagedownload ์‚ฌ์šฉ(Disk Cache), default method ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•ด์„œ ์šฉ๋Ÿ‰์ด ํฐ ์ด๋ฏธ์ง€๋Š” Disk ๋กœ ํ•˜๋Š”๊ฒŒ ์ข‹์„ ๋“ฏ (์‚ฌ์šฉ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ธฐ๊ฐ€ ๋‹จ์œ„๋กœ ๊ฐ€๋‹ค๊ฐ€ ์•ฑ์ด ์ฃฝ์—ˆ๋˜ ๊ฒฝํ—˜์ด...ใ… ) - 1. Alamofire 2. Kingfisher 3. Snapkit ์ˆœ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐ - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : ํ•™์Šต์„ ์œ„ํ•ด์„œ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์ž๋Š” ์˜๊ฒฌ(์ฒญ์ˆ˜)๊ณผ ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ถ๊ธˆ์ฆ์ด ์žˆ์œผ๋‹ˆ ์‚ฌ์šฉํ•ด๋ณด์ž๋Š” ์˜๊ฒฌ(์šฐ์žฌ)์ด ๊ฐˆ๋ ธ์Œ. - ์˜จ๋ฐ˜ ์•ฑ์—์„œ ์ด๋ฏธ URLSession์œผ๋กœ ์ง์ ‘ ๊ตฌํ˜„์„ ํ•ด๋ณด๊ธฐ๋„ ํ–ˆ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋Š”๊ฒƒ ์ž์ฒด๋„ ์ข‹์€ ๊ฒฝํ—˜์ด๋ผ๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ ค์„œ ๊ฒฐ๊ตญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ - ```๋‘์—ฐ & ์ •์•„``` : ์ €ํฌ๋„ ๋‘˜ ๋‹ค ์•ˆ์จ๋ด์„œ ์‚ฌ์šฉํ•ด๋ณด๊ณ ์ž ํ•จ. ์ถ”๊ฐ€๋กœ ํ˜„์—…์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ๋„ ๊ฝค ์žˆ๋‹ค๋Š” ์ด์œ ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! </br> ### 3. ๊นƒํ—ˆ๋ธŒ #### conflict ํ•ด๊ฒฐ - ```๋ฏผ์ƒ & ์˜๊ด‘``` : ๊ฐ™์€ ๋ธŒ๋žœ์น˜๋ฅผ ๋กœ์ปฌ์—์„œ push & merge - ```๋‚˜์ • & ํƒœํ›ˆ``` : github ์›น ์—๋””ํ„ฐ๋กœ ์ˆ˜์ •, local์—์„œ rebase ์—๋Ÿฌ ๋‚˜๋ฉด cmd๋กœ ํ™•์ธํ›„ xcode์—์„œ ์ˆ˜์ •, [๊นƒ Fork](https://git-fork.com/) ์–ดํ”Œ์‚ฌ์šฉ - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋ฉ”์ธ์ด์–ด์„œ ์ถฉ๋Œ๋‚ ์ผ์ด ๊ฑฐ์˜ ์—†์—ˆ์Œ. ์ถฉ๋Œ์ด ๋‚˜๋ฉด [๊นƒํฌ๋ผ์ผ„](https://www.gitkraken.com)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ - ```๋‘์—ฐ & ์ •์•„``` : local์—์„œ develop branch fetch rebaseํ•˜๊ณ  ๊ฐ์ž ๊ธฐ๋Šฅ๋ณ„ feat ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. xcode์—์„œ ์ˆ˜์ • ํ›„ fetch & rebaseํ•˜์—ฌ conflict๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  push. ๊ทธ ํ›„ develop์œผ๋กœ pr์„ ๋ณด๋‚ด rebase and mergeํ–ˆ๋‹ค. #### ๋ธŒ๋žœ์น˜ ์ „๋žต - ```๋ฏผ์ƒ & ์˜๊ด‘``` : origin ์˜ ํ•˜๋‚˜์˜ ๋ธŒ๋žœ์น˜๋ฅผ local ์—์„œ push, pull ํ•˜๋Š” ๋ฐฉ์‹์„ ์ ์šฉ - ```๋‚˜์ • & ํƒœํ›ˆ``` : ํ•˜๋‚˜์˜ ๋ธŒ๋žœ์น˜๋ฅผ main์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ณ  origin ์œผ๋กœ pr ์„ ๋‚ ๋ฆฌ๋Š” ๋ฐฉ์‹ ์‚ฌ์šฉ - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : ํ•˜๋‚˜์˜ ์›๊ฒฉ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ๊ฐ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ๋ฐ›์•„์™€์„œ pull, push๋ฅผ ๋ฐ˜๋ณต - ```๋‘์—ฐ & ์ •์•„``` : S08A, develop, feat์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ๋Šฅ๋ณ„ feat์—์„œ ์ž‘์—… ํ›„ develop์œผ๋กœ pr์„ ๋ณด๋‚ด์„œ ํ•ฉ์ณค์Šต๋‹ˆ๋‹ค! ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋™์‹œ์ž‘์—…๋„ ํŽธํ•˜๋”๋ผ๊ตฌ์š”! #### Rebase and merge ์™ธ์•Š๋˜... - `pull`์ด ์•„๋‹ˆ๋ผ `fetch & rebase` ํ›„ conflict ํ•ด๊ฒฐํ•˜๋ฉด ๋˜๊ธดํ•˜๋Š”๋ฐ `pull(fetch + merge)`๊ณผ `fetch + rebase` ์ด ๋‘˜์˜ ์ฐจ์ด๊ฐ€ ์•„๋‹์ง€์‹ถ๋„ค์š”! - fetch & rebase ์•ˆํ•˜๊ณ  ๊ณ„์™ ์ปค๋ฐ‹ํ•˜๋‹ค๊ฐ€ ๋‚˜์ค‘์— fetch & rebaseํ•ด๋„ ๋จนํžˆ๋‚˜์š”? - ์ผ๋‹จ ์ž‘์—… ํ›„ commitํ•˜๊ณ  fetch & rebaseํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค!! ๊ทธ๋ž˜๋„ ์ž‘์—… ์‹œ์ž‘ ์ „์— ํ•˜๋ฉด ๋” ์ข‹์ง€ ์•Š์„๊นŒ์š”?? ๐Ÿค” </br></br> ### 4. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ #### ๋””์ž์ธ ํŒจํ„ด ์‚ฌ์šฉ (JK-iOS Clean Architecture) - ```๋ฏผ์ƒ & ์˜๊ด‘``` : MVC ํŒจํ„ด - ```๋‚˜์ • & ํƒœํ›ˆ``` : MVVM ํŒจํ„ด - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : MVC -> MVVM ํŒจํ„ด - Repository๋Š” reachability์— ๋”ฐ๋ผ data source(remote/local)๋ฅผ ์•Œ์•„์„œ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ์ฒด์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. - ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ๋Ÿฐ ์š”๊ตฌ์‚ฌํ•ญ์ด ์—†์–ด repository๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์œ ์ฆˆ์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. - ```๋‘์—ฐ & ์ •์•„``` : MVC -> JK-iOS Clean Architecture ํŒจํ„ด - ํ˜„์žฌ Repository๊ฐ€ Network, Storage๋ฅผ ์˜์กดํ•˜๋Š”๋ฐ ๋ฐ˜๋Œ€๋กœ ์˜์กดํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. #### Cocoapods vs SPM vs Carthage ์„ ํƒ ๊ธฐ์ค€ - ```๋ฏผ์ƒ & ์˜๊ด‘``` : Cocoapods, M1 ์ด์Šˆ๋„ ์—†๊ณ  ์ œ์ผ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•„์„œ ์„ ํƒํ•˜์˜€๋‹ค. - ```๋‚˜์ • & ํƒœํ›ˆ``` : Cocoapods, ์ €ํฌ ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ์ ˆํ•œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. - ```์šฐ์žฌ & ์ฒญ์ˆ˜``` : SPM, Cocoapods์„ ์‚ฌ์šฉํ•  ๋•Œ M1 ์ด์Šˆ๊ฐ€ ์ƒ๊ฒจ์„œ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ SPM์€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š์•˜๋‹ค. - ์žฅ์ : ์„ค์น˜๊ฐ€ ๊ฐ„๋‹จํ•จ, xcworkspace๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  xcodeproj๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - ๋‹จ์ : Cocoapods์€ ์ง€์›ํ•˜์ง€๋งŒ SPM์€ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์—ˆ์Œ - pod์€ ๋ชจ๋“  ํƒ€๊ฒŸ์— import๋˜๋Š”๋ฐ swiftPackage๋Š” ์›ํ•˜๋Š” ํƒ€๊ฒŸ๋งŒ import ๋œ๋‹ค?! - ```๋‘์—ฐ & ์ •์•„``` : Cocoapods, ์˜›๋‚ ์ด์•ผ๊ธฐ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ.. SPM์—๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํŒจํ‚ค์ง€๊ฐ€ ๋งŽ๋‹ค๋Š” ์ด์•ผ๊ธฐ์— Cocoapods์„ ์ด์šฉํ•ด์•ผ๊ฒ ๋‹ค ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. </br></br> ## ๐Ÿ‚ ์†Œ๊ฐ - `S002 ๊ฐ•๋ฏผ์ƒ` ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป : ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ํ•ด๋ดค๋Š”๋ฐ ๋•๋ถ„์— ๊น๋ถ€์น˜ํ‚จ๋„ ๊ฐ™์ด ๋จน์„ ์นœ๊ตฌ๊ฐ€ ์ƒ๊ฒจ ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. - `S005 ๊น€๋‘์—ฐ` ๐Ÿ‘ป : ์ €๋„ ๊น๋ถ€๋ž‘ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ ํ•ด์„œ ๋„ˆ๋ฌด ์žฌ๋ฏธ์žˆ๋Š” ํ•œ์ฃผ์˜€์Šต๋‹ˆ๋‹ค! ์ €๋‘ ๋‹ค์Œ์ฃผ ๊ธฐ๋Œ€๋˜์š”~~~ - `S012 ๊น€์šฐ์žฌ` ๐Ÿ’ป: ์—ฌ๋Ÿฌ๋ฒˆ์˜ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ๋‚จ์˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!! - `S036 ์ด๋‚˜์ •` โœˆ๏ธ : ์งํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ์œผ๋กœ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜‘์—…์€ ํ•ด๋ณผ์ˆ˜๋ก ๋А๋Š”๊ฒƒ ๊ฐ™์•„์š”! ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. - `S014 ๊น€ํƒœํ›ˆ` ๐Ÿ˜ : ์žฌ๋ฏธ์žˆ๋Š” ์‹œ๊ฐ„์ด์˜€์Šต๋‹ˆ๋‹ค~ - `S018 ๋ฐ•์˜๊ด‘` ๐ŸŽƒ : ์•„์‹ธ ๊ธˆ์š”์ผ ์ฃผ๋ง์— ์‰ฌ์ง€๋กฑ~ `์บ ํผ.map { $0.์†Œ๊ฐ }` - `S021 ๋ฐ•์ •์•„` ๐Ÿ˜š : ๊น๋ถ€๋ž‘ ์žฌ๋ฏธ์žˆ๋Š” ํ”„๋กœ์ ํŠธ~ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค! ๋‹ค์Œ๋„์ฃผ๋„ ๋„ˆ๋ฌด ๊ธฐ๋Œ€๋˜๋„ค์š”!! - `S047 ์ด์ฒญ์ˆ˜` ๐Ÿฑ : ๋ถ€์บ ์—์„œ์˜ ์ฒซ ํ˜‘์—…์ด์—ˆ๋Š”๋ฐ ๊น๋ถ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ •๋ง ์žฌ๋ฐŒ์„ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฑธ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค! </br></br> ## ๐Ÿฏ ๊ฟ€ํŒ - ์นด์นด์˜ค, ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ, ์ธ์Šคํƒ€๊ทธ๋žจ ์–ดํ”Œ ๋“ค์–ด๊ฐ€๋ฉด ```์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ``` ํ™•์ธ ๊ฐ€๋Šฅ - Git ๊ด€๋ฆฌํˆด - [๊นƒ Fork](https://git-fork.com) - [๊นƒํฌ๋ผ์ผ„](https://www.gitkraken.com)