combine
-
Combine - SchedulerCombine 2022. 3. 7. 21:04
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์์ ํฌ๊ฒ ์์๋ณด๊ธฐ๋กํ 4๋ฒ์งธ ์น๊ตฌ Scheduler์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค!๐ Scheduler? ๊ณต์๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ํด๋ก์ ๋ฅผ ์คํํ๋ ์๊ธฐ์ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ํ๋กํ ์ฝ์ด๋ผ๊ณ ํฉ๋๋ค. protocol Scheduler ์ด๋ ๊ฒ ๊ฐ๋จํ ์ ์ธ์ ๋ณด๋ฉด ํ๋กํ ์ฝ์ ๋๋ค! ์ ์๊ฐํด๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ DispatchQueue๋ OperationQueue์ ๋์ผํ ์ญํ ์ด๋ผ๊ณ ์๊ฐ์ด ๋ญ๋๋ค. ์ฆ ๋ฉ์ธ ํน์ ์๋ธ ์ฐ๋ ๋ ์ด๋์์ ํด๋น ํด๋ก์ ๋ฅผ ์คํํด์ค์ง์ ๋ํ๊ฑฐ๋ผ๊ณ ์ดํดํ๋ฉด ์ฌ์ธ๊ฒ ๊ฐ์์. ๊ณต์๋ฌธ์์ OverView ์ ๋ฌธ์ ๊ฐ์ ธ์๋ณผ๊ป์! You can use a scheduler to execute code as soon as possible, or after ..
-
Combine - SubjectCombine 2022. 2. 28. 09:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ Subject์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป Subject? ์ธ๋ถ ํธ์ถ์๊ฐ ์์๋ฅผ ๊ฒ์ํ ์ ์๋๋ก ํ๋ ๋ฉ์๋๋ฅผ ๋ ธ์ถํ๋ ๊ฒ์์๋ผ๊ณ ๊ณต์๋ฌธ์์๋ ๋์์์ต๋๋ค๋ง.. ํท๊ฐ๋ฆฌ๋ ๋ง์ด๋ค์ ์ ๋ง๐ฅฒ ๊ฐ๋จํ๊ฐ ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋๋ฆ ํด์์ ํด๋ณธ๋ค๋ฉด ์ธ๋ถ ํธ์ถ์๊ฐ ๊ฐ์ ํผ๋ธ๋ฆฌ์ฌ ํ๋๋ก ์ฆ, ๊ฐ์ ๋ฐฉ์ถ ํ๋๋ก ๋์์ฃผ๋ ์น๊ตฌ๋ผ๊ณ ํด์ํ๋๊ฒ ์ฌ์ ์์ ์ ๋์์ด ๋ ๊ฒ ๊ฐ์์. ์ ์ธ์ ๋ณด๋ฉด ์๋์ ๊ฐ์ด Publisher ํ๋กํ ์ฝ์ ์ฑํํ๊ณ ์์ด์. ์ฆ ์ด ์น๊ตฌ๋ Publisher์ ๊ฐ๋ ์ด๋ผ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. protocol Subject : AnyObject, Publisher ๊ทธ๋ฆฌ๊ณ ์ด ์น๊ตฌ๋ send(_:)๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์คํธ๋ฆผ์ ๊ฐ์ ์๋ฐํด์ค ์ ์๋๋ก ํด์ค๋..
-
Combine - SubscriberCombine 2022. 2. 24. 10:45
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ Subscriber๋ผ๋ ๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ด์ ํฌ์คํ ์์ Publisher์ ๋ํด ์์๋ณด๋ฉด์ Subscriber์ ๋๋ ์ผ ๋ ์ ์์ด์ ๊ฐ์ด ์ค๋ช ํ๋ ๋๋์ด ์์ด์ ์ด๋ป๊ฒ ๋ณด๋ฉด ํ๋ ํ์ต ๋ฐ๋ณต์ผ ์๋ ์์ต๋๋ค. ๊ทธ๋ ์ง๋ง ๊ทธ๋ณด๋ค ์ด๋ฒ์ ์กฐ๊ธ ๋ Subscriber์ ์ด์ ์ ๋ง์ถฐ ํ์ตํด๋ณด๋ คํด์๐ (Publisher์ ๋ํด ๋ชป๋ณด์ ๋ถ์ด ์๋ค๋ฉด ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!) https://green1229.tistory.com/221 Combine - Publisher ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋๋ถํฐ ์งํ๋ ํฌ์คํ ์ combine์ ๊ดํ๊ฒ๋๋ค๐๐ป ์ด์ ์ RxSwift์ ๋ํด์๋ ์ฌ๋ฌ ๋ชฉ์ฐจ๋ก ์์ฐจ์ ์ผ๋ก ์งํํ์ ์ด ์์ต๋๋ค! ๊ทธ๊ฒ๊ณผ ์ ์ฌ..
-
Combine - PublisherCombine 2022. 2. 22. 10:23
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋๋ถํฐ ์งํ๋ ํฌ์คํ ์ combine์ ๊ดํ๊ฒ๋๋ค๐๐ป ์ด์ ์ RxSwift์ ๋ํด์๋ ์ฌ๋ฌ ๋ชฉ์ฐจ๋ก ์์ฐจ์ ์ผ๋ก ์งํํ์ ์ด ์์ต๋๋ค! ๊ทธ๊ฒ๊ณผ ์ ์ฌํ๊ฒ combine๋ ํ๋ฒ ์ฌ์ด๊ฒ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฆฌํด๋ณด๋ฉด ์ด๋จ๊นํด์ ์์ํ๊ฒ ๋์์ต๋๋ค๐ ์ฌ์ค ํ์ ์์ ๊ณ์ swiftUI์ ๋๋ถ์ด ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํด combine์ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๋ง์ combine์ ๋ํด์ ํฌ์คํ ํ๊ฑด RxSwift์ ๋น๊ตํ๊ณ ๋๋ต์ ์ผ๋ก ์ด๋ฌํ๊ฑฐ๋ค~๋ผ๊ณ ๊ฐ๋ ๋ง ์๊ฐํ๋๊ฒ ๊ฐ๋๋ผ๊ตฌ์๐ฅฒ (๊ถ๊ธํ์ ๋ถ์ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!) https://green1229.tistory.com/137 Combine ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Combine์ ์๊ธฐ์ ..
-
Composable Architecture๋ก ๋๋ค ํต์ ๊ตฌํํ๊ธฐTCA 2021. 7. 17. 15:32
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ผ๋ก ๋๋คํ ํต์ ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ๋ทฐ๋ SwiftUI๋ฅผ ํตํด ๊ฐ๋จํ ๊ตฌํํ์์ต๋๋ค. ์ฐ์ ๊ฐ๋ตํ ๊ธฐ๋ฅ์ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค. Composable Architecture๋ฅผ ์ด์ฉํ์ฌ ๋ทฐ์ ์ํ๋ฅผ ์ด๋ฒคํธ ํ๋ฆ์ ๋ฐ๋ผ ๋ค๋ฃฐ ์ ์๋ ์์ฃผ ๊ฐ๋จํ ์์ ๋ก ํต์ ์ GET์ ID ์ธ๋ฑ์ค๋ฅผ ๋๊ฒจ ํต์ ํ ๋ ํด๋น ์ธ๋ฑ์ค๋ฅผ ๋๋คํ๊ฒ ๋ฝ๊ณ ํต์ ๋ฐ ํ์ฑํ ํ ID์ ํ์ดํ์ UI์ 3์ด๋ง๋ค ์๋ ๊ฐฑ์ ๋๋๋ก ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ค๐ง๐ป๐ป ๋ํ ์๋/์๋ ๋ณ๊ฒฝ ๋ฒํผ์ ๋์ด ํด๋น ์กฐ๊ฑด์ ๋ฐ๋ผ ํต์ ๋๋๋ก ๊ตฌํํฉ๋๋ค. (์ด์ ์ ReactorKit์ผ๋ก ๋๋ค ํต์ ์ ๊ตฌํํ ์คํ๊ณผ ๋์ผํฉ๋๋ค.) ์ฌ๊ธฐ ํฌ์คํ ์์๋ ํ์ ํ์ผ์ ๋ํ ๊ตฌํ๋ค๋ง..
-
CombineCombine 2021. 6. 9. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Combine์ ์๊ธฐ์ ! MVVM ํจํด์ ๋ฐ๋ฅด๊ธฐ ์ํด ์คํ ๋ฆฌ๋ณด๋ ์์ ๋์ SwiftUI๋ฅผ ์ฌ์ฉํ๋ฉด์ RxSwift๋ก ๊ตฌํ์ ํด์ฃผ์๋๋ฐ์. WWDC 2019 ์ดํ Combine์ด ๋ํ๋ฌ์ต๋๋ค. Combine์ด ๋ฌด์์ด๋? ์ฝ๊ฒ ์๊ฐํ๋ฉด RxSwift๋ ์จ๋ํํฐ ํ๋ ์์ํฌ์ด๊ณ Combine์ ์ ํ์์ RxSwift์ ์ญํ ์ ์ํด ๋ง๋ ํผ์คํธํํฐ ํ๋ ์์ํฌ์ ๋๋ค. Combine์ ์ ์ฐ๋? RxSwift๋ฅผ ์ฐ๋ ์ด์ ์ ์์ถฉํ๋ค๊ณ ๋ณด๋๋ฐ์. ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํจ์ ๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํด delegate, GCD, notification center, ์ฝ๋ฐฑ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฌธ..