
백엔드
검색엔진에 의존하지 않는 Reranking API 개발하기
두줄요약
ES에 의존하던 LTR 구조를 분리해 rerank API와 model API로 재구성했습니다. gRPC, 응답 압축, 2단계 캐싱으로 성능과 운영 리스크를 함께 개선했습니다.
문제 상황
- ES LTR 플러그인 의존으로 인한 모델 선택 유연성 부족
- feature 산출과 ES Query DSL 이해가 서빙 준비에 과도하게 결합
- LTR 작업이 ES 내부에 있어 색인 용량과 검색 부하 리스크 존재
해결 방법
- rerank api와 model api를 분리해 검색과 추론 책임 분산
- query api로 Top K 문서를 조회한 뒤 DB에서 feature를 가져와 실시간 추론
- model api 통신에 gRPC를 적용해 요청 크기와 응답 지연 감소
성능/운영 포인트
- query api 응답 압축으로 네트워크 비용 절감
- Redis와 애플리케이션 캐시의 2단계 캐싱으로 feature 조회 최적화
- LTR과 일반 검색 경계에서 중복·누락 방지를 위한 페이징 처리 필요
