TCA
-
TCA 1.0 - Hello, TCA (ch.01)TCA 2024. 2. 1. 18:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ๋ถํฐ TCA์ ๋ํ ํฌ์คํ ์ ๊ฐ๊ฐํ ํ์ตํ๋ฉด์ ํด๋ณด๋ คํ๋๋ฐ์! ๋ฉ์ด์ ์ ๋ฐ์ดํธ๊ฐ ๋ 1.0์ ๊ธฐ์ค์ผ๋ก ์ฐ์ ReducerProtocol์ ์ฌ์ฉํ๊ธฐ์ ์ธ ๊ธฐ์กด ๋ฒ์ ๋ค๊ณผ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง๋ค์ ์์๋ณด๊ธฐ ์ํจ์ด ๊ฐ์ฅ ํฝ๋๋ค ๐ ์ฌ์ค, ํ์ฌ TCA ์ต์ ๋ฒ์ ์ด 1.7๊น์ง ์ฌ๋ผ๊ฐ๋ฉด์ Observation์ ์ฌ์ฉ์ผ๋ก ๋ ๋ง์ ๋ณํ๋ค์ด ์๊ฒผ๊ณ ์์ผ๋ก๋ ๋งคํฌ๋ก ๋ฑ ๋ ๋ง์ ๋ณํ๋ค๋ก ์ ๊ฐ ํ์ตํ๋ ์๋๋ณด๋ค ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ๋ณํํ๊ณ ์์ ์ ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ 1.0์ผ๋ก ํ์ต์ ํด๋ณด๋ คํ๋..? ๊ฐ์ฅ ํฐ ์ด์ ๋ TCA ๊ณต์ ์ฌ์ดํธ์ ๊ฐ์๋ ๋ฌธ์๋ค ์ธ์ ์ ๋ง ๊ด์ฐฎ๊ฒ ํบ์๋ณผ ์ ์๋ ๊ฐ์ ์๋ฃ๋ฅผ ์ฐพ์๊ธฐ ๋๋ฌธ์ ๋๋ค ๐๐ป (๋ค์ ํ๋ฒ ์ ์๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค ๐๐ป) SwiftUI ์ํ ๊ด๋ฆฌ๋ถ..
-
TCA - ReducerProtocolTCA 2023. 1. 31. 09:09
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ ReducerProtocol์ ๊ฐ๋จํ ํ์ตํด๋ณด๋ คํฉ๋๋ค๐ TCA๊ฐ ๋ ์ด ๊ฐ์๋ก ์ ๋ฐ์ดํธ๋ ๋นจ๋ผ์ง๊ณ ๋ ๋ฐ์ ํ๊ณ ์์ด์! ํ์ฌ ๋ฒ์ ์ด 0.50.1๊น์ง ๋์์ผ๋ฉฐ ๊ทธ์ ์ ๋๊ฒฉ๋ณ์ด 0.41.0์์ ์ผ์ด๋ฌ์ต๋๋ค. ๋ฐ๋ก ReducerProtocol์ ๋ฑ์ฅ์ด์ฃ ๐บ๐ป ๊ธฐ์กด์ TCA์์ Core๋ฅผ ๊ตฌ์ฑํ ๋๋ State, Action, Environment๋ค์ ๋ณ๋ struct, enum์ผ๋ก ์ ์ํ๊ณ ์ด๋ฅผ Reducerํ์ ์ ์์๋ก ๋ง๋ค์ด ์ ์ํ๋ ํํ์์ด์. ๊ทธ๋ฐ๋ฐ ์ด์ ๋ฐ๋๋ก Protocol Programming์ ์ฅ์ ๋ ์ด๋ฆฌ๋ฉด์ ๋ ์ ํฉํ๊ฒ ReducerProtocol์ ์ฌ์ฉ์ผ๋ก ์ ๋ถ ๋ณํ๋์์ผ๋ฉฐ ์ฅ์ ๋ ๋ง์์ก์ด์๐๐ป ๋ง์ฝ ์ด์ TCA ๊ตฌ์ฑ์ด ๋๋ต์ ์ผ๋ก ์ด๋ป๊ฒ ๋์ด์์..
-
TCA - Testing Effects (feat. unimplemented)TCA 2022. 10. 31. 11:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์์ Effect๋ฅผ ํ ์คํฐ๋ธํ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ unimplemented๋ผ๋ ๋ฉ์๋์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ umimplemented๋ผ๋ ๋ป์ ์ฐ์ implemented์ ๋ฐ๋์ด์ฃ . ๊ฐ๋ฐ์๋ค์ ํญ์ ๊ตฌํ์ ํ์์์? ๊ตฌํ์ด๋ผ๋ ๋จ์ด์ธ implement๋ ์ต์ํ ๊ฑฐ๋ผ ์๊ฐํด์. ๊ทธ์ ๋ฐ๋๋ ๊ตฌํ๋์ง ์์๋ค๋ ๋ป์ unimplement์ ๋๋ค. (๊ทธ๋ฅ ์ ๊ฐ ์์ฆ ์์ด ๊ณต๋ถ๋ ๊ฐ๊ฐํ ํ๋ คํด์ ์ฃผ์ ์ฃผ์ ์จ๋ดค๋ค์..!) ๊ฒฐ๊ตญ "๊ตฌํ๋์ง ์์, ์คํ๋์ง ์๋" ๋ป์ ๊ฐ์ง ๋ฉ์๋์ผ๊ฑฐ๋ผ ์ถ์ธกํฉ๋๋ค. TCA๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฆฌ๋์์์ Effect๋ฅผ ๋ฐฉ์ถํ๋ฉด์ ํํ ์์๋ ๊ตฌํ์ผ๋ก ์ฌ์ฉํ์์์? ๊ทผ๋ฐ ์ด Effect๋ฅผ ํ ์คํธ ํ๊ฒฝ์์๋ ๊ตณ์ด ๊ฒฐ๊ณผ๊น์ง ํ ์คํธํ ํ์๊ฐ ์์ด ๋์ด..
-
TCA - fireAndForgetTCA 2022. 10. 27. 09:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ fireAndForget์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ fireAndForget์ด๋ผ๋ ์ฉ์ด๊ฐ ์์ํ ์ ์์ต๋๋ค! ๊ทธ๋ฅ ๋์ถฉ ์ถ์ธก์ ํด๋ณด๋ฉด "๋ถ์ง๋ฅด๊ณ ์์ด๋ฒ๋ฆฌ๊ธฐ"์ ๋๋์ผ๋ก ๋ฌด์ธ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์๊ฒ ๊ฐ์ ๋๋์ด ๋ค์ด์. ์ค์ ๋ก ๊ตฐ์ฌ์ ์ธ ์ฉ์ด์์๋ Fire And Forget์ด๋ผ๊ณ ํด์ 3์ธ๋ ๋ฏธ์ฌ์ผ ์ ๋ ๋ฐฉ์ ์ค ํ๋๋ผ๊ณ ํ๋ค์. ๋ฐ์ฌ ๋ฒํผ๋ง ๋๋ฅด๊ณ ๋๋ฉด ์ฌ๋์ด ๋ ์ด์์ ๋ฏธ์ฌ์ผ์ ์ ๋ํ๊ฑฐ๋ ๊ฑด๋๋ฆฌ์ง ์์๋ ๋๋ค๋ ๋ป์ผ๋ก ์๋์ผ๋ก ๋ชฉํ๋ฌผ์ ์ฐพ์๊ฐ ๋ช ์คํ๋ฐ์๐ https://ko.wikipedia.org/wiki/ํ์ด์ด_์ค_ํฌ๊ฒ ํ์ด์ด ์ค ํฌ๊ฒ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ํ์ด์ด ์ค ํฌ๊ฒ(์์ด: fire-a..
-
TCA - concatenate & merge (์ฌ๋ฌ Effect๋ฅผ ๋จ์ผ Effect๋ก ๋ง๋ค๊ธฐ)TCA 2022. 10. 25. 14:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Effectํธ์ ๋๋ค. Effect๋ฅผ ๋ณํฉํ๋ ๋ํ์ ์ธ ๋๊ฐ์ ๋ฐฉ๋ฒ concatenate์ merge์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์์ ์ ์ ๊ฐ ํฌ์คํ ์ผ๋ก Rx๋ฅผ ํ์ตํ๋ฉด์ concat๊ณผ merge์ ๋ํด ์๊ฐํ๋ฉด์ ์ฐจ์ด์ ์ ์์๋ณธ์ ์ด ์์ต๋๋ค. TCA์์ Effect๋ผ๊ณ ํด์ ๋ค๋ฅผ๊ฒ ์์ด์. Observable, Publisher๋ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค ์๋ฆฌ๋! ๊ทธ๋ ๊ธฐ์ ๋ง์ฝ TCA์์ ๋ฏ์ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์๋ฉด ์๋ ํฌ์คํ ์ ๋ณด๊ณ ์ค์๋๊ฒ๋ ์ข์์๐๐ป https://green1229.tistory.com/166 concat & merge ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ concat๊ณผ merge์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ผ๋จ ๋ ๋จ์ด์ ์ฌ์ ์ ์ธ ์๋ฏธ๋ถ..
-
TCA - ThrottlingTCA 2022. 10. 20. 10:18
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ง๋ Debouncing์ ์ด์ด TCA์์์ Throttling์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ ํน Debouncing ํฌ์คํ ์ ๋ณด์ง ์์ผ์ จ์ผ๋ฉด ์ด๋ฒ Throttling๊ณผ ๋น๊ต๊ฐ ๋ ๊ฑฐ๋ผ ๋จผ์ ๋ณด๊ณ ์ค์๋ฉด ๋์์ด ๋ฉ๋๋คใ ใ https://green1229.tistory.com/290 TCA - Debouncing ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Debouncing์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ Debounce? Debouncing์ด๋ผ๋๊ฑด ์ฐ์ ๋ญ ๋ปํ๋ ๊ฑธ๊น์? ์์ ์ ์ ๊ฐ Rx๋ฅผ ๊ณต๋ถํ๋ฉด์ Debounce์ Throttle์ ํฌ์ค green1229.tistory.com ์ฐ์ Throttling์ ์์๋ณด๊ธฐ์ ์ Rx๋ Combine์์ ์ฐ์ด๋ Debounc์ ..
-
TCA - DebouncingTCA 2022. 10. 17. 14:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Debouncing์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ Debounce? Debouncing์ด๋ผ๋๊ฑด ์ฐ์ ๋ญ ๋ปํ๋ ๊ฑธ๊น์? ์์ ์ ์ ๊ฐ Rx๋ฅผ ๊ณต๋ถํ๋ฉด์ Debounce์ Throttle์ ํฌ์คํ ํ ์ ์ด ์์ต๋๋ค. https://green1229.tistory.com/m/178 RxSwfit - Debounce & Throttle ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ RxSwift์์ ์ฌ์ฉ๋๋ debounce์ throttle์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์์ธํ ํ์ตํ๊ธฐ์ ๊ฐ๋จํ๊ฒ debounce์ throttle์ด ์ด๋ค๊ฑธ ํด์ฃผ๋ ๋ฉ์๋์ธ green1229.tistory.com ์์ธํ ๋ณด์ค ๋ถ๋ค์ ์ด ํฌ์คํ ์ ์ ํ์ผ๋ก ์ฐธ๊ณ ํ์ ๋ ์ข์๊ฒ ๊ฐ์์! ๊ฐ๋ตํ๊ฒ ..
-
TCA - TimerTCA 2022. 10. 13. 11:18
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Effect ํ์ ์์ ์ฌ์ฉํ ์ ์๋ Timer์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ TCA์์ Effect ํ์ ์ ๋ํด์๋ ์๊ณ ๊ณ์๋ค๋ ์ ์ ์์ ํด๋น Timer๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ง์ฝ Effect๊ฐ ์ด๋ค๊ฑด์ง ์์ ๋ชจ๋ฅด์ ๋ค๋ฉด ์๋ ๊ฐ๋จํ TCA ์๊ฐ๋ฅผ ๋ณด๊ณ ์ค๋๊ฒ์ ์ถ์ฒ๋๋ ค์! https://green1229.tistory.com/138?category=1090347 Composable Architecture ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์๋ณด๊ฒ ๋์๋์ง? ์์ผ๋ก๋ SwiftUI์ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ํตํ ๋ทฐ์ ์ ๋ฐ์ดํธ ๋ฑ ์ํ ๊ฐ green1229.tistory.com ..