목록 보기
올리브영 결제 이야기 Part - 3
백엔드

올리브영 결제 이야기 Part - 3

올리브영
올리브영
2022년 12월 13일

두줄요약

주문 완료 과정의 단일 트랜잭션 구조로 인해 동시 구매 시 DB Lock과 Dead Lock이 발생했습니다. 트랜잭션을 개별 분리한 뒤 부하 테스트와 운영 모니터링으로 성능 개선을 검증했습니다.

문제 상황

  • 주문 완료 과정에서 재고 확인, 결제, 차감, 배송 처리 등 여러 로직이 하나의 트랜잭션으로 묶인 구조
  • 동시 구매 트래픽이 높아질수록 DB Lock과 Dead Lock이 증가하며 처리 지연과 오류 발생

원인 분석

  • 여러 상품과 처리 단계가 한 번에 커밋되는 구조로 인해 자원 선점 충돌 발생
  • 선점된 데이터에 다른 트랜잭션이 접근하면서 교착상태가 중첩적으로 누적

해결 방법

  • 주문 처리 단위를 개별 트랜잭션으로 분리해 상품 선점 순서와 무관하게 즉시 커밋 가능하도록 변경
  • 1+1상품, 증정품, 예약상품, 프로모션 상품 등 다양한 케이스와 롤백 흐름을 함께 반영

성능/운영 포인트

  • Jmeter 부하 테스트로 기존 프로세스의 오류, Lock 누적, Dead Lock 재현 및 개선 검증
  • 실제 운영 이벤트 트래픽에서도 안정적 주문 처리와 성능 향상 확인

댓글 0

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

댓글을 불러오는 중...