ํด๋ฆฐ ์ํคํ ์ฒ ์์ ์์ค๋ฅผ ํตํด ๊ณต๋ถํ๋ฉด์ AppFlowCoordinator, OOFtorlowCoordinator ์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ๊ณ ์๋ ํ์ผ๋ค์ด ์์ด์ ๋ณด๋๊น ์ฑ์์ ํ๋ฉด ์ด๋ ๊ด๋ จ๋ ๋ถ๋ถ๋ง ๋ฐ๋ก ๋ชจ์๋๊ธธ๋ ๋์ค์ ํ๋ฉด์ด ๋ง์์ง๊ณ ๋ณต์กํด ์ง์๋ก ํด๋น ๋ฐฉ์์ ์ฌ์ฉํ
ํ์ฌ์์ ๋๋ฆ ํซํ ์ด์์๋ค. ์น/์๋ฒ ํ์์๋ ํ์คํ์ผ๋ก ํ๋ก ํธ์ ๋ฐฑ์๋๋ฅผ ๊ฐ์ดํ๋ค๋ณด๋ ๋ฐฑ์๋์์๋ ์ต๋ํ null์ด ์๋ ๋น ๊ฐ์ผ๋ก๋ผ๋ ๋ด๋ ค์ค ์ ์๋๋ก ํ๋ค๊ณ ํ๊ณ .. ๋ ํ๋ก ํธ์์๋ ํน์ ๋ชจ๋ฅผ Null์ ๋๋นํด์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์๋ค๊ณ ํ๋ค.ํ์ง๋ง, ํด๋จผ ์๋ฌ๋ ์ด
์ด ์ฑ ์ ์ด์ iOS ๊ฐ๋ฐ์ ์ ๋ฌธํ์๋ ๋ถ๋ค์ ํ๊ฒ์ผ๋ก ๋ชจ๋ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์๊ณ ์ฑ ์ ๋ชฉ์ฐจ๋ 5๊ฐ์ ๋ง๋น์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ํ ์ต์ Swift 5.7 ๋ฒ์ ๊ณผ Xcode 14๋ฅผ ์ฌ์ฉํด์ ์์ ๋ฅผ ์งํํ๊ณ ์๋ค.๊ฐ ์ฑํฐ์ ์์์๋ ์ด๋ค ์์ ๋ฅผ ๋ค๋ฃฐ ๊ฒ ์ธ์ง? ๊ทธ๋ฆฌ๊ณ ์
๊ฐ์ฒด์ ํ๋์ด ๊ฐ์ฒด์ ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค. 1์ฅ์์๋ ์ปคํผ ๊ฐ๊ฒ๋ฅผ ์์๋ก ๋ค์๋ค๋ฉด 2์ฅ์์๋ ์ด์ํ ๋๋ผ์ ์จ๋ฆฌ์ค๋ฅผ ์์๋ก ๋ค๊ณ ์๋ค. ์จ๋ฆฌ์ค๊ฐ ์ ์์ผ๋ก ํตํ๋ ๋ฌธ์ ์ง๋๊ธฐ ์ํด์ ํค๋ฅผ ์กฐ์ ํ๋ ๋ถ๋ถ์ ์๊ฐํ๋ฉด ๋๋ค. ์จ๋ฆฌ์ค๋ ํค(์ํ)๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด์ ์๋ฃ๋ฅผ ๋ง์๊ฑฐ๋
์นดํ์ ๊ฐ์ ์ปคํผ๋ฅผ ์ฃผ๋ฌธํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.์๋ ---> ์บ์ ---> ๋ฐ๋ฆฌ์คํ์ฌ๊ธฐ์ ์๊ฐํด์ผํ ๋ถ๋ถ์ ์๋์ ์ญํ ๊ณผ ์ฑ ์, ์บ์ ์ ์ญํ ๊ณผ ์ฑ ์, ๋ฐ๋ฆฌ์คํ์ ์ญํ ๊ณผ ์ฑ ์์ด๋ค.๊ฐ๋จํ๊ฒ ์นดํ์ ๊ฐ์ ์๋์ ์ญํ ๊ณผ ์ฑ ์์ด๋ฉด.. ์๋์ ์ผ์ ์๊ฒ ์ฃผ๋ฌธ์ ํ๋ ์ญ
Thread = ๋ ธ๋์, Task = ์ผiOS์์ ๋ฉ์ธ ์ค๋ ๋์ ๋ํ์ ์ธ ์์ ์ค ํ๋๋ UI๋ฅผ ๊ทธ๋ฆฌ๋ ์ผ๋ฉ์ธ ์ค๋ ๋์ ๋ชฐ๋ฆฐ ์์ ๋ค์ ๋ค๋ฅธ ์ค๋ ๋์์๋ ๋์์ ์์ ํ๋๋ก ํ๋ ๊ฒ = ๋์์ฑ ํ๋ก๊ทธ๋๋ฐiOS์์๋ queue์ ๋ณด๋ด๊ธฐ๋ง ํ๋ฉด ์์์ ๋ค๋ฅธ ์ค๋ ๋๋ก ๋ถ์ฐ ์ฒ
๋ฐ์ดํฐ์ ํ๋ฆ๊ณผ ์ ๋ฌ์ ๊ดํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ด๋ค.๋ฐ์ดํฐ์ ํ๋ฆ์ ๋จผ์ ์ ์ํ๊ณ ๋ฐ์ดํฐ์ ๋ณํ๊ฐ ์๊ฒผ์ ๋ ์ฐ๊ด๋ ์์ ์ด ์์์ ์คํ๋๋ ๊ฒ์ด๋ค.๊ธฐ์กด์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ๋ฐ๋ฉด์, ๋ฐ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐ์ดํฐ์ ๋ณํ๊ฐ ๋ฐ์ํ ๊ณณ์
์ปค๋ฅํธ ์ด๋ฏธ์งํ์ฌ ์ฑ ํ ์คํธ๋ฅผ ์ํด์ ํญ์ TestFilght๋ฅผ ์ฌ๋ฆฐ ๋ค์ App Store Connect์์ ์์ญ๋ฒ ์๋ก๊ณ ์นจ ํ๋ค.. ๋ฐ๋ก ์์ถ๊ท์ ๊ด๋ จ ๋ฌธ์ ๋๋ฝ์ด ๋จ๋ฉด ํด๋น ๋ฉ์ธ์ง์์ ์๋์!! ๋ฅผ ์ฒดํฌํ๊ธฐ ์ํด์๋ค.์ฑ ์คํ ์ด ์ปค๋ฅํธ์ ์ฌ๋ผ๊ฐ๋ ์๊ฐ๋ ๊ธด๋ฐ ํด๋น
๊ฐ์๋ค์ผ๋ฉด์ ๊ตฌํํ ๊ฐ๋จํ ์ฑ Unit Test ์ฝ๋ ์์ฑํ๊ธฐ ์ํด์ ํ๊ฒ์์ UnitTesting Bundle๋ฅผ ์ถ๊ฐํ๊ณ ์์ฑ๋ Test ํ์ผ๋ก ์ด๋์ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์์๋ ํด๋ณด๊ธฐ ์ ์ ์ด๋ฐ ์๋ฌ๋ ๋ง๋๊ฒ ๋์๋ค..๐ญ ๊ทธ๋์ ๊ตฌ๊ธ๋ง์ ํตํด์ ์์๋ณด๋๊น Buil
UITableViewDataSourcePrefetching๋ฅผ ์ธ์ ์จ์ผํ ๊น?\-> cellForRowAt์ด ํธ์ถ๋๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ก๋๋ฅผ ํด์ค์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํด์ฃผ๋ฉด ์ข๋ค!์๋ฅผ ๋ค๋ฉด, ์๋ง์ ์ ์ด ์๋๋ฐ ๊ฐ ์ ๋ง๋ค ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์์ ๋ถ๋ฌ์์ผํ๋ ๊ฒฝ์ฐ์ ์ฒ๋ฆฌํ๋ ์
์ด๋ฏธ์ง1์ฌ๋ด์ ์ด ์ฑ ์ด ์์ด์ ํ์ ๊ธ์ฐ๋ ๊ฒ์ ๋ํด์ ๊ทธ๋ฆฌ๊ณ ๋ง์ ํ๋ ๊ฒ์ ์์ด์ ์๊ฐ์ด ๋ง๋ ๋์๊ฒ ๋์์ ์ค ์ ์์ ๊ฒ ๊ฐ์์ ์ค ์ฐํด๋์ ์ฝ์ด๋ณด์๋ค.์ฝ๊ธฐ ์ ์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ ๋ ๋ชฉ์ฐจ๋... ๋ฐ๋ก.. ๊ธฐ์ ๋ธ๋ก๊ทธ ์์ฑ ๊ด๋ จ ๋ชฉ์ฐจ๋ค!!์๋ํ๋ฉด ์ด ๋ฒจ๋ก๊ทธ๋ฅผ ์กฐ๊ธ ๋
๋จผ์ ์ฑ์๋ ํฐ์๊ฐ์ ๋ฐ์ ์์ ๋ฐฐ๊ฒฝ์์ ๊ฐ์ ์๋, ๊ฒ์์๊ฐ์ ์ด๋์ด ์์ ๋ฐฐ๊ฒฝ์์ ๊ฐ์ ์๋ ์๋ค. ๊ทธ๋์ ํ์ฌ ํ๋ฉด์ ๋ง๊ฒ ์ํ๋ฐ์ ์์์ ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๋ค. ์๋ ๋งํฌ๋ ์ ํ์์ ์ ๊ณตํ๋ Human Interface Guideline์ ๋์์๋ ์ํ๋ฐ์ ๋ํ ์ด์ผ
์ง๊ธ๊น์ง View๋ฅผ ์ฝ๋๋ก ๊ทธ๋ฆฌ๊ณ ์์์ผ๋ฉด์ VC(View Controller) Life Cycle์์ LoadView๋ผ๋ ๋ถ๋ถ์ ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ง ๋ชปํ๊ณ ์์๋๋ฐ.. ์ต๊ทผ ํ์ฌ์์ ๋ฆฌ๋์์ธ ์์ ์ ์งํํ๋ฉด์ ๋งก์ ๋ทฐ๋ฅผ Objective-C + Storyboard ์กฐํฉ์์
์ด๋ฒ WWDC 21์์ Swift์ async, await๋ฅผ ์ง์ํ๋ฉด์ ๋์์ฑ์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ์์๋ค. ๊ทธ๋์ Swift ๊ณต์ ๋ฌธ์์ ๋์จ ๋์์ฑ์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.๋์์ฑ(Concurrency)์ ๋ค์์ ์ฝ์ด๊ฐ ์๋ ํ๊ฒฝ์์ ๊ฐ ์ฝ์ด๊ฐ ์์ ์ค ์ฝ์ด๋ง๋ค ๋์์
RxSwift์์ ์ฐ์ฐ์๋ค ์ค์์ ์ค์ํ ์ฐ์ฐ์๋ผ๊ณ ํ ์ ์๋ ๋ณํ ์ฐ์ฐ์(Transforming Operator)์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ์ด์ ์ ๋ฆฌํ ํํฐ๋ง ์ฐ์ฐ์์ฒ๋ผ Swift ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฌํ ์ฐ์ฐ์๋ค์ด ์๋ค..toArray()์์๋ค์ ๋ฌถ์ด Array
filter๋ ๋ค์ด์ค๋ ๋ฐ์ดํฐ ์ค์์ ํ์ํ ๋ฐ์ดํฐ๋ ์ทจํ๊ณ ํ์ํ์ง ์๋ ๋ฐ์ดํฐ๋ ์ ์ธ์ํค๋ ๊ฒ์ผ๋ก ๋ง์ด ์๊ณ ์๋ค. ์ด๋ฒ์๋ RxSwift์์ ์ด๋ฐ ํํฐ๋งํ๋ ์ฐ์ฐ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. Ignoring Operators .ignoreElements()
์์ํ๊ธฐ ์์์ ์ฐธ๊ณ ํ๊ณ ์๋ ๊นํ๋ธ์์ Subject๋ฅผ Observable์ด์ Obserber์ธ ๊ฒ์ด๋ผ๊ณ ํํํ๊ณ ์๋ค. ์ฒ์์๋ ์ด ๋ง์ ๋ป์ด ์ดํด๊ฐ ๊ฐ์ง ์์์ ์ฐพ์๋ณด๋๊น Subject๊ฐ ObserverType ํ๋กํ ์ฝ์ ์ฑํํ๊ณ ์๊ณ Observable์ ์์ํ๊ณ
์ด์ ๋ Observable์ ์์ฑํ๊ณ ๊ตฌ๋ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์ผ๋๊น ์ด๋ฒ์ ๊ตฌ๋ ์ ์ทจ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. Observable ์ข ๋ฃ
marble diagrams๋ฅผ ์ด์ฉํด์ ์๊ฐ ํ๋ฆ์ ๋ฐ๋ผ ๊ฐ์ ํํํ๋ ๋ฐฉ์์ผ๋ก ์๋ช ์ฃผ๊ธฐ๋ฅผ ์์๋ณผ ์ ์๋ค. ์๊ฐ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋ฅธ๋ค.next ์ด๋ฒคํธ๋ฅผ ํตํด์ ๊ฐ๊ฐ์ ์์(1,2,3)์ ๋ฐฉ์ถํ๋ ๊ทธ๋ฆผ.3๊ฐ์ tap ์ด๋ฒคํธ๊ฐ ๋ฐฉ์ถ๋ ๋ค ์์ ์ข ๋ฃ๋ ๊ทธ๋ฆผ. ์ด๊ฒ์
UITableView์์ DataSource์ Delegate ํ๋กํ ์ฝ๋ง๊ณ ๋จ์ ํ ๊ฐ์ง ํ๋กํ ์ฝ์ธ UITableVIewDataSourcePrefetching ํ๋กํ ์ฝ์ด๋ค. ํ๋กํ ์ฝ์ ์ด๋ฆ๋ง ๋ณด๋ฉด UITableView์์ DataSource๋ฅผ ๋ฏธ๋ฆฌ๊ฐ์ ธ์ค๋(Prefetc