
컬리에서 선물하기를 개발하며 회고
두줄요약
레거시 고도몰과 호환되는 선물하기 주문 서버를 dual writing과 API 연동으로 구축했습니다. 분산 구조와 광범위한 QA를 통해 신규 주문 서비스를 안정적으로 론칭했습니다.
문제 상황
- PHP 기반 고도몰과 단일 데이터베이스 중심 레거시 구조의 기술 부채 및 단일 장애 지점 위험
- 주문·물류·상담·적립금 등 기존 업무 프로세스와 호환해야 하는 선물하기 신규 주문 서버
- 제한된 인력과 촉박한 일정, 다수 도메인 서비스 조직과의 협업 필요성
구조와 흐름
- 신규 주문 데이터베이스 기록과 레거시 데이터베이스 동기화를 병행하는 dual writing 구성
- 기존 프로세스를 유지하는 별도 선물 주문 생태계와 API 기반 연동
- 역할별 분산 서버 구조를 통한 구간별 확장 가능성 확보
트레이드오프
- 레거시를 한 번에 교체하지 않고 호환성을 우선한 단계적 분리 전략
- dual writing 장애 복구 복잡성 대신 데이터 정합성 장치와 회복성 확보
- Message Queue 기반 throttling 확장안은 주문량 특성을 고려해 보류하고 API 통신 우선 적용
성능/운영 포인트
- 광범위한 호환성 검증을 위한 한 달간 QA와 약 1,000건 이슈 해소
- 신규 주문 시스템의 독립 시점에 기존 데이터베이스에서 쉽게 분리 가능한 구조

