목록 보기
카트 개발 연대기
백엔드

카트 개발 연대기

마켓컬리
마켓컬리
2021년 8월 4일

두줄요약

주소 기반 상품 노출과 기술부채 해소를 위해 카트를 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 감축 목표

컬리 계열사 채용12건

채용 사이트에서 전체 보기

다음 읽기

#Laravel 주제를 이어서 읽기

카트 개발 연대기

주소지 기반 재고 조회와 주문 연동을 위해 카트를 네 세대에 걸쳐 개선했습니다.\n다중 세션 경합에 따른 데드락을 아이템 공유 구조로 완화했습니다.

마켓컬리
마켓컬리
아키텍처

댓글 0개

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

댓글을 불러오는 중...