๐ญ ๋ผ-์ดํ/๐ ํฐ-์์ด-์
์ค๋์ ๋ฐฐ์ #111
๊ฐ๋ฐํ๋ ํ์ด
2022. 1. 7. 23:56
2022.01.07 ์ค๋์ ๋ฐฐ์
์ค๋ ํ ์ผ.
- ๋ฉด์ ์ค๋น - iOS
- ๊ณผ์ ์งํ
์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ.
- ์๋๋ฐ์ค ๋๋ ํ ๋ฆฌ๋ค์ด ๊ฐ์ง๋ ์ฐจ์ด๋ค ์ค์ ๋์ฌ๊ฒจ ๋ณด์์ผํ๋ ๊ฒ์ iCloud ๋ฐฑ์ ์ฌ๋ถ์ธ ๊ฒ ๊ฐ๋ค. ์บ์ ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์ ์ด ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์คํฌ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ์์คํ ์ด ์ฌ๊ธฐ ์๋ ํ์ผ๋ค์ ์ง์ธ ์๋ ์๋ค(์คํ ์ค๋ฒํ๋ก์ฐ์์ ์ด๋ ๊ฒ ๋งํ๋๋ฐ ์ถ์ฒ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋ฅ ์๋์ฒ ์ํ๋๊ฒ ๋์ ๊ฒ ๊ฐ๋ค..)
- ์ฝ์ด๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ค์ application support์ ์ ์ฅ๋๊ณ ์ด ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์ ์ด ๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ๋ก ์ด๋ํ๋ ์ฑ์ ๋ง์ง๋ง์ผ๋ก ํ๋ฉด์ ๋ณด์๋ ๋ทฐ๋ฅผ ์ค๋ ์ท์ฐ์ด์ ์บ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํด๋๋ค. ๋ง์ฝ ์ฑ์ด suspended๋์๋ค๊ฐ ํฌ๊ทธ๋ผ์ด๋๋ก ๋์์ค๋ฉด ์ฌ์ค์ ์ฑ์ด ๋ค์ ์์๋๋๋ฐ, ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ์ธ์งํ์ง ๋ชปํ๋๋ก ์ฐ์ด๋์๋ ์ค๋ ์ท์ ๋ฐ์น์คํฌ๋ฆฐ ๋์ ๋ณด์ฌ์ฃผ๊ณ ์ด์ ์ํ๋ฅผ ๋ณต์ํ๋ค. ๊ทธ๋์ ์ฌ์ฉ์๋ suspended๋์๋์ง ์ ์ธ์งํ์ง ๋ชปํ๋ค.
- Navigation์ด๋ Modality์ ์ฐจ์ด๋ ์์ ์ ์ฐ์์ฑ ์ฌ๋ถ์ด๋ค. ์ค์ ๋ก HIG์์๋ ๋ชจ๋ฌ์ ์ฌ์ฉ์๋ฅผ ๋๋ฌด ์ค๋ ๋จธ๋ฌผ๊ฒ ํ๋ฉด ์๋๋ค๊ณ ๋งํ๋ค. ๊ธฐ์กด ํ๋ฉด์์ ์์ ํ๋ ์ปจํ ์คํธ๋ฅผ ์์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- URLSessionDataTask๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์ ์ ์ง์ํ์ง ์๋๋ค. ์๋ํ๋ฉด ์๋ NSDataํ์ ์ผ๋ก ๋ฐ์์ผ ํ๊ธฐ ๋๋ฌธ์. ๋ฐฑ๊ทธ๋ผ์ด๋ ์ธ์ ์ ์ง์ํ๊ณ ์ ํ๋ค๋ฉด URLSessionDownloadTask๊ฐ ๋ ์ ํฉํ๋ค.
- NSLayoutConstraint๋ ์ค์ ํ ๊ฒ ๋๋ฌด ๋ง๋ค. item, attribute, multiplier, contraint๋ฅผ ๊ธฐ์ค ๋ทฐ์ ์๋ ๋ทฐ์ ๋ํด์ ๋ค ์ ํด์ค์ผํ๋ค. ์ด๊ฒ ๋๋ฌด ๋ณต์กํ๋๊น ๋์จ ๋ ์ฌ์ด API๊ฐ NSLayoutAnchor.
- UIKit์ ResponderChain์ ๋ณ๊ฒฝํ๋ ค๋ฉด UIResponder์ next ํ๋กํผํฐ๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ด๋ฒคํธ๋ฅผ ๋๊ฒจ์ค ๋ค์ ๋์์ ์ง์ ์ ์ํ ์ ์๋ค. ๊ธฐ๋ณธ์ UIVIew->UIViewController->UIWindow->UIApplication ์์ผ๋ก ์ด๋ํ๋ค.
- ๋ชจ๋ ๋ทฐ๋ UIVIew->UIResponder->NSObject์์ผ๋ก ์์์ ํ๊ณ ์๋ค. ๋ฒํผ ๊ฐ์ ์ ๋ค์ UIView๋ฅผ ์์ํ๋ UIControlํ์ ์ด๊ณ ์ด๋ฐ ํ์ ์ ๋ทฐ๋ค์ ์ฌ์ฉ์ ์ธํฐ๋ ์ ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด addTarget์ผ๋ก ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ์ง์ ํ ์ ์๊ฒ ์ ๊ณตํ๋ค.
- AnyClass๋ ์๋ค. ์๋ AnyObject.Type์ ํ์ ์จ๋ฆฌ์ด์ค. ๊ทธ๋์ ๋ชจ๋ ํด๋์ค ํ์ ์ ๋ด์ ์ ์๋ค.
- ์ด๊ฑด ํท๊ฐ๋ฆฌ๋๊น ๋ค์ ์ ๋ฆฌํ์. hugging์ ์ต๋ ํฌ๊ธฐ์ ๋ํ ์ ํ, resistence๋ ์ต์ํฌ๊ธฐ์ ๋ํ ์ ํ์ด๋ค. ๊ทผ๋ฐ ์ด๊ฑธ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๋ฉด ์๋๊ณ ์์์ ์ข ํด์ผ๋๋ค. hugging์ ์ต๋ ํฌ๊ธฐ์ ๋ํ ์ ํ์ด ์๊ธฐ ๋๋ฌธ์ ์ปจํ ์ธ ์ฌ์ด์ฆ๋ณด๋ค ๋์ด๋์ง ์์ผ๋ ค๊ณ ํ๋ค. ๊ทธ๋์ ๊ธธ์ด๊ฐ ์ ํด์ง ์คํ๋ทฐ์์๋ hugging์ ์ฐ์ ์์๊ฐ ๋ฎ์ ๋ทฐ๊ฐ ๋์ด๋๋ค. resistence๋ ์ต์ ํฌ๊ธฐ์ ๋ํ ์ ํ์ด๊ธฐ ๋๋ฌธ์ ์์ ์ ์ปจํ ์ธ ์ฌ์ด์ฆ๋ณด๋ค ์์์ง์ง ์์ผ๋ ค๊ณ ํ๋ค. ๊ทธ๋์ ๊ธธ์ด๊ฐ ๋ทฐ๋ค์ intrinsic sizeํฉ๋ณด๋ค ์์ ์คํ๋ทฐ์์๋ resistence ์ฐ์ ์์๊ฐ ๋์ ์ ๋ ๊ทธ๋๋ก ์ ์ง๋๊ณ , ๋ค๋ฅธ ๋ทฐ๊ฐ ์ปจํ ์ธ ๋ฅผ ์๋ฅด๊ณ ํฌ๊ธฐ๊ฐ ์ค์ด๋ ๋ค.
- NSCache์ ์ ์ฑ ์ ์ค๋ธ์ ํธ์ ๊ฐ์์ cost๋ก ์ ํ ์ ์๋ค. ๊ฐ์๋ ์ ๋ง ๋ฐ์ดํฐ์ ๊ฐ์์ ๋ํ ์ ํ์ด๊ณ , cost๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ง์ ํ๋ cost์ด๋ค ๋ณดํต ์ด cost๋ฅผ ๋ฐ์ดํธ ๋จ์์ ๋ฐ์ดํฐ ์ฉ๋์ผ๋ก ์ค์ NSCache๊ฐ ์ฉ๋์ ๊ธฐ์ค์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋๋ก ํ๋ ๊ฒ ๊ฐ๋ค.
- NSCache๋ ์ค๋ ๋์ธ์ดํํ ํน์ง์ด ์๋ค.
- Heap์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋๊ฐ ์คํ๋ณด๋ค ๋๋ฆฌ๋ค๊ณ ์๋ ค์ ธ ์๋๋ฐ, ๋จ์ํ ํ์ ๋ฃ๊ณ ์คํ์ ์ฃผ์๋ฅผ ๋ฃ๋ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ์ด ์์ด์ ๊ทธ๋ฐ ๊ฒ์ด ์๋๋ค. ํ์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๋น์ด์๋ ๊ณต๊ฐ์ ํ์ํ๊ณ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ์ฐ์ฐ์ด ์์์ ์ผ๋ก ์งํ๋์ด์ผ ํ๋ค. ๊ทธ๋์ ์ค๋ ๋๊ฐ ํ์ ์ ๊ทผํด ๋ฐ์ดํฐ๋ฅผ ์ธ ๋ ํ์ ๋ฝ์ ์ฐ๋ ๋ฑ ๋๊ธฐํ๊ธฐ๋ฒ๋ค์ ์ฌ์ฉํด์ผํ๊ณ ์ฌ๊ธฐ์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ ๊ฒ.
์ค๋ ๋๋ ๊ฒ.
- ๋ค์์ฃผ๋ ๋ฉด์ ๋ ๋๊ฐ๋ ๋ณด๊ณ ์ฝ๋ฉํ ์คํธ๋ ๋ด์ผํ๋ค. ๋นจ๋ฆฌ ๋ค ๋๋ฌ์ผ๋ฉด! ์ด์ง ๋ฒ์์์ด ์ฌ๋๋ง๋ํ ๊ฒ ๊ฐ๋ค ๐ฅ
- ๊ณต๋ถํ๋ค๊ฐ ๋ฌธ๋๋ฌธ๋ ๋ฉด์ ์ด ์๊ฐ๋๋ค. ๊ทธ๋ ์ ๊ทธ๋ ๊ฒ ๋งํ์๊น.. ๋ค์ ๋ฌผ์ด๋ณด๋ฉด ์ง์ง ์ ๋๋ตํ ์ ์๋๋ฐ.. ์ด๋ฐ ์ก์๊ฐ๋ค. ๋ฏธ๋ จ ์๊ธฐ๋ก ํ๋๋ฐ ๋ฏธ๋ จ์ด ์ข ์๋ ๊ฒ ๊ฐ๋ค. ์ผ๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์์ ๋จ์ด์ง๋ ๋ถ๋ ํํ ํธ์ด๋ฒ๋ฆฌ๊ณ ์ถ๋ค! ์ง์ง ์๋ณธ๊ฑด์ง ๋ชป๋ณธ๊ฑด์ง ๊ฐ๋ ์ด ์๋ ์ ๋๋ก ๋ชจ๋ฅด๊ฒ ์ด์ ๋ ๋ง์์ ๊ธด์ฅ๊ฐ์ด ์๋ ๊ฒ ๊ฐ๋ค..
- ๋ฉ์ดํธ๋ฌ๋ ์บ์ฑ ์ฝ๋๋ฅผ ์ค๋ ์ ์ฒด์ ์ผ๋ก ๋ค์ ๋ดค๋๋ฐ ์ง์ง ์ ์ ๋ ๊ฒ ์งฐ๋์ง ์ดํด๊ฐ ์๋ ์ ๋๋ก ์ด์ํ๊ฒ ์งฐ๋ค. ๋งํ์ ๊ธํ๊ฒ ์งํํ๋ค๋ณด๋๊น ๊ณ ๋ฏผ๋ ๋ง์ด ๋ด๊ฒจ์์ง ์์ ๊ฒ ๊ฐ๊ณ ๊ทธ๋์ ๋ฉด์ ์์ ์ง์ ๋ฐ์ ๊ฒ๋ ๋ง์ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ์ฃผ์ ์์ ์ ์ข ํด๋ณด๋ ค๊ณ ํ๋ค.
- ์ด๋ฒ์ฃผ๋ ์คํฐ๋ ๋๋ฃ๋ค์ด ๋ชจ๋ ํ๋ฃจ์ ํ ๋ช ์ฉ ๋ฉด์ ์ด ์์ด์ ๋ฉด์ ๋๋์ ์๋ก ๋ง๋์ ๋ณต๊ธฐ๋ ํ๊ณ ๋ ๋ ค๋ ํ๋ ์๊ฐ์ ๋ง์ด ๋ณด๋๋ค. ๋ถ์บ ์์ ์ข์ ์ฌ๋๋ค์ ์ป์ ๊ฒ ๊ฐ๋ค.. ํผ์ํ์ผ๋ฉด ์ง์ ์ง์ณ์ ๋๊ฐ๋จ์ด์ก์ ๊ฒ ๊ฐ๋ค.
๋ด์ผ์ ๊ณํ.
- Rx์ ๋ฆฌ
- ๊ณผ์ ์งํ
์ค๋์ ๊ฐ์ฌ.
- ์ ์ ์๊ณ ์ง๋น ์ก๋ ์ผ์ฃผ์ผ์ ์ ๋ง๋ฌด๋ฆฌํ๊ฒ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!