PLP 최저가 계산 최적화: 정말 모든 객실을 계산해야 할까?
백엔드
PLP 최저가 계산 최적화: 정말 모든 객실을 계산해야 할까?
두줄요약
PLP 최저가 계산에서 모든 객실을 끝까지 계산하던 방식을 가지치기로 줄인 사례를 소개했습니다. 계산량은 크게 줄었지만 실제 성능 개선은 DB 조회 비용 때문에 제한적이었습니다.
문제 상황
- PLP에서 날짜·박수 조합별 최저가 객실 1개만 필요하지만, 모든 객실의 할인 적용과 정렬을 매번 수행하는 비효율
- 요청 조합이 늘수록 계산량이 기하급수적으로 증가하는 구조
원인 분석
- 최저가 후보를 찾는 목적과 달리, 최종적으로 대부분의 계산 결과가 버려지는 흐름
- 단순 판매원가 배수 기준으로는 큰 할인 정책이 있는 객실을 놓치는 정확도 문제
해결 방법
- 최저 판매원가에 최대 특가·쿠폰·더하기쿠폰 할인을 더한 상한선으로 가지치기 기준 설계
- 계산 전에 날짜별로 그룹핑한 뒤, 상한선 초과 객실을 필터링해 후보 수 축소
성능/운영 포인트
- 필터링으로 계산량은 약 70% 감소
- 실제 응답시간 개선은 12~15% 수준으로, DB 조회 비용이 주요 병목으로 확인
