목록 보기
올영세일 선착순 쿠폰, 미발급 0%를 향한 여정
백엔드

올영세일 선착순 쿠폰, 미발급 0%를 향한 여정

올리브영
올리브영
2025년 12월 15일

두줄요약

올영세일 선착순 쿠폰의 미발급 문제를 Redis와 MQ 비동기 구조에서 분석하고 개선했습니다. 이중 카운터 전략으로 정합성을 100% 확보하면서 성능 저하를 최소화했습니다.

문제 상황

  • 올영세일 선착순 쿠폰 발급에서 1차 검증 후 MQ 기반 비동기 처리 과정 중 미발급 발생
  • 사용자에게는 성공 응답이 갔지만 워커에서 실패해 CS 문의와 신뢰도 저하로 이어짐

원인 분석

  • 1차 검증과 워커 재검증 사이의 시간 간극으로 인한 경합 상태
  • Redis GET과 INCR 분리 호출로 인한 원자성 부재
  • 이중 검증 구조 자체가 앞단 검증의 실효성을 약화

해결 방법

  • 발급 수량 선차감으로 시간 간극 축소 시도
  • Redis Lua 스크립트로 원자성 확보 검토 후 성능 저하로 기각
  • 요청 수량용 별도 Redis 키를 둔 이중 카운터 전략 채택

성능/운영 포인트

  • Lua 스크립트 적용 시 미발급과 과발급은 0건이었지만 처리량 약 21% 저하
  • 이중 카운터 적용 후 정확성 100%와 성능 저하 약 8% 수준으로 균형 확보
  • 키 네이밍, TTL, 정합성 모니터링, Redis 자원 추적, 장애 시 Fallback 필요

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...