카카오페이 온라인 결제 서비스 2.5배 성능 개선기
·2023.12.07 19:00
카카오페이가 빼빼로데이 트래픽 급증에 대비해 DB 부하를 줄이고 결제 성능을 2.5배 개선했다.
카카오페이 온라인 결제 서비스는 매년 빼빼로데이와 같은 대형 이벤트 시 평소보다 3~5배 높은 트래픽이 발생한다. 올해는 11번가 결제 추가 등으로 인해 총 300 TPS를 견뎌야 하는 미션이 주어졌으며, 이를 위해 기존 대비 2배 이상의 성능 개선이 필요했다.
성능 저하의 주요 원인은 과도한 **QPS(Query Per Second)**로 인한 DB CPU 사용량 급증과 긴 Transaction 길이였다. 특히 조회 쿼리가 전체의 98%를 차지하며 DB에 큰 부담을 주고 있었다.
이를 해결하기 위해 다음과 같은 개선을 진행했다:
- Redis를 활용한 결제 상태 조회: 결제 상태를 체크하는 Check API가 DB를 직접 조회하는 대신 Redis를 통해 상태를 확인하도록 하여 DB 부하를 줄였다.
- Entity 기준 캐싱: Spring CacheManager를 사용하여 주요 엔티티에 대해 제한적인 캐싱을 적용했다.
다만, 이 과정에서 @Cacheable과 @CachePut 간의 동시성 이슈로 인해 데이터 정합성이 깨지는 문제 등의 기술적 과제가 발생했다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.