Conversation
jychoi0831
reviewed
Jun 18, 2026
jychoi0831
left a comment
Collaborator
There was a problem hiding this comment.
현재 head commit c1b32bf 기준으로 확인했습니다.
Findings
- [P2]
/api/v1보유 전환 경로로 고친 뒤 관련 FE 기준 문서와 gap 문서가 여전히 legacy 경로를 안내합니다.- 근거: 코드에서는
convertWishlistToOwned가 공식 경로인/api/v1/clothes/${clothesId}/convert-to-owned를 호출합니다(src/api/wardrobe.ts:181-187). BE 원본 계약도/api/v1/clothes/{clothesId}/convert-to-owned를 공식 경로로 두고 legacy/api/clothes/{clothesId}/convert-to-owned는 호환용이라고 명시합니다. 그런데 FE 문서의 상세 흐름은 여전히PATCH /api/clothes/{clothesId}/convert-to-owned로 남아 있습니다(docs/features/home-recommendation.md:105-108,docs/api/frontend-api-usage.md:285). 구현 gap 문서도 같은 legacy 흐름을 현재 gap처럼 남겨두고 있습니다(docs/frontend/implementation-gaps.md:70-76). - 영향: 이번 PR의 핵심 변경 중 하나가 “미보유 옷 보유 전환 API 경로를 공식
/api/v1경로로 변경”인데, 공식 FE 문서와 gap 문서가 갱신되지 않으면 이후 추천 상세/보유 전환 작업에서 legacy 경로를 다시 기준으로 삼을 수 있습니다. 자동화 절차상 API 사용 방식이나 gap 해소가 코드 변경으로 달라지면 관련 문서도 같은 PR에서 수정해야 합니다. - 제안:
home-recommendation.md와frontend-api-usage.md의 상세 흐름을/api/v1/clothes/{clothesId}/convert-to-owned로 맞추고,implementation-gaps.md의 해당 흐름은 해소된 path 내용은 삭제하거나 아직 남은 피드백 기록 범위 gap만 남기도록 좁혀 주세요.
- 근거: 코드에서는
검증
- PASS
git diff --check 9ed30d096c1813a736a5ff4b256f238e2542bfea c1b32bf5298a59c5afd17c665dd88caa090a23a8 -- - PASS
git merge-tree --write-tree 9ed30d096c1813a736a5ff4b256f238e2542bfea c1b32bf5298a59c5afd17c665dd88caa090a23a8 - PASS
npm ci --offline - PASS
npm run lint(0 errors, 20 warnings) - PASS
npm run build(Vite chunk size warning만 있음) - PASS GitHub CI
Lint & Build
Sync 확인
- 대상 레포: BE
- Sync 이슈 기록: 불필요
- 사유: BE 원본 계약은 이미
/api/v1공식 경로와candidateSource저장/피드백 분기를 포함하고 있으며, 이번 finding은 FE 문서/gap 갱신 누락입니다.
본 리뷰는 Codex를 사용해 작성했습니다.
jychoi0831
reviewed
Jun 18, 2026
jychoi0831
left a comment
Collaborator
There was a problem hiding this comment.
현재 head commit 63ef94b 기준으로 재검토했습니다. 이전 리뷰 대상 c1b32bf 이후 수정 커밋이 올라온 상태입니다.
Findings
- [P2] 내부 추천 후보 저장용 연결 API가 FE 공식 API 사용 기준에 빠져 있습니다.
- 근거: 코드에서는
connectWishlistClothes가POST /api/users/{userId}/wishlist-clothes/{clothesId}를 호출합니다(src/api/wardrobe.ts:207-216). 유사 상품과 AI MD 상품 저장도candidateSource === 'INTERNAL'이고clothesId가 있으면 신규 생성이 아니라 이 연결 API를 사용합니다(src/components/SimilarProductRecommendations.tsx:471-475,src/components/AiMdRecommendations.tsx:536-540). 그런데 FE 공식 API 사용표에는 미보유 옷 저장 API가POST /api/users/{userId}/wishlist-clothes만 남아 있고, 이번 PR에서 실제로 쓰는POST /api/users/{userId}/wishlist-clothes/{clothesId}가 없습니다(docs/api/frontend-api-usage.md:182-185).home-recommendation.md의 유사 상품/AI MD 저장 기준도candidateSource=INTERNAL은 기존 공용 옷을 연결하고NAVER만 신규 생성한다는 분기를 설명하지 않습니다(docs/features/home-recommendation.md:70-84,docs/features/home-recommendation.md:118-128). - 영향: 이번 PR의 핵심 변경은 내부 후보를 새 옷으로 생성하지 않고 기존
EXTERNAL_SHOPPING공용CLOTHES에 연결하는 것인데, FE 기준 문서가 여전히 단일 신규 저장 흐름처럼 읽힙니다. 이후 추천 저장/피드백 작업에서 공식 FE 문서를 기준으로 보면 내부 후보도POST /wishlist-clothes신규 생성 대상으로 되돌릴 수 있어 중복 옷 생성이나 저장 상태 불일치가 재발할 수 있습니다. - 제안:
frontend-api-usage.md에POST /api/users/{userId}/wishlist-clothes/{clothesId}행을 추가하고,home-recommendation.md의 유사 상품/AI MD 저장 기준에candidateSource=INTERNAL은 연결 API,candidateSource=NAVER는 신규 생성 플로우를 사용한다는 분기를 명시해 주세요.
- 근거: 코드에서는
검증
- PASS
git diff --check 9ed30d096c1813a736a5ff4b256f238e2542bfea 63ef94b114c2bce9e3f86d15bb8aa98850614d77 -- - PASS
git merge-tree --write-tree 9ed30d096c1813a736a5ff4b256f238e2542bfea 63ef94b114c2bce9e3f86d15bb8aa98850614d77 - PASS
npm ci --offline - PASS
npm run lint(0 errors, 20 warnings) - PASS
npm run build(Vite chunk size warning만 있음) - PASS GitHub CI
Lint & Build
Sync 확인
- 대상 레포: BE
- Sync 이슈 기록: 불필요
- 사유: BE 원본 계약은 이미
POST /api/users/{userId}/wishlist-clothes/{clothesId}와candidateSource별 저장/피드백 분기를 포함하고 있으며, 이번 finding은 FE 공식 문서 갱신 누락입니다.
본 리뷰는 Codex를 사용해 작성했습니다.
jychoi0831
approved these changes
Jun 18, 2026
jychoi0831
left a comment
Collaborator
There was a problem hiding this comment.
현재 head commit b39251b 기준으로 재검토했습니다. 이전 리뷰 대상 63ef94b 이후 변경은 FE 문서 보강이며, 이전에 지적한 내부 추천 후보 연결 API와 candidateSource별 저장 분기 문서 누락이 반영되었습니다.
Findings
- 없음.
검증
- PASS
git diff --check 9ed30d096c1813a736a5ff4b256f238e2542bfea b39251b3746392f1e713c6ad20dfabb9161f3a31 -- - PASS
git merge-tree --write-tree 9ed30d096c1813a736a5ff4b256f238e2542bfea b39251b3746392f1e713c6ad20dfabb9161f3a31 - PASS
npm ci --offline - PASS
npm run lint(0 errors, 20 warnings) - PASS
npm run build(Vite chunk size warning만 있음) - PASS GitHub CI
Lint & Build
Sync 확인
- 대상 레포: BE
- Sync 이슈 기록: 불필요
- 사유: BE 원본 계약은 이미
POST /api/users/{userId}/wishlist-clothes/{clothesId},/api/v1보유 전환 경로,candidateSource별 저장/피드백 분기를 포함하고 있으며, 이번 PR은 FE 코드와 FE 공식 문서 반영 범위입니다.
본 리뷰는 Codex를 사용해 작성했습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 관련 이슈
Closes #76
🛠️ 작업 내용
유사 상품 추천 및 AI MD 추천 상품 화면의 최신 API 명세 반영과 추천 상품 상세 UI를 개선했습니다.
develop브랜치 최신 변경 사항을 현재 브랜치에 반영했습니다./api/v1경로로 변경했습니다.✅ 변경 사항
이런 추천 싫어요버튼 미노출 처리GET /api/v1/users/{userId}/clothes기준으로 수정/api/v1/clothes/{clothesId}/convert-to-owned로 변경🔍 테스트 내용
npm run build실행📷 스크린샷 (선택사항)
UI 동작 조건 변경 사항으로 별도 스크린샷은 첨부하지 않았습니다.
💬 리뷰어에게
네이버쇼핑 추천 상품은
candidateSource === "NAVER"인 경우clothesId가 없을 수 있고,primaryColor/primaryStyle도 신뢰할 수 없는 값이므로 상세에서 스타일/컬러 및 피드백 버튼을 숨기도록 처리했습니다.내부 후보(
candidateSource === "INTERNAL")는 기존처럼 스타일/컬러 및 피드백 액션을 사용할 수 있습니다.📋 PR 체크리스트
develop브랜치를 base로 설정했나요?