본문으로 이동
카트 개발 연대기
문서

카트 개발 연대기

김진실 컬리 · 컬리 기술 블로그

원문 보기

AI 핵심 요약

컬리 카트는 주소지에 따른 물류센터별 상품·재고 조회와 레거시 구조 개선을 위해 Laravel 기반으로 여러 차례 재설계됐다. 1세대에서는 Controller를 Service와 Interface로 나누고 Eager Loading 및 Cart Response 객체를 도입했지만, 레거시와 신규 테이블에 동시에 쓰는 Stack Cart는 기존 데드락과 성능 문제를 악화시켰다. 이후 Modern Cart는 선형 데이터 구조와 주문서 호환을 위해 주문서 진입 전 부분 마이그레이션을 적용했고, Multi Cart에서는 세션별 카트를 강제로 합치는 대신 카트 아이템을 공유해 경합을 줄였다. 카트의 진화는 데이터 구조뿐 아니라 동시성, API 배포·롤백, 주문서 연동을 함께 설계해야 함을 보여주며, 다음 단계에서는 불필요한 쓰기를 줄이고 대규모 트래픽을 안정적으로 처리하는 것을 목표로 한다.

  • 레거시 코드를 한 번에 교체하기보다 Interface와 Service로 분리해 다음 단계의 변경 기반을 마련할 수 있다.
  • Dual write는 데이터 마이그레이션을 돕지만, 기존 시스템의 데드락 문제가 남아 있으면 장애를 키울 수 있다.
  • 앱 API 규격이 바뀐 뒤에는 강제 업데이트가 필요할 수 있으므로, 배포와 롤백 가능성을 함께 고려해야 한다.
  • 여러 세션의 카트를 하나로 강제 병합하는 대신 아이템을 공유하면 세션 간 경합을 줄일 수 있다.

소개

컬리 카트는 어떤 모습으로 성장하고 있을까?

비슷한 학습 자료

문서 서민우

카프카 설정 튜닝만으로 색인 속도를 개선하다

백엔드 데이터베이스

문서 정명성

주문서비스 개발팀이 선물하기 서비스를 오픈하기 까지 여정

백엔드 서비스 기획

문서 윤영진

마켓컬리에서의 PHP 이야기

프로그래밍 언어

문서 sangseok.lim

마켓컬리 서비스 구조를 소개 합니다

백엔드 풀스택

문서 박수형

컬리의 Virtual 물류 센터

문서 박수형

Picking 공정 시뮬레이션의 구축부터 활용까지

게임 프로그래밍

문서 허재진

컬리 데이터 파이프라인의 BigQuery 도입 배경과 그 주안점

데이터베이스 데브옵스 · 인프라