HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🏄‍♂️
[팀8] 어푸(Ah puh) - Surf
/
🧐
참고
/KREAM/
상품관리의 사본

상품관리의 사본

상품 등록


상품 등록 API
  • POST /products
S3 기본 설정
 

상품 수정


상품 수정 API
  • PUT /products/{id}
상품 사이즈 옵셥 수정(추가) 로직 구현
  • 상품의 해당 사이즈 옵션이 있으면 저장하지 않고 없을 경우에만 추가로 저장
상품 이미지 수정 API
 

상품 삭제


상품 삭제 API
  • DELETE /products/{id}
isDeleted 플래그를 이용한 소프트 삭제 구현
 

상품 필터링/정렬/검색 조회


  • GET /products/search
동적 쿼리를 이용해서 아래의 조건들에 대하여 다 적용되도록!!
 
필터링
  • 브랜드
  • 스니커즈 사이즈
  • 가격(후순위)
정렬
  • 인기순(기본)
  • 즉시 구매가순
  • 즉시 판매가순
  • 발매일순
 
검색
  • 브랜드명, 모델명, 모델번호 검색
 

모든 상품 조회


모든 상품 조회 API
  • GET /products
  • GET /admin/products
각 상품의 즉시 구매가, 즉시 판매가를 가져오는 로직 구현(고민)
  • 즉시 구매가 : 판매 입찰에 등록된 판매 희망가 중 최저값
  • 즉시 판매가 : 구매 입찰에 등록된 구매 희망가 중 최고값

  • 반환 값이 0 이라면 "해당 상품의 모든 사이즈 옵션에 아직 입찰(구매 or 판매)이 등록되지 않았다" 라는 것을 의미
 

특정 상품 상세 조회


특정 상품 상세 정보 조회 API
  • GET /products/{id}
  • 기본정보(브랜드, 영어이름, 한글이름, 모델번호, 출시일, 컬러, 발매가, 이미지)
  • 모든 사이즈 옵션(각 사이즈의 즉시 구매가 포함)
    • 즉시 구매가 : 판매 희망가 중 최저
선택한 사이즈에 따른 상세 정보 조회 API
  • GET /products/{id}/details?size={size}
    • 최근 거래가 : 해당 상품의 최근 거래가(거래일 정렬 후 나온 첫번째 값)
    • 체결거래 : 정보(사이즈, 거래가, 거래일) - 거래일 최신 정렬
    • 판매입찰 : 정보(사이즈, 판매희망가, 수량) - 희망가 정렬(오름차순)
    • 구매입찰 : 정보(사이즈, 구매희망가, 수량) - 희망가 정렬(내림차순)
  • 만약 사이즈가 선택된다면 해당 사이즈의 내역만 조회
  • 모든사이즈와 특정사이즈에 따른 조회 기능을 구현하다보니 사이즈가 추가되는 것만 같고 중복된 쿼리 메서드인 것 같다. 동적 쿼리로 해결할 수 있을까....?
    • findFirstByProductOrderByCreatedDateDesc()
    • findFirstByProductAndSizeOrderByCreatedDateDesc()
 
🗣
사이즈(옵션)를 별도의 테이블로 분리하여 아이디와 같은 식별자 값으로 관리하는 것이 더 나은 방법이라고 생각하지만, 현재 이 상태(2주 프로젝트)에서는 더 복잡한 ERD를 만들지 않기 위해 분리하지 않았습니다:)