์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๊ณ์ธตํ์์ ์ด์์ฒด์ (์ปค๋)์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก (๋ถํ ์ดํ์ ๊ณ์) ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ๊ด์์ ์ด์์ฒด์ ์ปค๋ ๋ฟ ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ ๊ฐ๋ ์๋ฅผ๋ค
ํด๋น ๊ธ์ 'SOLID Pirincipels Applied to Swift Development'๋ฅผ ๋ฒ์ญํ ๊ธ์ ๋๋ค. Introduction ๊ฐ๋ฐ์๋ก์, ์๋ง SOLID ์์น์ ๋ค์ด๋ณด๊ฑฐ๋ ์ฌ์ฉํด ๋ณธ ์ ์ด ์์ ๊ฒ์ด๋ค. Robert C. Martin(Uncle Bob)
์ ์ฌ๊ธฐ ์ด๋ฏธ์ง ๋ฒํผ์ด ์์ต๋๋ค ๋ฑ ๋ณด๊ธฐ์๋ ๋๋ฌด ์ฌ๋๋งฃ์ฃ ? ?์ ์๊ณ ์์คํ ๋ฒํผ์ ์ ํํ๊ณ ์ค๋ฅธ์ชฝ ์ธ์คํํฐ ํญ์ ํ์ธํฉ๋๋ค!๊ทธ๋ผ ์ฐ๋์์ผ๋ก ํ์๋ Default Symbol Configuration ์ด๋ผ๋ ํญ๋ชฉ์ด ์๋๋ฐ, ์ด๊ฑธ๋ก symbol์ ์ฌ์ด์ฆ, style,
CoreAnimation์ ์ฑ์ ๋ทฐ ๋ฐ ๊ธฐํ ์๊ฐ์ ์์๋ฅผ ์ ๋๋ฉ์ด์ ํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ์์คํ ์ ์ ๊ณตํจ. ์ฑ์ ๋ทฐ๋ฅผ ๋์ฒดํ๋ ๊ฒ์ด ์๋๋ผ ์ปจํ ์ธ ์ ์ ๋๋ฉ์ด์ ์ ์ง์ํ๊ณ ๋ ๋์ ์ฑ๋ฅ์ ์ง์ํ๊ธฐ ์ํ ํตํฉ๋ ๊ธฐ์ ์.๊ทธ๋ํฝ ํ๋์จ์ด์์ ์ง์ ์กฐ์ํ ์ ์๋ ๋นํธ๋งต์ ๋ทฐ์
ํ์ด๋ฐ์ ๋ง์ถ๋ค(๋๊ฐ) (๋๊ตฌ์) ํ์ด๋ฐ์ด ๋ง์๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค์์ฒญ์ ๋ณด๋ธ ํ ์๋ต(=๊ฒฐ๊ณผ)๋ฅผ ๋ฐ์์ผ ๋ค์ ๋์์ด ์ด๋ฃจ์ด์ง๋ชจ๋ ํ๋ก ๊ตฌ์ฑ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํธ๋ฅผ ๋ง๋ค์ด ๋(ํด๋ฝ). ๊ทธ ์ ํธ๋ง๋ค ์ด๋ค ์ํ์ธ์ง ํ์ธํ๊ณ ๋์ํ๋๋ก ํ์ธ. ๊ทธ๋์ ํด๋ฝ์ ํ์ด๋ฐ์ ๋ง์ถฐ ๋์ํ๊ฒ ๋จ
์ง๋ 2์ฃผ๋์ ๋ฐฑ์๋ 2๋ช , ์นํ๋ก ํธ์๋ 1๋ช , iOS 1๋ช ์ด ํฌํจํ ํ์ผ๋ก Todo App ๊ฐ๋ฐ์ ํ๋ค.๋ iOS ๊ฐ๋ฐ์ ๋งก์๊ณ , ์ด๊ฑด ์ง๋ 2์ฃผ๊ฐ ๋๋ ๊ฒ๋ค๊ณผ ์์ผ๋ก์ ๋ฐฉํฅ์ ์ ๋ฆฌํ ๊ธ์ด๋ค.์ด๋ฐ์ ์๊ตฌ์ฌํญ์ ๋ถ์ํ๋ ๊ณผ์ ์ ์๊ฐ์ ๋ง์ด ๋ค์ด์ง ์์๋ค. ๊ทธ๋์์ธ์ง ๋ด
Modality๋ ์ฌ์ฉ์์ ์ด์ ์ปจํ ์คํธ์๋ ๋ณ๊ฐ๋ก ์ปจํ ์ธ ๋ฅผ ์์์ ์ธ ๋ชจ๋๋ก ํ์ํ๋ ๋์์ธ ํ ํฌ๋์ด๋ค. ์ข ๋ฃํ๋ ค๋ฉด ๋ช ์์ ์ธ ์กฐ์น๊ฐ ํ์ํ๋ค. ์ฌ๋๋ค์ด ๋ ๋ฆฝ์ ์ธ ์์ ๋๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋ ์ต์ ์ ์ง์คํ๋๋ก ๋๋๋ค.์ฌ๋๋ค์ด ์ค์ํ ์ ๋ณด๋ฅผ ์์ ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์กฐ์น๋ฅผ ์ทจํ
URLSession์ HTTP ๊ธฐ๋ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํด๋์ค๋ค. URLSession์ ์์ฒญ์ ๋ณด๋ด๊ณ ๋ฐ๋ ํต์ฌ ๊ฐ์ฒด๋ก URLSessionConfiguration์ ํตํด ์์ฑํ ์ ์๋ค. URLSession ๊ฐ์ฒด์ ์ ๋ก๋, ๋ค์ด๋ก๋ ์ ์ ์ฑ ๊ณผ ํ๋์ ์ ์ํ๋ค. ๋ฐ์ดํฐ
๊ด๋ จ๋ ๋คํธ์ํฌ ๋ฐ์ดํฐ ์ ์ก ํ์คํฌ์ ๊ทธ๋ฃน์ ์กฐ์ ํ๋ ๊ฐ์ฒดURLSession ํด๋์ค์ ๊ด๋ จ๋ ํด๋์ค๋ URL๋ก ํ์๋ ์๋ํฌ์ธํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ ํ๊ณ ์ ๋ก๋ํ๊ธฐ ์ํด API๋ฅผ ์ ๊ณตํ๋ค. ๋ํ ์ฑ์ด ์คํ์ค์ด ์๋๊ฑฐ๋ ์ผ์ ์ค๋จ๋ ์ํ์์ ์ด API๋ฅผ ์ฌ์ฉํด ๋ฐฑ๊ทธ๋ผ์ด
์๋ฒ์์ ์๋ณด ๋ฐ์ดํฐ ๋ฐ์์ค๊ธฐ๋๊ธฐ์ง ์๋ณด ์ ๋ณด๋ฅผ ํ์ฉํด์ PM10 ์๋ณด ์ด๋ฏธ์ง๋ค์ ํ์ํ๋ค.API์์ ๋ฐ์ ์ ๋ฐ์ ์ธ ์๋ณด ๋ฌธ๊ตฌ๋ฅผ ํ์ํ๋ค.API์์ ๋ฐ์ ์ง์ญ๋ณ ๋ฑ๊ธ์ ํ์ํ๋ค.์ฌ์ ๋ฒํผ ๋๋ฅด๋ฉด ๋๊ธฐ์ง ์๋ณด ์ด๋ฏธ์ง๋ฅผ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ๋ณต ์ฌ์์์ ๊ฑฐ 2์๊ฐ ํ๊ธฐ ๋ฒ๊ฝ ๊ตฌ๊ฒฝ
์ขํ๊ฐ ๋ณด๋ด 24์๊ฐ ๋ฏธ์ธ๋จผ์ง ๋ฐ์ดํฐ ๋ฐ์์ด์๋ฒ์ ํต์ ํ ๊ฐ์ฒด๋ค ์ญํ ๋ถ๋ฆฌ์๋ฒ์์ ๋ฐ์์จ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ํ ์ด๋ธ ๋ทฐ ์ ์ ์์, ๊ทธ๋ํ ๊ธธ์ด, ์ธก์ ๊ฐ ๋ณ๊ฒฝ์คํฌ๋กค์ ๋งจ ์๋จ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ผ๋ฐ์ด์ ์ปฌ๋ฌ, ์ด๋ชจ์ง, ์ธก์ ๊ฐ, ์ธก์ ์, ์๊ฐ ๊ฐ ๋ณ๊ฒฝ์ ํ์์ด์๋ฒ์ ์์ฒญ์ ge
๋ฏธ์ธ๋จผ์ง ํ๋ฉด ์ ํ ์ด๋ธ๋ทฐ์ ์ ์ด ๋์ ์ผ๋ก ์กฐ์ ๋๋๋ก ์ฝ๋ ์ถ๊ฐ์ ์ฌ์ฌ์ฉ ๋ฌธ์ ์ฐ์ ์์ ์ค์ ํด๊ฒฐํ ์ด๋ธ๋ทฐ ์คํฌ๋กค์ ์ฒซ๋ฒ์งธ ์ ์ธ์๋๋๋ก ํจํ์ฌ ์์น ๊ธฐ๋ฐ ์๋,๊ฒฝ๋ ์ฐพ๋ ๊ธฐ๋ฅ ์ถ๊ฐ์๋ฒ์ ๋ฆฌํ์คํธ ๋ ๋ฆฌ๊ณ ์ธ์ฝ๋ ๋์ฝ๋ ํ ๋๋ค ์ถ๊ฐ์์ด์ ํ์น๊ตฌ๋์ ๊ฟ์๋ฐ.. ์ผ์ฃผ์ผ์ ๋๋ฒ
UITextFieldDelegate ๊ณต๋ถ ๋ฐ ๊ธ์์ฑํ์๊ฐ์ ..๊ณค๋๋ ๊ณต์ ์ฐ์ฑ ๐ฆฎ๋ถ๊ฐ์ด ๐ฑUITextFieldDelegate๋ฅผ ์ด์ฉํ๋ฉด ํ ์คํธํ๋์ ๊ดํ ์์ธํ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.! ์๋ฅผ๋ค์ด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฒ ๋ฐ๋ก๋ฐ๋ก ๋ฐ์์ ํ๋ฉด์ ์ ์ฉํ๋ค๋์ง?contain(whe
ํ ์คํธ ํ๋ ๊ฐ์ฒด์ ํ ์คํธ ํธ์ง ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉํ๋ ์ ํ์ ๋ฉ์๋ ์ .ํ ์คํธ ํ๋๋ ์ค์ํ ๋ณํ์ ๋์ํด ๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ ์คํธ๋ฅผ ๊ฒ์ฆํ๊ณ ํค๋ณด๋์์ ํน์ ์ํธ์์ฉ์ ์๋ตํ๋ฉฐ, ์ ์ฒด ํธ์ง ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ๋๋ฐ ์ด ๋ฉ์๋๋ค
์ฑ์ Responder ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ ์ฒ๋ฆฌํ๋ค. Responder ๊ฐ์ฒด๋ UIResponder ํด๋์ค์ ๋ชจ๋ ์ธ์คํด์ค์ด๋ฉฐ, ๊ณตํต ํ์ ๋ถ๋ฅ๋ก๋ UIView, UIViewController, UIApplication ๋ฑ์ด ์๋ค. Responder๋ ra
์ด๋ฒคํธ์ ๋ํ ๋์ ๋ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ถ์์ ์ธํฐํ์ด์ค. Declaration Overview Responder ๊ฐ์ฒด, ์ฆ UIResponder ์ธ์คํด์ค๋ UIKit ์ฑ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐฑ๋ณธ์ ๊ตฌ์ฑํ๋ค. UIApplication ๊ฐ์ฒด, UIViewController ๊ฐ
Photos App step2 ์งํ์ ์ํด PhotoKit์ ๋ํด ๊ณต๋ถ ๋ฐ ์ ๋ฆฌPhotos App step2 ์งํ ๋ฐ ๋จธ์ง!ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ์๋ฆฟ์ ๋ํ๊ธฐ ํ๊ธฐํฌํ ํท ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ๋ค.....GCD ๊ณต๋ถstep3 ์งํ
๋ฌธ์์ด๋ก ์๋ฐ๊ฟ์ฃผ๊ณ ํ ์ ์์๊น ์๊ฐํ๋ค10์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์๋ฆฟ๊ฐ์ผ๋ก ์๊ฐํด์ ๊ทธ๊ฑธ ๋ํด์ฃผ๋๊ฑธ๋ก..๊ทผ๋ฐ ๋ฌธ์์ด๋ก ๋ฐ๊พผ๋คํ๋ฉด ๋ค์ฏ์ค๋ก ๋๋๋ ๊ฒ.........
iCloud Photos๋ ์์ดํฐ ์ฌ์ง ์ฑ์์ ์ฌ์ง, ๋ผ์ด๋ธ ํฌํ ๋ฑ์ ๊ฐ์ ธ์ค๋๋ก ๋์์ฃผ๋ PhotoKit ์ ๋ํด ์์๋ด ์๋ค! ๊ณต์๋ฌธ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์ต๋๋ค PhotoKit? iCloud Photos ๋ฐ Live Photos๋ฅผ ํฌํจํ์ฌ Photos ์ฑ์์ ๊ด๋ฆฌ
programmers ๋ฌธ์์ด ๋ด p์ y์ ๊ฐฏ์ ๋ฌธ์ ํ๊ธฐprogrammers ์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ ํ๊ธฐPhotosApp step1 ์๋ฃPhotosApp step2 ์งํํ์ด ํ๋ก๊ทธ๋๋ฐ ์์ ์ฑ์์ ์ฌ์ง์ฒฉ์ ์๋ ์ฌ์ง๋ฑ์ ๊ฐ์ ธ์ฌ ๋ Photos ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉ! PHAs