Skip to content

Conversation

@leeari95
Copy link
Owner

@leeari95 leeari95 commented Feb 1, 2026

📕 Issue

fix ISSUE_URL

📙 작업 내역

구현 내용 및 작업 했던 내역

  • Variant 수집 기능 추가
  • CoreData 저장이 제대로 되지 않았던 버그 개선

📘 작업 유형

  • 신규 기능 추가
  • 버그 수정
  • 리펙토링
  • 문서 업데이트

📋 체크리스트

  • Merge 하는 브랜치가 올바른가?
  • PR과 관련없는 변경사항이 없는가?
  • 내 코드에 대한 자기 검토가 되었는가?
  • 사용자 가이드 업데이트가 필요한가?
    • 사용자 가이드를 업데이트 하였는가?

- VariantCollectionEntity 추가 (variantId, itemName 저장)
- VariantsStorage 프로토콜 정의 (fetch, add, remove, removeAll)
- CoreDataVariantsStorage 구현 (RxSwift 기반)
- CoreDataStorage에 자동 병합 설정 추가 (automaticallyMergesChangesFromParent)
- CoreDataItemsStorage에 viewContext 즉시 저장 로직 추가 (데이터 손실 방지)
- WardrobeVariat.toVariat()에서 하드코딩된 "1_0_0" 대신 filename과 internalId를 조합한 고유 ID 생성
- 형식: "{filename}_{internalId}_0"으로 변경하여 각 variant마다 고유성 보장
- variationsWithColor 필터 통과를 위해 "_0" 접미사 유지
- ItemDetailReactor에 variant collection actions/mutations/state 추가
  - fetchCollectedVariants, toggleVariantCollection 액션
  - collectedVariantIds 상태 관리
- CatalogCellReactor에 아이템 수집 해제 시 variants 일괄 제거 로직 추가
- Items 싱글턴에 variant 관리 기능 추가
  - collectedVariants BehaviorRelay 추가
  - updateVariant, getCollectedVariants 메서드 추가
  - CoreDataVariantsStorage 초기화 및 로드
- 아이템 체크 해제 시 해당 아이템의 모든 variants 자동 제거
- Variant 체크 시 아이템도 자동 수집 처리
- VariantCell에 체크박스 UI 추가
  - checkButton (checkmark.seal 아이콘)
  - showCheckbox 플래그로 리폼 가능 아이템 필터링
  - checkboxObservable로 체크 이벤트 전달
- ItemVariantsView에 수집 상태 관리 추가
  - collectedVariantIds BehaviorRelay로 reactive 업데이트
  - isReformable 플래그로 체크박스 표시 제어
  - didToggleVariantCollection Observable 추가
- ItemDetailViewController 바인딩 추가
  - viewDidAppear에서 수집 상태 새로고침
  - reactor와 양방향 바인딩 (collectedVariantIds ↔ UI)
  - setUpVariant에서 리폼 가능 여부 전달
- sceneDidEnterBackground에서 background task 시작
- 비동기 CoreData 작업 완료를 위해 2초 대기 후 viewContext 저장
- 앱 강제 종료 시 데이터 손실 방지
@leeari95 leeari95 self-assigned this Feb 1, 2026
@leeari95 leeari95 added the feature New feature or request label Feb 1, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 1, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/variants

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@leeari95 leeari95 linked an issue Feb 1, 2026 that may be closed by this pull request
3 tasks
@leeari95 leeari95 merged commit 297aaf5 into release/3.1.0 Feb 1, 2026
1 check passed
@leeari95 leeari95 deleted the feature/variants branch February 1, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[피드백] 아이템 색상 별로 체크할 수 있는 기능

1 participant