Skip to content

상품 추천 기능 (PRD-006) #19

@joungGo

Description

@joungGo
기능 ID PRD-006
기능명 상품 추천 기능 (베스트셀러 / 관심 기반 / 협업 필터링)
목적 사용자에게 더 나은 쇼핑 경험을 제공하기 위해 다양한 방식으로 상품을 추천하고, 개인화 추천을 통해 전환율과 만족도를 향상
관련 메뉴 메인 페이지, 상품 상세 페이지, 추천 탭 (/, /products/{id})
입력값 - 사용자 식별 정보 (로그인 사용자)
- 최근 본 상품 목록 (세션/Redis 기반)
- 주문 내역 (베스트셀러 및 협업 필터링 분석용)
- 관심 카테고리 또는 평점
처리 로직 [1] 베스트셀러 기반 추천
• 주문 수량을 기준으로 인기 상품을 DB에서 정렬하여 상위 N개를 조회
• MySQL 쿼리 예시: SELECT product_id, COUNT(*) AS cnt FROM order_item GROUP BY product_id ORDER BY cnt DESC LIMIT 10;
• Redis 등에 주기적으로 캐시하여 부하 감소

[2] 관심 기반 추천 (최근 본 상품/관심 카테고리)
• Redis Sorted Set 또는 List에 사용자별 최근 본 상품 ID 저장
• 해당 상품의 카테고리 기준으로 유사 상품 목록 조회
• 유사 상품의 평점/판매량 등 가중치를 고려하여 추천

[3] 협업 필터링 기반 추천
• 사용자-상품 평점/구매 데이터를 기반으로 유사도 분석
• Python + Scikit-learn 또는 AWS Personalize 등 ML 서비스 사용
• 유사한 사용자들이 선호한 상품을 추천
• 실시간 처리 또는 정기 배치 기반 추천값 생성
출력값 추천 상품 리스트 (상품명, 이미지, 가격 등 포함된 JSON 또는 컴포넌트 렌더링용 객체)
비고 - 추천 방식은 사용자 상태(비로그인/로그인)에 따라 유동적으로 선택
- 콜드스타트 대응 위해 비로그인 사용자는 베스트셀러 기반 우선 제공
- 향후 추천 로직 개선 시 API 형태로 추상화해 교체 가능

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions