Skip to content

[#576] TodoListView에 TCA를 적용한다#597

Merged
opficdev merged 9 commits into
developfrom
refactor/#576-TodoListView-TCA
Jun 12, 2026
Merged

[#576] TodoListView에 TCA를 적용한다#597
opficdev merged 9 commits into
developfrom
refactor/#576-TodoListView-TCA

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • TodoListView의 상태 관리를 ViewModel 기반 흐름에서 TCA 기반 흐름으로 이행

📝 작업 내용

📌 요약

  • TodoListViewModel 상태 관리 테스트 추가 후 TodoListFeature와 Store 기반 상태 관리로 이행
  • TodoListView의 검색, 정렬, 필터 바인딩을 BindingAction 중심으로 정리
  • 에러 알림을 AlertState로 전환
  • Todo editor 표시를 FullScreenCoverState 기반으로 전환
  • TodoQuery.isPinnedBool?에서 Bool로 정리하고 pinned 필터 의미를 단순화
  • 기존 테스트를 TestStore 기반 어댑터로 연결하고 상태 관리 동등성 검증 추가

🔍 상세

  • TodoListFeature 추가 및 TodoListViewStoreOf<TodoListFeature> 기반으로 연결
  • TodoListFeatureTests와 테스트 어댑터를 추가해 onAppear, pagination, search debounce, filter/sort, toggle, delete/undo, alert, fullScreenCover 상태를 검증
  • TodoListView의 검색창, 정렬 메뉴, 필터 메뉴에서 수동 binding을 제거하고 BindingAction 경로로 통일
  • 에러 표시 상태를 showAlert/alertTitle/alertMessage 조합에서 AlertState로 전환
  • editor 표시 상태를 showEditor Bool에서 FullScreenCoverState로 전환
  • TodoQuery.isPinnednil == 필터 없음, true == pinned only 패턴을 false == 필터 없음, true == pinned only로 단순화
  • Infra query 구성 로직을 query.isPinned == true일 때만 pinned 조건을 추가하도록 조정

📸 영상 / 이미지 (Optional)

@opficdev opficdev self-assigned this Jun 12, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 기존의 TodoListViewModel을 Composable Architecture(TCA) 기반의 TodoListFeature로 마이그레이션하고, TodoListView 및 관련 테스트 코드와 코디네이터를 이에 맞게 업데이트하는 변경 사항을 담고 있습니다. 리뷰어는 필터 변경 및 새로고침 시 발생할 수 있는 레이스 컨디션을 방지하기 위해 fetchEffect.cancellable을 적용할 것을 제안했습니다. 또한, State 구조체의 커스텀 == 구현을 제거하여 컴파일러가 Equatable을 자동 합성하도록 개선하고, 삭제 취소 완료 시(finishDeleteToast) 모든 임시 숨김 항목을 일괄 제거하여 상태 일관성을 강화할 것을 권장했습니다.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread Application/DevLogPresentation/Sources/Home/List/TodoListFeature.swift Outdated
@opficdev opficdev merged commit 4fc460c into develop Jun 12, 2026
5 checks passed
@opficdev opficdev deleted the refactor/#576-TodoListView-TCA branch June 12, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TodoListView에 TCA를 적용한다

1 participant