ย TCA ๊ธฐ๋ณธ ๊ฐ๋
TCA ๋?
TCA๋ ํ์ฌ ์ํ๊ฐ ์ด๋ค์ง ํ์
ํ๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ํ๊ธฐ ์ํ์ฌ ๊ณ ์๋ ๋จ๋ฐฉํฅ ์ํคํ
์ณ์ด๋ค.
MVVM์ ๊ฒฝ์ฐ
โข
๋จ๋ฐฉํฅ ์ํคํ
์ฒ๋ก์ View๊ฐ ViewModel์ ์ํ๋ฅผ ๊ด์ฐฐํ๊ณ ํด๋น ์ํ์ ๋ฐ๋ผ ์
๋ฐ์ดํธ ๋๋ค.
โข
View๋ ์๊ธฐ ์์ ์ ๋ ๋๋งํ๊ณ ์ ์งํ๊ธฐ ์ํด ViewModel์๊ฒ ์์ ์ ์ํ์ ๋ก์ง์ ์ ๋ฌํ๋ค.
โข
๋ฐ๋ผ์ View๋ ๊ทธ ์ํ์ ๋ก์ง์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ณํ๋๋์ง ์์ง ๋ชปํด์ผ ํ๋ค.
โข
๊ทธ๋ฌ๋ SwiftUI์ ๊ฐ์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ง์ํ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด View๊ฐ ViewModel์์์ ์์ฒญ์ ๋ฐ์์์ ์ถ๊ฐ์ ์ธ ์์
์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค.
โข
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด @Published ์์ฑ๋ค์ ๋ํ ์๊ฒฉํ ์บก์ํ๋ฅผ ์งํฅํ๋ ์ฌ๋๋ค๋ ์์ผ๋, ์ผ๊ด์ ์ธ ๊ฐ์ด๋๋ผ์ธ์ ์๋ ์ํ
โข
์ฆ, ํ์
์ค ์ฝ๋ ์์ฑ ์์ ์ ์ํ์ง ์๋๋ค๋ฉด, ๋์ค์ ์ธ์ ์ด๋์ ์ํ๊ฐ ๋ฐ๋๋์ง ์๊ธฐ ํ์
ํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.
โ ์ด์๋ฌ๋ฆฌ, TCA๋ ์ํ ๋ณํ์ ๋ํ ์ผ๊ด์ ์ธ ๊ฐ์ด๋๋ผ์ธ์ ์ปดํ์ผ ๋จ๊ณ์์๋ถํฐ ํ๋ณดํ๋ค.
โ ๋๊ตฌ๋! TCA๋ฅผ ์ ์ฉํ๋ค๋ฉด ์ํ ๋ณํ๋ฅผ ์ผ ์ผํค๋ Action ์ ์, Action ์ ๋ํ View ์์์ .send() ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด TCA๋ ์๋์ ๋ชฉ์ ์ ๋ฌ์ฑํ๊ธฐ ์ํด Single Source Of Truth(๋จ์ผ ์ง์ค ๊ณต๊ธ์)์ ๋ฐ๋ฅด๋ ์ฒ ์ ํ ๋จ๋ฐฉํฅ ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ค.
Single Source Of Truth๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๋ ๋ฐ์ดํฐ์ ๋ํ ์ ์ผํ ์ถ์ฒ๋ฅผ ๊ฐ์ง๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ก์จ ๋ชจ๋ ์ํ ๋ณ๊ฒฝ์ ์ถ์ฒ๊ฐ ๋ช
ํํด์ง๋ฉฐ, ๊ทธ ๋ณ๊ฒฝ์ด ์์ธก, ์ถ์ ๊ฐ๋ฅํด์ง๊ฒ ๋๋ค.
โข
State
โฆ
๋ณ๋์ ์ถ์ ํ๊ณ ์๋ํ์ง ์์ ๋ณ๊ฒฝ์์ ์ง์ผ๋ด์ผํ ์ํ
โข
์ฌ์ฉ์๊ฐ View๋ฅผ ํตํด ์ด๋ ํ ์์
์ด๋ ์๋ฆผ, ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ ํ๋ฉด ์ฐ๊ฒฐ๋ Action ์ด Reduce ๋ด์ ๊ตฌํ๋ ํจ์๋ก State ๋ฅผ ๋ณํ์ํค๋ Effect๋ฅผ ๋ฐํ ํ๋ค.
โข
์ด๋, ๊ทธ ์์
์ด ํฌ๊ฒ ๋ณต์กํ์ง ์๋ค๋ฉด ๋ฐ๋ก ์ํ๋ฅผ ๋ณํ์ํฌ ์๋ ์๊ณ , ๋๋ก๋ ๋คํธ์ํฌ ํต์ ๊ณผ ๊ฐ์ ๋น๋๊ธฐ์ ์ธ ์์
์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๋ค.
โข
๋น๋๊ธฐ์ ์ธ ์์
์ด ํ์ํ ๊ฒฝ์ฐ์๋ ํต์ ์ ์คํํ๋๋ฐ์ ํ์ํ ํ๊ฒฝ๊ณผ ์์์ด ํ์ํ๊ณ ์ด๋ฅผ โ์์กด์ฑ์ ๊ฐ๊ฒ ๋๋คโ ๋ผ๊ณ ํํํ๋ค.
โข
๋ํ ์ด๋, ์ด ์์
์ ์ฑ๊ณตํ ์๋, ์คํจํ ์๋ ์๋๋ฐ, ๋ณดํต ์ฑ๊ณตํ ๊ฒฝ์ฐ๋ฅผ Effect, ์์์น ๋ชปํ ๊ฒฝ์ฐ๋ฅผ Side Effect ๋ผ๊ณ ํ๋ค.
โข
์ด๋ ๊ฒ ๋์ถ๋ Effect ์ ๋ฐ๋ผ ๋ค์ Action ์ ์ ํํด State ๋ฅผ ๋ณ๊ฒฝํ๋ค.
โข
์ด๋ ๊ฒ ๋ณ๊ฒฝ๋ State ๋ ๋ค์ ๋ทฐ์ ์ํฅ์ ์ฃผ๊ฒ ๋๋ ํ๋ฆ์ผ๋ก TCA๋ ์๋ํ๋ค.
โ ์ด๋ฌํ ๋จ๋ฐฉํฅ ํ๋ฆ์ ์ ํ์์ ์ ์ํ๋ ํ๋ฆ๊ณผ ์ผ๋งฅํตํ๋ ๋ถ๋ถ์ด ์๋ค.
โ ๊ทธ ์ด์ ๋ TCA๊ฐ SwiftUI๋ฅผ ๋ฎ์ผ๋ ค๊ณ ๋
ธ๋ ฅํ๊ธฐ ๋๋ฌธ!
โข
body๋ฅผ ๊ตฌํํจ์ผ๋ก์จ Reducer ๋ฅผ ์ ์ํ๊ฑฐ๋, Dependency ๋ฅผ ํ๋กํผํฐ ๋ํผ๋ก์จ ์ฌ์ฉํ๋ ์ ๊ณผ ๊ฐ์ด ๊ณณ๊ณณ์์ ๊ทธ ํ์ ์ ์ฐพ์ ์ ์๋ค.
List view
Search