Describe
[개요] Point-Free의 TCA 2.0 beta preview를 기준으로 현재 프로젝트의 TCA 1.x 스타일 구현을 점진적으로 마이그레이션한다.
참고 문서
배경
- 현재 프로젝트는
Reducer, Reduce, Effect, .publisher, WithViewStore, viewStore.binding(get:send:) 중심의 1.x 스타일을 넓게 사용 중이다.
- 전면 전환은 변경 범위와 회귀 위험이 커서 부담이 크므로, feature 단위의 점진 전환 전략으로 진행한다.
목표
- 빅뱅 마이그레이션 없이 feature 단위로 TCA 2.0 스타일을 도입할 수 있는 기반을 마련한다.
- 파일럿 feature 1개를 선정해 실제 변환 패턴을 검증한다.
- 이후 반복 가능한 체크리스트와 코드 패턴을 정리한다.
진행안
- 의존성 및 마이그레이션 경로 확인
- 현재 사용 중인 TCA 버전/호환 shim/모듈 구성을 확인한다.
ComposableArchitecture2 도입 가능 여부와 단계별 적용 방법을 정리한다.
- 파일럿 feature 선정
- 변경 범위가 작고 테스트가 있는 feature를 우선 선정한다.
- 후보:
ChangePassword, Signin, OutList
- 파일럿 변환
Reducer/Reduce -> @Feature/Update
Effect 반환 기반 비동기 처리 -> store.addTask, store.modify 중심으로 전환
- 필요 시 response action/중간 액션 축소
WithViewStore/ViewStore 기반 view -> 최신 store 바인딩 방식으로 전환
- 검증 및 가이드화
- 기존 테스트를 유지 또는 보강해 회귀를 방지한다.
- 변환 전후 패턴, 주의사항, feature 선정 기준을 정리한다.
완료 조건
- 파일럿 feature 1개 이상이 TCA 2.0 스타일로 전환되어 있다.
- 전환 과정에서 필요한 규칙과 반복 패턴이 문서화되어 있다.
- 남은 feature에 대한 우선순위와 후속 작업 기준이 정리되어 있다.
비목표
- 전체 feature를 한 번에 2.0으로 전환하지 않는다.
- 초반부터 모든 신규 통신 패턴(
events, preferences, triggers, spawn)을 도입하지 않는다.
Additional
[추가사항]
- Point-Free 글은 beta preview 기준이므로, 실제 적용 시 최종 공개 API와 차이가 있는지 다시 확인이 필요하다.
- 파일럿 결과를 바탕으로 다음 이슈를 feature별로 분리하는 방식이 적절하다.
Describe
[개요] Point-Free의 TCA 2.0 beta preview를 기준으로 현재 프로젝트의 TCA 1.x 스타일 구현을 점진적으로 마이그레이션한다.
참고 문서
배경
Reducer,Reduce,Effect,.publisher,WithViewStore,viewStore.binding(get:send:)중심의 1.x 스타일을 넓게 사용 중이다.목표
진행안
ComposableArchitecture2도입 가능 여부와 단계별 적용 방법을 정리한다.ChangePassword,Signin,OutListReducer/Reduce->@Feature/UpdateEffect반환 기반 비동기 처리 ->store.addTask,store.modify중심으로 전환WithViewStore/ViewStore기반 view -> 최신 store 바인딩 방식으로 전환완료 조건
비목표
events,preferences,triggers,spawn)을 도입하지 않는다.Additional
[추가사항]