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

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

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

두줄요약

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

문제 상황

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

원인 분석

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

해결 방법

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

성능/운영 포인트

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

올리브영 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#transaction 주제를 이어서 읽기

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

비동기 결제 결과 수신 실패로 발생한 결제 미매칭을 동기식 인증·승인 분리 구조로 개선했습니다. 단계별 Datadog 모니터링을 강화해 대규모 트래픽에서도 미매칭 0건을 기록했습니다.

올리브영
올리브영
백엔드
전체 보기

댓글 0개

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

댓글을 불러오는 중...