
카트 개발 연대기
두줄요약
주소 기반 상품 노출과 기술부채 해소를 위해 카트를 4세대에 걸쳐 개선했습니다. 다중 세션 경합의 데드락은 아이템 공유형 Multi Cart로 완화했습니다.
문제 상황
- 주소 기반 물류센터·재고·전시·할인 정보 반영과 구매 가능 여부 확인 필요
- 레거시 상품 구조와 기술부채, 피크 트래픽의 카트 데드락·응답 지연
구조와 흐름
- Legacy Cart의 Controller 분해, Manager Pattern·Cart Response·Eager Loading 기반 정비
- Stack Cart의 Dual Write 시도 후 Modern Cart 전환, 주문서 진입 전 구 카트 부분 마이그레이션
- Multi Cart에서 세션별 카트와 카트 아이템 공유 구조 도입
원인 분석
- 동일 계정의 다중 세션이 최신 카트 하나를 남기는 cleansing 과정에서 동일 행 경합
- 기존 로직과 신규 로직의 동시 쓰기로 데드락과 성능 저하 증폭
해결 방법
- 카트 cleansing 제거와 n개 세션 유지로 카트 간 아이템 강제 이전 방식 제거
- 상품 단위 수량 합산·삭제·주문 처리와 100원딜 검증 쿼리 리팩토링
- 카트 아이템 수 캐시 레이어 추가 및 향후 불필요한 DML 감축 목표
