요즘 핫한 TCA를 파보자!!

개요
The Composable Architecture는 합성(Composition), 테스팅(Testing) 그리고 인체 공학(Ergonomics)을 염두에 둔 TCA는 SwiftUI, UIKit을 지원하며 모든 애플 플랫폼에서 사용 가낭하다.
The Composable Architecture란?
저희 회사의 경우에는 최소 버전이 낮아 컴바인을 사용을 할 수가 없다..😥
- 상태관리(State)
- 간단한 값 타입들도 상태를 관리하는 방법, 화면에서 일어나는 변화(Mutation)를 다른 화면에서 즉시 관측(Observe)하는 방법을 제공
- 합성(Composition)
- 기능을 여러 개의 독립된 모듈로 추출하는 방법, 이 모듈을 다시 합쳐서 거대한 기능을 작은 컴포넌트의 집합으로 구성
- 사이드 이펙트(Side Effects)
- 테스팅(Testing)
- 기능 테스트 작성하는 방법, 전체 테스트를 작성하는 방법을 제공
- 인체공학(Ergonomics)
- 위 기능들을 작은 개념의 간단한 API로 이루는 방법을 제공
사용법
- 상태 (State)
- 비즈니스 로직을 수행하거나 UI를 그릴 때 필요한 데이터에 대한 설명을 나타내는 타입
- 행동 (Action)
- 사용자가 하는 행동이나 노티피케이션 등 어플리케이션에서 생길 수 있는 모든 행동을 나타내는 타입
- 환경 (Environment)
- API 클라이언트나 애널리틱스 클라이언트와 같이 어플리케이션이 필요로 하는 의존성(Dependency)를 가지고 있는 타입
- 리듀서 (Reducer)
- Action이 발생하면 지금 상태(State)를 다음 상태로 변화 시키는 방법을 가지고 있는 함수
- Effect 값을 반환함
- 스토어 (Store)
- 기능이 작동하는 공간
- Action을 보내서 Store는 Reducer와 Effect를 실행할 수 있고, Store에서 일어나는 State 변화를 관측해서 UI를 업데이트 할 수도 있다