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
UITableView์ UITableViewDelegate, UITableViewDataSource ํ๋กํ ์ฝ์ ๋ํด ์์๋ณด์.TableView๋ฅผ ์ฌ์ฉํ๋ฉด ํ์์ ์ผ๋ก ์ฑํํด์ผํ๋ ํ๋กํ ์ฝ๋ค์ด๋ค.๋จผ์ , UITableViewDelegateํ๋กํ ์ฝ์ ์ ํ ๊ฐ๋ฐ์ ๋ฌธ์์์๋ ๋ค
์ง๋ TextField ์ดํ๋ก iOS 14๋ฒ์ ์ด์ ์์ ์๋ ๋ง์ถ๊ฑฐ๋ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ๋ UIPickerView๋ฅผ ๋ง์ด ๋ณผ ์ ์๋ค. ๊ทธ๋์ UIPickerView๋ฅผ ์ ์ฉํ๋ฉด์ ๊ณต๋ถํ๋ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.์ด๋ฏธ์ง์ฒ๋ผ ์ด๋ฌํ ํํ๋ฅผ iOS ์ฌ์ฉ์๋ค์ ๋ง์ด ๋ดค์ ๊ฒ ์ด
์์ดํฐ ์ดํ์ ๋ณด๋ฉด ๋ชจ์๋ฆฌ๊ฐ ๊ฐ์ ธ์์ง ์๊ณ ๋๊ธ ๋๊ธํ๊ฒ ์๊ฒผ๋ค. ์ดํ๋ฟ๋ง ์๋๋ผ ๊ธฐ๋ณธ ์ดํ์ด๋์ง ์๋๋ฉด ์นด์นด์คํก ๊ฐ์ ์ดํ์์๋ ์ด๋ฌํ ๋ชจ์๋ค์ ์ฐพ์ ๋ณผ ์ ์๋ค. ๊ทธ๋์ ์ด๋ป๊ฒ ์ด๋ฐ ๋ชจ์์ ๋ง๋๋์ง์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.๊ผญ! UITextField๊ฐ ์
์ง๋๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ฉด..๊ฐํ์ฐธ์กฐ = ๊ธฐ๋ณธ ์ฐธ์กฐ ๋ฐฉ์, ์ธ์คํด์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์์ด์ผ ํ๋ ๋ช ๋ถ์ ๋ง๋ฌ.๊ฐํ์ฐธ์กฐ ์ํ๋ฌธ์ = ๊ฐํ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ ๋, ์ฐธ์กฐํ์๋ 0์ด ์๋์ฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์๋๋ฐ ๋ ์ด์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ๋ฐฉ๋ฒ์ด ์๋ ๋ฌธ์ ์ฝํ์ฐธ์กฐ =
์ง๋ ๊ฐํจ์ฐธ์กฐ๋ก ์ธํด์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ธ ๊ฐํ์ฐธ์กฐ ์ํ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์๋์ผ๋ก ์ธ์คํด์ค๋ฅผ ํด์ ํ๋ฉด์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด์ ์ธ์คํด์ค๊ฐ ๋ง์์ง๊ฒ ๋๋ฉด ๋์น๋ ๋ถ๋ถ์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ธ ์ฝํ์ฐธ์กฐ์ ๋ฏธ์์ ์ฐธ์กฐ๊ฐ ์๋ค๊ณ ํ๋ค.
๊ฐํ์ฐธ์กฐ = ์ธ์คํด์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ ๋จ์์์ด์ผํ๋ ๋ช ๋ถ์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ง๋ ์์ ์ฒ๋ผ ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ณ์, ์์์ ํ ๋นํ ๋ ์ฐธ์กฐ ํ์๊ฐ 1์ด ์ฆ๊ฐํ๊ณ nil์ ํ ๋นํ๋ฉด 1์ด ๊ฐ์ํ๋ค.๊ธฐ๋ณธ์ ์ผ๋ก ์ฐธ์กฐ๋ ๊ฐํ์ฐธ์กฐ์ฌ์ ๋ณ๋์ ์๋ณ์๋ฅผ ๋ช ์ํ์ง ์์
ARC = Automatic Reference CountingSwift๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๊ด๋ฆฌํ๊ธฐ ์ํด์ ARC ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ARC๋ ์ด๋ฆ์ฒ๋ผ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๊ณ ๋์ด์ ํ์ํ์ง ์์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ๋ ๋ฐฉ
iOS ๊ฐ๋ฐ์๊ฐ ํ๊ณ ์ถ๋ค๋ ์ฌ๋์ด ViewController์ ์๋ช ์ฃผ๊ธฐ์กฐ์ฐจ ๋ชจ๋ฅธ๋ค๊ณ ํ๋๊ฒ ๋ถ๋๋ฌ์์ ์ฐพ์๋ณด๊ณ ์ง์ ์์ ๊น์ง ์คํ์์ผ๋ณด์์ต๋๋ค.๋จผ์ , ์ด๋ฏธ์ง๋ก ViewController์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.ViewController ์๋ช ์ฃผ๊ธฐviewDidL
ํ๋กํ ์ฝ์ ์ด๋ค ์ญํ ์ ์ํด์ ๋ฉ์๋, ํ๋กํผํฐ ๋ฑ์ ๋ํ ํ์ ๋งํ๋ค. ํ๋กํ ์ฝ์ ๋ง๋ค๋ฉด(ํ์ ์์ฑํ๋ฉด) ๊ตฌ์กฐ์ฒด, ํด๋์ค, ์ด๊ฑฐํ์ ๋ง๋ ํ๋กํ ์ฝ์ ์ฑํํด์ ํ๋กํ ์ฝ์ ์๊ตฌ์ฌํญ์ ๊ตฌํํ ์ ์๋ค.๊ธฐ๋ณธ์ ์ธ ํํ๋ ๋ค์๊ณผ ๊ฐ๋ค.์ด๋ ๊ฒ ์ ์ํ ํ๋กํ ์ฝ์ ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋ค