
올리브영 쿠폰 발급 개선 이야기
두줄요약
쿠폰 발급 수량 조회의 DB 경합을 줄이기 위해 Redis를 1차 조회로 도입했습니다. 6월 세일 트래픽 부하를 완화하고 운영 안정성을 높이는 방향으로 개선했습니다.
문제 상황
- 쿠폰 발급 피크 시간대에 발급 수량 조건 체크가 DB 경합을 유발하는 구조
- 6월 세일처럼 00시와 12시에 트래픽이 몰리며 DB 부하가 커지는 상황
해결 방법
- 발급 수량 조회를 DB 우선에서 Redis 1차 조회, 실패 시 DB 조회로 변경
- Redis의 자료 구조 활용과 빠른 메모리 조회를 통해 발급 처리 병목 완화
주의할 점
- Redis는 Collection 단위 expire, 메모리 파편화, write 시 메모리 사용 증가에 주의 필요
- 싱글 스레드 특성상 오래 걸리는 명령어와 대용량 조회 사용 시 성능 저하 가능성 존재
적용해볼 점
- 전시/발급 기간 외에는 수량 데이터를 DB로 대체하고 Redis 보관 범위 최소화
- 운영 안정성 확보를 위해 Datadog 기반 모니터링도 함께 고려



