올리브영, SDUI 성능 개선 비결: 로컬 캐시 도입!
by DD
6개월 전
조회수 6
SDUI 도입 후 API 응답 속도 저하 및 네트워크 트래픽 증가 문제 발생
Caffeine(로컬 캐시), Redis(원격 캐시), Oracle DB를 활용한 이중 캐시 시스템 구축
P90 응답 시간 1ms 미만 및 초당 6.3만 건의 요청 처리, 서비스 안정성 확보
이중 캐시 아키텍처: Caffeine과 Redis의 조화
올리브영은 Caffeine을 1차 로컬 캐시로, Redis를 2차 원격 캐시로 활용하여 성능을 개선했다. 구체적으로 Caffeine은 빠른 응답 속도를, Redis는 데이터 일관성과 DB 부하 감소를 담당한다. 따라서 API 응답 시간 단축과 확장성 확보라는 두 가지 목표를 동시에 달성했다.
캐시 무효화 전략: 실시간성과 안정성의 균형
SDUI의 실시간 UI 변경 요구사항을 충족하기 위해, 올리브영은 백오피스 연동을 통한 즉시 무효화와 주기적 배치 작업을 병행했다. 백오피스에서 데이터 변경 시 Redis 캐시를 즉시 삭제하고, 배치 작업을 통해 캐시 누락을 방지했다. 결과적으로 데이터 정확성과 서비스 안정성을 모두 확보했다.
코드 레벨 최적화: Cacheable 어노테이션 활용
Spring Boot 기반의 SDUI Backend API는 @Cacheable 어노테이션을 활용하여 캐시 로직을 간결하게 구현했다. IntegratedSduiService에서 Caffeine 캐시를, TabbarService에서 Redis 캐시를 사용한다. 따라서 코드 가독성을 높이고, 캐시 계층 분리를 통해 유지보수성을 향상시켰다.