ios
-
Composable ArchitectureTCA 2021. 6. 11. 13:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์๋ณด๊ฒ ๋์๋์ง? ์์ผ๋ก๋ SwiftUI์ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ํตํ ๋ทฐ์ ์ ๋ฐ์ดํธ ๋ฑ ์ํ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐ์ํ์ Combine์ด ๋ง์ด ์ฌ์ฉ๋๊ฒ ๋ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ์ด์ ์กฐ๊ธ ๋ SwiftUI ํ๋ ์์ํฌ์ ์ ํฉํ๊ณ ์ํ๋ฅผ ๊ด๋ฆฌํจ์ ๋ฐ๋ผ ๋ทฐ์ ๋ณํ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ํ ์ ์๋ ์ํคํ ์ณ์ด๊ธฐ์ ์ค์ํฉ๋๋ค๐๐ป Composable Architecture? ์ปดํฌ์ ๋ธ ์ํคํ ์ณ? ์ฌ์ ์ ์ผ๋ก ์ปดํฌ์ ๋ธ์ ๊ตฌ์กฐ๋ ๊ตฌ์ฑ์ด๋ผ๋ ๋ป์ ๊ฐ์ง๋๋ค. ์ด๋ฅผ ํ ๋๋ก ํด๋น ์ํคํ ์ณ ํจํด์ ํด์ํ์๋ฉด ํฐ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฆฌํด ๊ตฌ์กฐ์ ์ธ ๋ชจ๋๋ก ๋๋๊ณ ์ด๋ฅผ ์ด์ฉํ๋๊ฒ์ด๋ผ ํ๋จ๋ฉ๋๋ค. ์๋์ ๊ฐ์ด ์ปดํฌ์ ๋ธ ์ํคํ ์ณ๋ฅผ ์ ์ํด๋ณผ ์ ์์ต๋..
-
CombineCombine 2021. 6. 9. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Combine์ ์๊ธฐ์ ! MVVM ํจํด์ ๋ฐ๋ฅด๊ธฐ ์ํด ์คํ ๋ฆฌ๋ณด๋ ์์ ๋์ SwiftUI๋ฅผ ์ฌ์ฉํ๋ฉด์ RxSwift๋ก ๊ตฌํ์ ํด์ฃผ์๋๋ฐ์. WWDC 2019 ์ดํ Combine์ด ๋ํ๋ฌ์ต๋๋ค. Combine์ด ๋ฌด์์ด๋? ์ฝ๊ฒ ์๊ฐํ๋ฉด RxSwift๋ ์จ๋ํํฐ ํ๋ ์์ํฌ์ด๊ณ Combine์ ์ ํ์์ RxSwift์ ์ญํ ์ ์ํด ๋ง๋ ํผ์คํธํํฐ ํ๋ ์์ํฌ์ ๋๋ค. Combine์ ์ ์ฐ๋? RxSwift๋ฅผ ์ฐ๋ ์ด์ ์ ์์ถฉํ๋ค๊ณ ๋ณด๋๋ฐ์. ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํจ์ ๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํด delegate, GCD, notification center, ์ฝ๋ฐฑ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฌธ..
-
Run LoopiOS 2021. 6. 1. 19:17
์๋ ํ์ญ๋๊น. ๊ทธ๋ฆฐ์ ๋๋ค๐ข์ด๋ฒ ํฌ์คํ ์์๋ Run Loop(๋ฐ๋ฃจํ)์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ๋ฐ๋ฃจํ.. ์ด๋์ ๋ง์ด ๋ณด๊ณ ๋ฐ๋ฃจํ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๊ทธ๋ฆผ๋ ๋ดค์๋๋ฐ ๋ง์ ์๊ฐํด๋ณด๋ ์ ๋๋ก ์ดํดํ๊ณ ์์ง ์๋๋ผ๊ตฌ์.๊ทธ๋์ ์ด๋ฒ ๊ธฐํ์ ํ๋ฒ ํํด์ณ๋ณด๊ฒ ์ต๋๋ค!Run Loop : ์์ ์ค์ผ์ฅด๋ง๊ณผ ์ ๋ฌ๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฃจํ : ๋ฐ๋ฃจํ๋ ์ ์ ๊ฐ ์ด๋ฒคํธ๋ฅผ ์ผ์ผํค๊ณ ๊ทธ ์ด๋ฒคํธ๋ค์ ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค : ๋ํ์ ์ผ๋ก UIApplication์ด ๋ฉ์ธ ๋ฐ๋ฃจํ๋ฅผ ๋ทฐ์ ์ด๋ฒคํธ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํด์ค ๋ ํ์ฉ : ๋ฉ์ธ ๋ฐ๋ฃจํ๋ ๋ทฐ์ ๊ด๋ จ ์๊ธฐ๋๋ฌธ์ ๋ทฐํ๋ฉด ์ด๋๋ค..!? ๋ฉ์ธ ์ค๋ ๋์์ ๋์ : ๋ฐ๋ฃจํ์ ๋ชฉ์ ์ ์ค๋ ๋์ ์์ ์ด ์์ผ๋ฉด ํ๊ฒํ๊ณ ์์ผ๋ฉด ์ฌ๋๋ก ํ๋๊ฒ์์ ๋์ด ์๋๋ ๋ฉ์ธ ์ค๋ ๋์ ๋ฐ๋ฃจํ ๊ณผ์ ๋์..
-
์ง์ ๋ณํSwift 2021. 5. 27. 11:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift์์ ์ง์ ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ง์๋? ์ผ๋งํผ์ ์๋ฅผ ์ฆ๊ฐ์ํจ ํ ์๋ฆฟ์๋ฅผ ์ฌ๋ฆด ๊ฒ์ธ์ง์ ๋ํ ๋จ์๋ฅผ ๋งํฉ๋๋ค. ์ฆ, 2์ง์๋ 2๊ฐ์ ์๋ฅผ ์ฌ์ฉํ๊ณ 8์ง์๋ 8๊ฐ์ 16์ง์๋ 16๊ฐ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์๊ณ ๊ณ์๊ฒ ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ํ์์๋ 10์ง์ ์ฆ 10๊ฐ์ 0~9๊น์ง์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ๋ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ๊ฐ ์ง์ ํํ์ด ๋ค๋ฅธ๋ฐ ์ ์์์ผ ํ ๊น์? ํนํ 2์ง์๋ ์ปดํจํฐ๊ฐ ๋ํ๋ผ ์ ์๋ ์์ ๋ฒ์๋ก 2์ง์๋ฅผ 10์ง์๋ก 10์ง์๋ฅผ 2์ง์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ดํดํ๋๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ํ์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ 2์ง์, 8์ง์, 10์ง์, 16์ง์์ ๋ํด ์์๋ณด๊ณ ๊ฐ ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ์๋ค! // MARK: - ์ง์..
-
Deep copy & Shallow copySwift 2021. 5. 25. 17:47
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Deep copy(๊น์ ๋ณต์ฌ)์ Shallow copy(์์ ๋ณต์ฌ)์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ๋ณธ๊ฒฉ์ ์ผ๋ก ์์๋ณด๊ธฐ์ ! ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ ํน์ ์ฐธ์กฐ ํ์ ์ ๊ฐ์ง๋๊ฑด ์๊ณ ๊ณ์์ฃ ? ๊ฐ๋จํ ๋ ํ์ ์ ๋ํด ์ค๋ช ํด๋ณด์๋ฉด, ๊ฐ ํ์ ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊ฐ ํด๋นํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐ๋ก ์์ ํฉ๋๋ค. ์ฐธ์กฐ ํ์ ์ผ๋ก ์์ฑ๋ ์ธ์คํด์ค๋ ์ฃผ์๋ฅผ ๊ณต์ ํ์ฌ ๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ ๊ฐ์ด ๋ฐ๋๋ฉด ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด ๋ ์ฐจ์ด๋ฅผ ํตํด ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ์ ๋ํด ์ด๋จ๋ ์ผ์ด๋๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ์์๋ด ์๋ค๐๐ป Deep copy : ๊น์ ๋ณต์ฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ๋ณต์ฌ๋ ๋ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๋๋ค. : ์ฃผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํ์ ์ ๊ฐ์ฒด๋ค์ ์์ฑํ๋ฉด ๊น์ ๋ณต์ฌ๋ก..
-
์ผ๊ณฐ ์์นด๋ฐ๋ฏธ ์บ ํ ํ๊ณํ๊ณ 2021. 5. 19. 17:18
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ์๋ ํ์ต์ ๋ํ ๋ถ๋ถ๋ง๊ณ ์ฌํ๊น์ง 6๊ฐ์ ๋์ ์ผ๊ณฐ ์์นด๋ฐ๋ฏธ์์ ์บ ํผ ์ํ์ ๋ํด ํ๊ณ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค๐ป ์ผ๊ณฐ ์์นด๋ฐ๋ฏธ? ์ฒ์ iOS ๊ฐ๋ฐ์๋ก ์ ํฅํ๊ณ ์ ๋ง์ ๋จน์์๋ ๋ณด๋ค ๋ ๋์ ์์ผ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค๊ณผ ์ํต์ ํตํด ๋ฐฐ์๊ฐ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค iOS ๋ถ์ผ์์ ๋ค์๋์ธ ์ผ๊ณฐ์ ์ ํ๊ฒ ๋์๊ณ ๋ญ๊ฐ ์ผ๊ณฐ์๊ฒ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ผ๋ ์๊ฐ์ด ๋๋ฆฌ๋ฅผ ์ค์ณค์ต๋๋คโก๏ธ ํจ์คํธ์บ ํผ์ค, ๋ฐ๋๋ผ์ฝ๋ฉ, ๋ถ์คํธ์บ ํ ๋ฑ๋ฑ... ์ ๋ง ๋ง์ ๊ฐ๋ฐ์ ๋ฐฐ์ธ ์ ์๋ ์์นด๋ฐ๋ฏธ๊ฐ ๋ง์๋๋ฐ ์ผ๊ณฐ์ด ์ด๋ฒ์๋ ์ง์ ? iOS ๋ถ๋ถ์ ๊ต์กํ๊ณ ์ ์ผ๊ณฐ ์์นด๋ฐ๋ฏธ์์ 1๊ธฐ๋ฅผ ๋ชจ์งํ๋ค๋๊ฑธ ๋ดค์ต๋๋ค! ์ด๊ฑด ์ง์ง ๊ธฐํ๋ค!! ๋ผ๋ ์๊ฐ์ด ๊ฐํด ๋ฐ๋ก ์ ์ฒญ์ ํ๊ณ ์ฌ์ ๊ณผ์ ์ ๋ฉด์ ์ ํตํด ์ผ๊ณฐ ์์นด๋ฐ๋ฏธ 1๊ธฐ์ ํฉ๋ฅํ๊ฒ ๋์์ต๋๋ค๐๐ปโ๏ธ ..
-
CI / CDiOS 2021. 4. 29. 16:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ CI / CD์ ๋ํด ๊ฐ๋ตํ๊ฒ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป CI - Continuous Integration (์ง์์ ํตํฉ) - ๋น๋ํ๊ณ ํ ์คํธ ์๋ํํ๋๊ฒ ๊น์ง ์๋ฏธ (์ต์ํ ํ ์คํธ๊ฐ ๊ฐ๋ฅํด์ผํจ) - ์ ๊ธฐ์ ๋น๋ / ํ ์คํธ ๋์ด ํ ๋ ํ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ๋งํจ (์ฑ์ ๋ณ๊ฒฝ์ฌํญ) - ํ์ ๊ฐ๋ฐ์๋ค์ด ํ์๊ด๋ฆฌ ํด๋ก ๊ณต์ ํ์ฌ ์ฌ์ฉํ๋ ํ๊ฒฝ์ด ๋์ด์ผํจ (๊นํ ๋ฑ) - Jenkins ๊ฐ์ CI tool์ ์์ค์ฝ๋ ๋ณ๊ฒฝ์ ๋ณด๋ด๊ณ ์ฒ๋ฆฌ (๋น๋, ํ ์คํธ, ๋จธ์ง๋ฅผ ์งํํ๊ณ ์๋ฃ ๊ฒฐ๊ณผ๋ฅผ ์๋ฆผ) CD - Continuous Delivery / Deployment (๋ฐฐํฌ ์๋ํ) - CD๊ฐ ๋๊ธฐ ์ํด ํญ์ CI๊ฐ ์ ํ๋์ด์ผํจ - SW๊ฐ ์ ๋ขฐ ๊ฐ๋ฅํ ์์ค์์ ๋ฐฐํฌ๋ ์ ์๋๋ก ์ง์ ๊ด..
-
๊ฐ๋ ์๋ฌธ์๋ตSwift 2021. 4. 29. 11:28
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ iOS ๊ฐ๋ฐ์ ํ๋ฉฐ ๋ช๊ฐ์ง ํท๊ฐ๋ ธ๊ฑฐ๋ ํ๋ ์ผ๋ถ ๊ฐ๋ ๋ค์ ๋ํ ์๋ฌธ์๋ต์ ํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป MVC์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ์ํคํ ์ณ ํจํด? (MVVM) - MVC: ๋ชจ๋ธ ๋ทฐ ์ปจํธ๋กค๋ฌ ๊ฐ๊ฐ์ ๋ถ๋ฆฌํ์ฌ ์์กด์ฑ์ ์์ ๋ ค ํ๋๋ฐ ๋ทฐ์ ์ปจํธ๋กค๋ฌ์์๋ ์ํต์ ํ๋ ์์กด์ฑ์ด ์๊ธธ ์ ์์ด ์ฌ์ฌ์ฉ์ฑ์ด ๋ฎ์์ง๋ ๋ฌธ์ - MVP: MVC์ ๋์ผํ ๊ฐ๋ ์ผ๋ก C๋์ P ํ๋ ์ ํฐ๋ก ๋ณ๊ฒฝ๋๊ฒ์ผ๋ก ๊ฒฐ๊ตญ MVC์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ทฐ/ํ๋ ์ ํฐ ์ฌ์ด ์์กด์ฑ ๋ฌธ์ ๊ฐ ๋ํ๋จ - MVVM: ์ 2๊ฐ ์ํคํ ์ณ ํจํด์ ๋จ์ ์ ๊ทน๋ณตํ๊ณ ์ ๋์ ์ด๋ฒคํธ ํ๋ฆ์ด ๋ทฐ -> ๋ทฐ๋ชจ๋ธ -> ๋ชจ๋ธ๋ก ์ด๋ค์ ธ์์ด Commandํจํด๊ณผ Data Binding์ ํตํด ์์กด์ฑ์ ์ ๊ฑฐ ํ์ ์บ์คํ ๋ฐ ๋์ด๋์ ๋ผ์ด์ ๋ ..