TCA
-
[TCA] Sharing logic with actionsTCA 2023. 8. 14. 10:57
์ก์ ์ ์ฌ์ฉํ์ฌ ๋ฆฌ๋์์ ์ฌ๋ฌ ๋ถ๋ถ์์ ๋ก์ง์ ๊ณต์ ํ๋ ์ผ๋ฐ์ ์ธ ํจํด์ด ์๋๋ฐ, ์ด๋ ๋นํจ์จ์ ์ธ ํจํด์ด๋ค. ์ก์ ์ ์ ์กํ๋ ๊ฒ์ ํด๋์ค์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ๋งํผ ๊ฐ๋ฒผ์ด ์์ ์ด ์๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ก์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๋ ์ด์ด๋ฅผ ํต๊ณผํ๋ฉฐ ๊ฐ ๋ ์ด์ด๋ง๋ค ๋ฆฌ๋์๊ฐ ์ก์ ์ ๊ฐ๋ก์ฑ๊ณ ์ฌํด์ํ ์ ์๋ค. ๋์ , Reducer๋ฅผ ์ค์ํ๋ฉด์ ๊ฐ๋จํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ง์ ๊ณต์ ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค. ์ด ๋ฉ์๋๋ ๋ณ์ด๋ฅผ ํด์ผํ ๊ฒฝ์ฐ, State๋ฅผ inout ์ธ์๋ก ๋ฐ์์ ์ฌ์ฉํ ์ ์๊ณ , Effect์ ๋ฐํํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋ถํ์ํ ์ก์ ์ ์ ์กํ๋ ๋น์ฉ์ ๋ฐ์์ํค์ง ์๊ณ ๋ก์ง์ ๊ณต์ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํผ์ณ์ 3๊ฐ์ UI ์ปดํฌ๋ํธ๊ฐ ์๊ณ ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํด๋น ์ํ ํ๋๋ฅผ ์ ๋ฐ์ดํธํ..
-
[TCA] Episodes 1 - FunctionsTCA/Episodes 2023. 5. 6. 18:09
Introduce Point-Free๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ Swift๋ฅผ ๋ค๋ฃจ๋ ๋น๋์ค ์๋ฆฌ์ฆ์ ๋๋ค. ์ฌ๊ธฐ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ๋ํด์ ๋ง์ด ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด์ ์ ์์๋ฌ์ผ ํฉ๋๋ค. Swift์์๋ ์ผ๋ฐ์ ์ผ๋ก free function์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์๋?! free function์ global namespace์ ๋ ๋ค๋๊ณ , ํ์ ์ ๋ฌถ์ฌ์์ง ์์์ messyํ๊ฒ ๋ณด์ผ ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์๋ free function์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ์ฐธ๊ณ ๋ก ์ฌ๊ธฐ์ ๋งํ๋ free function์ด๋, ๋ฉค๋ฒ ํจ์๊ฐ ์๋ ํจ์๋ฅผ ์๋ฏธํฉ๋๋ค. struct NotFreeFunction { func hi() { } // Not Free Function } func bye()..
-
[TCA] fireAndForgetTCA/TCA Study 2023. 4. 13. 10:08
TCA์ fireAndForget์ ๋ํด ์์๋ณด์! ๊ทธ ์ ์, fireAndForget์ ์ฐพ์๋ณด๋ฉด ๋ฏธ์ฌ์ผ๊ณผ ๊ด๋ จํ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. Fire And Forget ๋ฐ์ฌ ํ ํ์ ์กฐ๋ช ์ด๋ ์ ์ ์ ๋ ๋ฑ ์ถ๊ฐ์ ์ธ ์ธ๋ถ ๊ฐ์ ์ด ํ์ํ์ง ์๊ณ ๋ฐ์ฌ์๊ฐ ํ์ ์ ๊ฐ์๊ถ์ ๋ค์ด๊ฐ์ง ์์๋ ํ์ ์ ํ๊ฒฉํ ์ ์๋ ๋ฏธ์ฌ์ผ ์ ๋ ํ์ ๋ฏธ์ฌ์ผ์ ์ ๋ํ๊ธฐ ์ํด ํ์ ๊ทผ์ฒ์ ๋จธ๋ฌด๋ฅด๋ ์ฌ๋์ด๋ ์ฐจ๋ ๋ฑ์ ๊ณต๊ฒฉ์ ์ทจ์ฝํ๊ณ , ๋ค๋ฅธ ์๋ฌด๋ฅผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ ๋ฌด๊ธฐ๊ฐ ๊ฐ์ถ์ด์ผ ํ ์ค์ํ ํน์ฑ! ์ฝ๊ฒ ๋งํด ๋ฏธ์ฌ์ผ์ ๋ฐ์ฌ (Fire)ํ๋ฉด, ๊ทธ ๋ฏธ์ฌ์ผ์ ์์์ ํ์ ์ ํฅํด ๋ ์๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ฌ์๋ ๋ฏธ์ฌ์ผ์ ๋ํด ์๊ณ ์์ด๋ (Forget) ์์์ ํ์ ์ ๋ช ์คํ๋ค๋ ์ด์ผ๊ธฐ๋ค. ์ฆ, ๋ฐ์ฌ ํ ๋ง๊ฐ์ด๋ผ๋ ์๋ฏธ๋ค. ๋ฏธ์ฌ์ผ ๋ฐ์ฌ์๋ ๋ฐ์ฌํ..