피드로 돌아가기
올리브영 테크블로그Backend
원문 읽기
잃어버린 클레임 데이터를 찾아서
올리브영 CX스쿼드가 클레임 데이터를 주문 테이블과 분리하고 클레임번호 기반 PK를 도입해 교환/반품 처리 리드타임 10일 이상 단축 및 동시 클레임 처리 가능
AI 요약
Context
기존 올리브영은 교환/반품(클레임) 데이터를 주문 테이블에 Insert/Update로 저장했으므로, 한 주문의 5개 상품 중 3개를 여러 번에 걸쳐 교환/반품할 때 주문 생성 시점과 클레임 데이터 등록 시점을 함께 확인해야 했다. 결과적으로 각 상품의 클레임 상태 파악이 어려워 교환/반품 접수를 동시에 처리할 수 없었고, 총 클레임 리드타임이 10일을 초과했다. 추가로 쿠폰·적립금 등 부가비용 정보가 명확하지 않아 환불 처리 오류가 발생했다.
Technical Solution
- 클레임 발생 시점 기준으로 클레임번호(PK)를 신규 생성해 접수·취소·완료 상태를 한눈에 확인 가능한 독립 클레임 테이블 설계
- 주문 테이블의 각 상품에 클레임번호 컬럼 추가해 해당 상품의 클레임 처리 여부를 명확히 표기
- 쿠폰·적립금 테이블에 클레임번호를 연결해 클레임 종결 시 환불 대상 비용과의 인과관계 정확히 추적
- 클레임 발생 시점, 진행사항, 완료 시점을 일원화된 데이터 구조로 관리해 조회 로직 단순화
Impact
교환/반품 시 발생한 배송비와 환불되어야 할 쿠폰·적립금 금액의 인과관계가 명확해졌으며, 동시 클레임 처리 프로세스 정립이 가능해졌다.
Key Takeaway
복합 업무 프로세스(주문-클레임-환불)가 얽혀 있을 때는 각 프로세스를 독립된 엔티티로 분리하고 명시적인 식별자(PK)와 상호 참조(FK)로 연결하면, 데이터 조회 복잡도를 낮추고 동시 처리를 가능하게 한다.
실천 포인트
주문-배송-반품-환불 등 다단계 상태 관리가 필요한 커머스 서비스에서는 각 단계를 별도 테이블로 모델링하고 고유번호(주문번호, 클레임번호, 반품번호)로 연결하면, 특정 상품의 전체 라이프사이클을 단일 쿼리로 추적할 수 있고 병렬 처리 가능한 구조를 확보할 수 있다.