ํด๋น Tutorial์ TCA ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ pointfreeco์์ ์ ๊ณตํ๋ Tutorial์ธ๋ฐ ์ฒ์ TCA๋ฅผ ์์ํ๊ธฐ ์ข์์ ์ ๋ฆฌํ๋ฉด์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์๋ค.
TCA๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ๋๋ฐ ๋์์ ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ํ ๋น๋์๊ฐ์ ๋ดค๋๋ฐ ๋งค์ฐ ์ฆ๊ฐ๋์๋ค. ์ผ๋จ ๊ฒ์ํด๋ณธ ๊ฒฐ๊ณผ Apple ์ธก์์ Swift Syntax ์ปดํ์ผ์๊ฐ์ด ๋์ด๋์ ์ค๋๊ฑธ๋ฆฐ๋ค๊ณ ํ๋ ๊ฒ ๊ฐ๋ค.
TCA์ SwiftUI๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ View์ Store๋ฅผ ์ฐ๊ฒฐํ ํ Action์ ์ ๋ ฅ๋ฐ์ State๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ด์๋ค.
Action์ ์ ๋ ฅ๋ฐ์ State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฐ์ฒด๋ Reducer ํ๋กํ ์ฝ์ ์ค์ํ๋ Feature์์ ๋ด๋นํ๋ค.
TCA๋ฅผ ๋ฐฐ์ฐ๋ฉด์ ๋๋์ ์ ์ฌ์ค์ ํฌ๊ฒ ๋ณด๋ฉด View์ Feature๋ง ๋๋ ์ ธ์์ด์ Feature๊ฐ MVC์ Controller๋ MVVM์ ViewModel ์ฒ๋ผ ๋ฌด๊ฑฐ์์ง์ง ์์๊น ์๊ฐํ๋๋ฐ Feature๋ฅผ ๋ ์๊ฒ ๋๋ ํ ํตํฉํ๋ ๋ถ๋ถ์ด ์์ฐ์ค๋ฌ์ ๊ณ Swift Macro๊ฐ ๊ตฌํ์ด ์๋์ด ์์ด์ ์ผ๋จ ๊น๋ํ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ Unitํ ์คํธ๋ฅผ ์งํํ ๋ Feature๋ง ํ ์คํธ๋ฅผ ์งํํ๋ฉด ๋๊ณ TestStore๋ฅผ ๋น๋กฏํด ์ฌ๋ฌ ํ ์คํธ๋๊ตฌ๋ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ์ฝ๋ ์์ฑ์ด ๋งค์ฐ ํธ๋ฆฌํ๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉํ๋ DesignSystem์ ์ฌ๋ฌ Target์ผ๋ก ๋๋์์ ๋ ๋น๊ณต๊ฐ Spec ์ ์ฅ์ ํ๋์์ ์ฌ๋ฆฌ๊ณ ์ถ์ด์ SwiftUI Target์ ์ถ๊ฐํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ์ ์ฌ๋ฆด ๋ podspecํ์ผ๋ค์ ์ฐพ์์ version์ ์ฌ๋ ค์ฃผ๋ ์์คํฌ๋ฆฝํธํ์ผ์ ์์ฑํ๊ณ ํด๋น ์คํ์ด ์๋ฃ๋๋ฉด workflow๊ฐ ๋์์ tag ๋ฒ์ ๋ ์ฌ๋ฆฌ๋ ํ์ผ์ ์์ฑํ์ง๋ง Linux์์ ์ด์๊ฐ ์์ด์ ์ผ๋จ ์์คํฌ๋ฆฝํธํ์ผ์์ tag ๋ฒ์ ๊น์ง ์ฌ๋ฆฌ๋๋ก ์์๋ก ์ค์ ํ๋ค.
์ ์ฒ๋ฆฌ๋ฌธ ์กฐ๊ฑด๋ฌธ์์ Build Configuration์ด ์ ๋๋ก ๋ถ๊ธฐ์ฒ๋ฆฌ ๋์ง ์๋ ์ด์
Tuist๋ฅผ ์ ์ฉํ๋ฉด์ fastlane ๋ฐฐํฌ ํ ๋ฒ์ ์ ๋ฐ์ดํธ๋ฅผ xcodeํ๋ก์ ํธ์๋ง ์ ์ฉํด์ ๋ฒ์ ์ด ๋ง์ถฐ์ง์ง ์๋ ์ด์
fastlane์์ get_build_number๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ๋ ์ด์