You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
사용자에게 더 나은 쇼핑 경험을 제공하기 위해 다양한 방식으로 상품을 추천하고, 개인화 추천을 통해 전환율과 만족도를 향상
관련 메뉴
메인 페이지, 상품 상세 페이지, 추천 탭 (/, /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 형태로 추상화해 교체 가능
- 최근 본 상품 목록 (세션/Redis 기반)
- 주문 내역 (베스트셀러 및 협업 필터링 분석용)
- 관심 카테고리 또는 평점
• 주문 수량을 기준으로 인기 상품을 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 서비스 사용
• 유사한 사용자들이 선호한 상품을 추천
• 실시간 처리 또는 정기 배치 기반 추천값 생성
- 콜드스타트 대응 위해 비로그인 사용자는 베스트셀러 기반 우선 제공
- 향후 추천 로직 개선 시 API 형태로 추상화해 교체 가능