목표
검색 기능이 search-service로 이관된 후, catalog-service의 검색 관련 로직을 정리하고 단순 목록 조회만 남긴다.
의존관계
배경
catalog-service의 GET /api/products는 현재 keyword 검색, 복잡한 정렬(RECOMMENDED, POPULARITY 등), 속성 필터링까지 담당한다. 이를 search-service로 이관 후 catalog-service는 단순 목록 조회(카테고리별, 브랜드별 필터링)만 담당한다.
구현 내용
1. 제거 대상
ProductQuery.kt에서 keyword 검색 관련 로직 제거
containsIgnoreCase 키워드 검색
- RECOMMENDED 정렬의 keyword boosting (CASE 문)
- POPULARITY 가중치 계산
GetProductListCommand에서 keyword 파라미터 제거
SortStrategy에서 RECOMMENDED, POPULARITY 제거 (search-service로 이동)
UserBehaviorEventProducer 호출 제거 (search 행동 추적은 search-service 담당)
2. 유지 대상
- 카테고리별, 브랜드별 필터링 (관리자 목록 조회용)
- 가격 범위 필터링
- LATEST, PRICE_ASC, PRICE_DESC 정렬
- 페이지네이션
3. API 변경
# 기존 (검색 + 목록)
GET /api/products?keyword=스마트폰&sort=RECOMMENDED
# 변경 후 (단순 목록만)
GET /api/products?categoryId=1&brandId=2&sort=LATEST
4. user-behavior 이벤트 이관
- catalog-service에서
user-behavior-events 토픽 발행 로직 제거
- search-service에서 검색 시
user-behavior-events 발행하도록 이관
체크리스트
목표
검색 기능이 search-service로 이관된 후, catalog-service의 검색 관련 로직을 정리하고 단순 목록 조회만 남긴다.
의존관계
배경
catalog-service의
GET /api/products는 현재 keyword 검색, 복잡한 정렬(RECOMMENDED, POPULARITY 등), 속성 필터링까지 담당한다. 이를 search-service로 이관 후 catalog-service는 단순 목록 조회(카테고리별, 브랜드별 필터링)만 담당한다.구현 내용
1. 제거 대상
ProductQuery.kt에서 keyword 검색 관련 로직 제거containsIgnoreCase키워드 검색GetProductListCommand에서keyword파라미터 제거SortStrategy에서RECOMMENDED,POPULARITY제거 (search-service로 이동)UserBehaviorEventProducer호출 제거 (search 행동 추적은 search-service 담당)2. 유지 대상
3. API 변경
4. user-behavior 이벤트 이관
user-behavior-events토픽 발행 로직 제거user-behavior-events발행하도록 이관체크리스트