SWIFT
-
ReactorKitLibrary 2021. 6. 16. 10:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ReactorKit์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ReactorKit? - ๋ฐ์ํ ๋จ๋ฐฉํฅ Swift ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์จ๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ - Flux์ Reactive Programming์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง - User Action๊ณผ View๋ ์คํธ๋ฆผ์ ํตํด ๊ฐ ๊ณ์ธต์ ์ ๋ฌ (์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ) - View๋ Action๋ง ๋ด๋ณด๋ด๊ณ Reactor๋ State๋ง ๋ด๋ณด๋ผ ์ ์์ ReactorKit ์ฌ์ฉ์ ์ํ ์๊ตฌ์ฌํญ? - Swift 5 ์ด์ - iOS 8 ์ด์ - Cocoapods๋ก๋ง ์ง์ ๊ฐ๋ฅ (https://github.com/ReactorKit/ReactorKit) ReactorKit์ ํน์ง? - ๊ธฐ์กด MVVM ์ํคํ ์ณ ํจํด์๋ ํน์ ์ ํํ๋ ํ ํ๋ฆฟ์ด ์..
-
์ด๋ถํ์์ ์ด์ฉํ ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 6. 15. 10:44
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์ ๊ตญ์ฌ์ฌ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ n๋ช ์ด ์ ๊ตญ์ฌ์ฌ๋ฅผ ์ํด ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ฐ ์ ๊ตญ์ฌ์ฌ๋์ ์๋ ์ฌ์ฌ๊ด๋ง๋ค ์ฌ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ค๋ฆ ๋๋ค. ์ฒ์์ ๋ชจ๋ ์ฌ์ฌ๋๋ ๋น์ด์์ต๋๋ค. ํ ์ฌ์ฌ๋์์๋ ๋์์ ํ ๋ช ๋ง ์ฌ์ฌ๋ฅผ ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์์ ์ ์๋ ์ฌ๋์ ๋น์ด ์๋ ์ฌ์ฌ๋๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ ๋นจ๋ฆฌ ๋๋๋ ์ฌ์ฌ๋๊ฐ ์์ผ๋ฉด ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๊ทธ๊ณณ์ผ๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์๋ ์์ต๋๋ค. ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๋ก ํ๊ณ ์ถ์ต๋๋ค. ์ ๊ตญ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋ ์ n, ๊ฐ ์ฌ์ฌ๊ด์ด ํ ๋ช ์ ์ฌ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋ด๊ธด ๋ฐฐ์ด times๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๊ฐ์ retu..
-
UIKitPlusLibrary 2021. 6. 14. 20:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ UIKitPlus์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป UIKitPlus? - ์ฐ์ UIKitPlus๋ ์จ๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฝ์ฝ์ํ / SPM์ ํตํด ์ค์นํ ์ ์์ (์ฃผ์๋ ์๊ธฐ! -> https://github.com/MihaelIsaev/UIKitPlus) - SwiftUI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ํ UI๋ฅผ ๋ง๋ค์ด์ฃผ์๋๋ฐ UIKit์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด์ ๋ ๊ฐ๋จํ๊ฒ ๋ฐ์ํ UI๋ฅผ ๊ตฌํํ ์ ์์ (UIKit์ ์ฐ์ฅ ๋๋) - Xcode 12.3 / Swift 5.3 ์ด์ ๋ฒ์ ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅ - ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ฐ์ ๊ฒฝ์ฐ iOS 9 ์ด์ ํ๊ฒฝ์์ ์ง์ - SwiftUI์ ๋น์ทํ ๋ทฐ ๊ตฌ์กฐ๋ก ์์ฑ๋์ง๋ง UIKit์ ๋ ์ด์์์ ์ฌ์ฉ - UIKitPlus๋ฅผ ์ํฌํธํ๋๊ฒ์ผ๋ก UIKit ๋์ ..
-
์ฌ๊ท๋ฅผ ์ด์ฉํ ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 6. 14. 10:58
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ํ๋ ธ์ด์ ํ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋๋ค. ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋๋ก ์์ฌ ์์ต๋๋ค. ๊ฒ์์ ๋ชฉ์ ์ ๋ค์ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ฉด์, ํ ๊ธฐ๋ฅ์ ๊ฝํ ์ํ๋ค์ ๊ทธ ์์ ๊ทธ๋๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ฒจ์ ๋ค์ ์๋ ๊ฒ์ ๋๋ค. ํ ๋ฒ์ ํ๋์ ์ํ๋ง ์ฎ๊ธธ ์ ์์ต๋๋ค. ํฐ ์ํ์ด ์์ ์ํ ์์ ์์ด์๋ ์๋ฉ๋๋ค. ํ๋ ธ์ด ํ์ ์ธ ๊ฐ์ ๊ธฐ๋ฅ์ ์ผ์ชฝ ๋ถํฐ 1๋ฒ, 2๋ฒ, 3๋ฒ์ด๋ผ๊ณ ํ๊ฒ ์ต๋๋ค. 1๋ฒ์๋ n๊ฐ์ ์ํ์ด ์๊ณ ์ด n๊ฐ์ ์ํ์ 3๋ฒ ์ํ์ผ๋ก ์ต์ ํ์๋ก ์ฎ๊ธฐ๋ ค๊ณ ํฉ๋๋ค. 1๋ฒ ๊ธฐ๋ฅ์ ์๋..
-
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, ์ฝ๋ฐฑ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฌธ..
-
๋ฐฉ๊ธ๊ทธ๊ณกAlgorithm 2021. 6. 8. 14:23
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ 2018 KAKAO BLIND RECRUITMENT > ๋ฐฉ๊ธ๊ทธ๊ณก์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ๋ผ๋์ค๋ฅผ ์์ฃผ ๋ฃ๋ ๋ค์ค๋ ๋ผ๋์ค์์ ๋ฐฉ๊ธ ๋์๋ ์์ ์ด ๋ฌด์จ ์์ ์ธ์ง ๊ถ๊ธํด์ง ๋๊ฐ ๋ง๋ค. ๊ทธ๋ด ๋ ๋ค์ค๋ ๋ค์ ํฌํธ์ '๋ฐฉ๊ธ๊ทธ๊ณก' ์๋น์ค๋ฅผ ์ด์ฉํ๊ณค ํ๋ค. ๋ฐฉ๊ธ๊ทธ๊ณก์์๋ TV, ๋ผ๋์ค ๋ฑ์์ ๋์จ ์์ ์ ๊ดํด ์ ๋ชฉ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์๋น์ค์ด๋ค. ๋ค์ค๋ ์์ ์ด ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ๊ฐ์ง๊ณ ๋ฐฉ๊ธ๊ทธ๊ณก์ ์ด์ฉํด ์์ ์ ์ฐพ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ผ๋์ค ๋ฐฉ์ก์์๋ ํ ์์ ์ ๋ฐ๋ณตํด์ ์ฌ์ํ ๋๋ ์์ด์ ๋ค์ค๊ฐ ๊ธฐ์ตํ๊ณ ์๋ ๋ฉ๋ก๋๋ ์์ ๋๋ถ๋ถ๊ณผ ์ฒ์ ๋ถ๋ถ์ด ์ด์ด์ ์ฌ์๋ ๋ฉ๋ก๋์ผ ์๋ ์๋ค. ๋ฐ๋๋ก, ํ ์์ ์ ์ค๊ฐ์ ๋์ ๊ฒฝ์ฐ ์๋ณธ ์์ ์๋ ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋๊ฐ ๋ค์ด์๋ค ํด๋ ๊ทธ ๊ณก์ด ..
-
์ฝ๋ผ์ธ ์ถ์ธกAlgorithm 2021. 6. 7. 10:26
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์ฝ๋ผ์ธ ์ถ์ธก์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ 1937๋ Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์ ๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1-1. ์ ๋ ฅ๋ ์๊ฐ ์ง์๋ผ๋ฉด 2๋ก ๋๋๋๋ค. 1-2. ์ ๋ ฅ๋ ์๊ฐ ํ์๋ผ๋ฉด 3์ ๊ณฑํ๊ณ 1์ ๋ํฉ๋๋ค. 2. ๊ฒฐ๊ณผ๋ก ๋์จ ์์ ๊ฐ์ ์์ ์ 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ฅ๋ ์๊ฐ 6์ด๋ผ๋ฉด 6→3→10→5→16→8→4→2→1 ์ด ๋์ด ์ด 8๋ฒ ๋ง์ 1์ด ๋ฉ๋๋ค. ์ ์์ ์ ๋ช ๋ฒ์ด๋ ๋ฐ๋ณตํด์ผํ๋์ง ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์์ ์ 500๋ฒ์ ๋ฐ๋ณตํด๋ 1์ด ๋์ง ์๋๋ค๋ฉด –1์ ๋ฐํํด ์ฃผ์ธ์. ์ ํ ์ฌํญ ์ ๋ ฅ..