AI Briefing

올리브영은 왜 선물하기를 개편했을까? Part - 2

·2025.08.05 03:00

올리브영은 기존 Spring의 캐시 및 서킷 브레이커 설정의 불편함을 개선하기 위해 커스텀 어노테이션 기반의 캐시 모듈을 개발했다.

올리브영 전시 서비스는 실시간 트래픽 대응을 위해 Redis를 활용한 캐싱과 장애 확산 방지를 위한 Resilience4j의 서킷 브레이커를 사용해 왔다. 하지만 기존 방식은 어노테이션 개별 사용에 따른 불편함, SpEL 사용으로 인한 실수 유발, Redis의 Hash 타입 미지원 등의 한계가 있었다.

이를 해결하기 위해 올리브영은 **AoP(Aspect-Oriented Programming)**를 활용한 별도의 캐시 모듈을 구축했다. 새로운 @DisplayCaching 어노테이션은 다음과 같은 핵심 기능을 제공한다.

  • 동적 캐시 키 생성: 함수의 매개변수를 키 값에 포함하여 유연한 키 관리 가능
  • 다양한 자료구조 지원: Redis의 StringHash 타입 모두 지원
  • TTL 및 버전 관리: 캐시 유효 시간(TTL) 설정과 일자별 버전(Suffix) 관리 기능 포함
  • 유연한 실패 처리: 캐시 조회 실패 시 예외 발생 또는 Fallback 로직 수행 여부를 선택 가능

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.