Skip to content

TCA 2.0 점진 마이그레이션 계획 수립 및 파일럿 적용 #134

@leejh08

Description

@leejh08

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개를 선정해 실제 변환 패턴을 검증한다.
  • 이후 반복 가능한 체크리스트와 코드 패턴을 정리한다.

진행안

  1. 의존성 및 마이그레이션 경로 확인
  • 현재 사용 중인 TCA 버전/호환 shim/모듈 구성을 확인한다.
  • ComposableArchitecture2 도입 가능 여부와 단계별 적용 방법을 정리한다.
  1. 파일럿 feature 선정
  • 변경 범위가 작고 테스트가 있는 feature를 우선 선정한다.
  • 후보: ChangePassword, Signin, OutList
  1. 파일럿 변환
  • Reducer/Reduce -> @Feature/Update
  • Effect 반환 기반 비동기 처리 -> store.addTask, store.modify 중심으로 전환
  • 필요 시 response action/중간 액션 축소
  • WithViewStore/ViewStore 기반 view -> 최신 store 바인딩 방식으로 전환
  1. 검증 및 가이드화
  • 기존 테스트를 유지 또는 보강해 회귀를 방지한다.
  • 변환 전후 패턴, 주의사항, feature 선정 기준을 정리한다.

완료 조건

  • 파일럿 feature 1개 이상이 TCA 2.0 스타일로 전환되어 있다.
  • 전환 과정에서 필요한 규칙과 반복 패턴이 문서화되어 있다.
  • 남은 feature에 대한 우선순위와 후속 작업 기준이 정리되어 있다.

비목표

  • 전체 feature를 한 번에 2.0으로 전환하지 않는다.
  • 초반부터 모든 신규 통신 패턴(events, preferences, triggers, spawn)을 도입하지 않는다.

Additional

[추가사항]

  • Point-Free 글은 beta preview 기준이므로, 실제 적용 시 최종 공개 API와 차이가 있는지 다시 확인이 필요하다.
  • 파일럿 결과를 바탕으로 다음 이슈를 feature별로 분리하는 방식이 적절하다.

Metadata

Metadata

Assignees

Labels

♻️refactor코드 리팩토링 할 경우🛠️chore코드를 수정할 경우

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions