
핵심요약
컬리의 카트 시스템이 모놀리식 구조의 한계를 극복하고 마이크로서비스 아키텍처로 진화하며, 성능 최적화와 기능 확장을 성공적으로 이뤄낸 과정을 상세히 다룹니다.
컬리 카트 시스템의 진화 여정
초기 카트 시스템의 한계와 발전 필요성
- 초기 모놀리식 아키텍처는 기능 확장에 한계가 있었습니다.
- 사용자 증가에 따른 성능 저하 및 병목 현상이 발생했습니다.
- 다양한 프로모션 및 배송 옵션 통합의 어려움이 있었습니다.
마이크로서비스 기반 카트 아키텍처 전환
- Cart Service를 중심으로 상품, 재고, 프로모션 서비스와 API 연동을 구현했습니다.
- Kafka를 활용한 이벤트 기반 아키텍처로 서비스 간 비동기 통신을 강화했습니다.
- Redis Cache를 도입하여 장바구니 조회 성능을 최적화하고 DB 부하를 경감시켰습니다.
- MSA 패턴 적용으로 각 서비스의 독립적인 배포 및 확장성을 확보했습니다.
기능 확장 및 안정성 확보 전략
- 분산 트랜잭션 관리를 위해 Saga 패턴 또는 2PC 적용을 검토했습니다.
- 서킷 브레이커 패턴을 도입하여 외부 서비스 장애 시 장애 전파 방지를 구현했습니다.
- CI/CD 파이프라인을 통해 신속한 기능 배포 및 안정적인 운영을 지원했습니다.