올리브영은 왜 선물하기를 개편했을까? Part - 2
·2025.08.05 03:00
핵심 내용
올리브영은 기존 Spring의 캐시 및 서킷 브레이커 설정의 불편함을 개선하기 위해 커스텀 어노테이션 기반의 캐시 모듈을 개발했다.
1 / 2
자세히 보기
올리브영 전시 서비스는 실시간 트래픽 대응을 위해 Redis를 활용한 캐싱과 장애 확산 방지를 위한 Resilience4j의 서킷 브레이커를 사용해 왔다. 하지만 기존 방식은 어노테이션 개별 사용에 따른 불편함, SpEL 사용으로 인한 실수 유발, Redis의 Hash 타입 미지원 등의 한계가 있었다.
이를 해결하기 위해 올리브영은 **AoP(Aspect-Oriented Programming)**를 활용한 별도의 캐시 모듈을 구축했다. 새로운 @DisplayCaching 어노테이션은 다음과 같은 핵심 기능을 제공한다.
- 동적 캐시 키 생성: 함수의 매개변수를 키 값에 포함하여 유연한 키 관리 가능
- 다양한 자료구조 지원: Redis의 String 및 Hash 타입 모두 지원
- TTL 및 버전 관리: 캐시 유효 시간(TTL) 설정과 일자별 버전(Suffix) 관리 기능 포함
- 유연한 실패 처리: 캐시 조회 실패 시 예외 발생 또는 Fallback 로직 수행 여부를 선택 가능
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.