Skip to content

Feat/#76#79

Merged
taeaeuu merged 5 commits into
developfrom
feat/#76
Jun 18, 2026
Merged

Feat/#76#79
taeaeuu merged 5 commits into
developfrom
feat/#76

Conversation

@taeaeuu

@taeaeuu taeaeuu commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

📌 관련 이슈

관련된 이슈 번호를 작성해 주세요.

Closes #76


🛠️ 작업 내용

구현한 내용을 간략히 설명해 주세요.

유사 상품 추천 및 AI MD 추천 상품 화면의 최신 API 명세 반영과 추천 상품 상세 UI를 개선했습니다.

  • develop 브랜치 최신 변경 사항을 현재 브랜치에 반영했습니다.
  • 네이버쇼핑 추천 상품은 저장 전 피드백을 보낼 수 없으므로 싫어요 버튼이 노출되지 않도록 수정했습니다.
  • 네이버쇼핑 추천 상품은 백엔드 명세상 DB 태그가 없으므로 상세 화면에서 스타일/컬러 정보를 표시하지 않도록 수정했습니다.
  • 유사 상품 기준 옷 목록 조회 API를 최신 명세에 맞게 정리했습니다.
  • 미보유 옷 보유 전환 API 경로를 공식 /api/v1 경로로 변경했습니다.

✅ 변경 사항

  • 네이버쇼핑 추천 상품 상세에서 이런 추천 싫어요 버튼 미노출 처리
  • 네이버쇼핑 추천 상품 상세에서 스타일/컬러 행 미노출 처리
  • 유사 상품 기준 옷 목록 조회를 GET /api/v1/users/{userId}/clothes 기준으로 수정
  • 미보유 옷 보유 전환 API를 /api/v1/clothes/{clothesId}/convert-to-owned로 변경
  • AI MD/유사 상품 추천 API 명세와 현재 FE 연동 코드 대조 및 불일치 수정

🔍 테스트 내용

테스트한 방법과 결과를 작성해 주세요.

  • npm run build 실행
  • TypeScript 빌드 및 Vite production build 통과 확인
  • Vite chunk size warning만 발생하며 빌드 실패 없음

📷 스크린샷 (선택사항)

UI 변경이 있는 경우 첨부해 주세요.

UI 동작 조건 변경 사항으로 별도 스크린샷은 첨부하지 않았습니다.

💬 리뷰어에게

리뷰 시 특별히 봐줬으면 하는 부분이 있다면 작성해 주세요.

네이버쇼핑 추천 상품은 candidateSource === "NAVER"인 경우 clothesId가 없을 수 있고, primaryColor / primaryStyle도 신뢰할 수 없는 값이므로 상세에서 스타일/컬러 및 피드백 버튼을 숨기도록 처리했습니다.

내부 후보(candidateSource === "INTERNAL")는 기존처럼 스타일/컬러 및 피드백 액션을 사용할 수 있습니다.


📋 PR 체크리스트

  • develop 브랜치를 base로 설정했나요?
  • 코드 컨벤션을 준수했나요?
  • 불필요한 주석 / 디버그 코드를 제거했나요?
  • 관련 이슈 번호를 연결했나요?

@jychoi0831 jychoi0831 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

현재 head commit c1b32bf 기준으로 확인했습니다.

Findings

  1. [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.mdfrontend-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 jychoi0831 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

현재 head commit 63ef94b 기준으로 재검토했습니다. 이전 리뷰 대상 c1b32bf 이후 수정 커밋이 올라온 상태입니다.

Findings

  1. [P2] 내부 추천 후보 저장용 연결 API가 FE 공식 API 사용 기준에 빠져 있습니다.
    • 근거: 코드에서는 connectWishlistClothesPOST /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.mdPOST /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 jychoi0831 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

현재 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를 사용해 작성했습니다.

@taeaeuu taeaeuu merged commit 76df86e into develop Jun 18, 2026
1 check passed
@taeaeuu taeaeuu deleted the feat/#76 branch June 18, 2026 07:11
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.

feat/ 유사상품, AI MD 추천 통일

2 participants