Conversation
|
ℹ️ Claude 코드 리뷰 생략: 변경된 파일이 15개로 너무 많습니다. 10개 이하로 분리하는 것을 권장합니다. |
✅ 테스트 결과: 모든 테스트 통과
|
jychoi0831
left a comment
There was a problem hiding this comment.
현재 head commit 0ff7f645 기준으로 확인했습니다.
P1: 기존 registration_source=MANUAL 데이터를 새 enum으로 읽을 수 없습니다
src/main/java/com/closetnangam/be/domain/clothes/entity/WardrobeClothes.java:56에서 기존 wardrobe_clothes.registration_source 컬럼을 ClothesInfoSource enum으로 다시 매핑했습니다. 그런데 새 enum은 PHOTO, PURCHASE_HISTORY, EXTERNAL_SHOPPING만 가지고 있고, 기존 코드가 직접 등록/위시리스트 등록 시 저장하던 MANUAL 값은 더 이상 존재하지 않습니다. 현재 src/main/resources/db/migration.sql:40의 wardrobe_clothes.registration_source 보정 쿼리도 주석 처리되어 있어 실제로 실행되지 않습니다.
영향:
기존 DB에 registration_source = 'MANUAL' row가 하나라도 있으면 WardrobeClothes를 로딩하는 순간 Hibernate가 No enum constant ... ClothesInfoSource.MANUAL 형태로 실패할 수 있습니다. 옷장 목록 조회, 상세 조회, 즐겨찾기/수정/삭제처럼 WardrobeClothesRepository를 거치는 기존 사용자 데이터 플로우가 배포 직후 깨질 수 있습니다. 테스트가 통과한 것은 create-drop 기반 신규 스키마라 레거시 enum 값이 없어서 이 문제를 재현하지 못한 것으로 보입니다.
해결 방향:
배포 전에 실행되는 마이그레이션에서 wardrobe_clothes.registration_source의 기존 값들을 새 enum 값으로 실제 업데이트해야 합니다. 예를 들어 기존 MANUAL 중 보유 옷은 PURCHASE_HISTORY, 외부 위시리스트는 EXTERNAL_SHOPPING, 사진 기반은 PHOTO처럼 clothes.source_type, clothes.external_source, 기존 registration_source를 기준으로 명시적으로 백필한 뒤 애플리케이션을 올려야 합니다. 현재처럼 보정 SQL이 주석으로만 남아 있으면 안전하게 병합하기 어렵습니다.
검증:
git diff --check origin/develop..origin/feat/#43: 통과./gradlew compileJava --offline: 성공./gradlew test --offline: 성공
본 리뷰는 Codex를 사용해 작성했습니다.
|
ℹ️ Claude 코드 리뷰 생략: 변경된 파일이 15개로 너무 많습니다. 10개 이하로 분리하는 것을 권장합니다. |
✅ 테스트 결과: 모든 테스트 통과
|
jychoi0831
left a comment
There was a problem hiding this comment.
현재 head commit f0af2768 기준으로 확인했습니다.
추가 merge-blocking finding은 발견하지 못했습니다.
검증:
git diff --check origin/develop..origin/feat/#43: 통과./gradlew compileJava --offline: 성공./gradlew test --offline: 성공
잔여 리스크 또는 테스트 보강 권장:
registration_sourceenum 전환은 기존 DB 데이터와 직접 맞물립니다. 이번 head에서db/migration-info-source-enum.sql이 추가되어 이전 blocker는 해소된 것으로 보지만, 현재 프로젝트 설정상 Flyway/Liquibase 자동 실행은 보이지 않으므로 앱 배포 전에 해당 스크립트를 실제 운영 DB에 먼저 적용하는 절차가 반드시 필요합니다.- 테스트는 신규 H2 스키마 기준이라 레거시
registration_source = 'MANUAL'데이터 로딩까지 검증하지는 못합니다. 가능하면 마이그레이션 전/후 샘플 데이터로WardrobeClothes조회가 정상 동작하는 회귀 테스트를 보강하는 것을 권장합니다.
본 리뷰는 Codex를 사용해 작성했습니다.
📌 관련 이슈
Closes #43
🛠️ 작업 내용
✅ 변경 사항
🔍 테스트 내용
📷 스크린샷 (선택사항)
💬 리뷰어에게
📋 PR 체크리스트
develop브랜치를 base로 설정했나요?