핵심 요약
여기어때가 표준 상품 API를 직접 수정하지 않고, Kotlin Coroutine Async 기반의 동적 윈도우 분할과 병렬 호출로 지도보기 API의 응답 시간을 8~10초에서 약 2초로 대폭 단축했습니다. 처리량은 TPS 30에서 약 215로 상승했습니다.
구현 방법
- 검색 API 호출로 100개 제휴점 목록을 확보
- 제휴점 수에 따라 1~3개의 윈도우로 동적 분할
- 각 윈도우에서 builderParamMapper.toBuilderApiParam(param, window)로 파라미터 구성 후 표준 상품 API 호출
- Dispatchers.IO에서 async로 병렬 실행 후 awaitAll로 데이터 합치기
주요 결과
- 응답 시간 8~10초에서 약 2초로 단축
- TPS 30 → 215로 증가, 동시 처리 약 7배 향상
- 외부 API의 내부 로직 수정 없이 호출 구조 재설계로 성능 문제 해결
