SaaS TMS를 벗어나 컬리가 새벽배송용 배송 시스템을 자체 구축하고, 기존 시스템에서 무장애로 전환한 1년 회고다. 어떤 아키텍처·전환 전략으로 리스크를 줄였는지가 핵심이다.
핵심 포인트- 기존 SaaS TMS는 커스터마이징·대규모 조회 성능에 한계가 있어, 빠른 실험이 가능한 자체 시스템으로 교체했다.
- 배송 요청 수신은 컬리몰/TOMS가 각 시스템에 분배하는 1안 대신, 기존과 같은 Kafka 토픽을 신규 시스템도 구독해 필요한 것만 처리하는 2안을 택해 수정 범위·롤백 부담을 줄였다.
- 두 시스템의 배송 권역을 동일하게 복제하고, 신규 시스템 운영 지역을 Feature Toggle로 제어해 지역 단위 점진 확장·즉시 롤백이 가능하게 설계했다.
- 소규모 지역 → 센터 1개 → 3개 → 50% → 100%의 5단계 전환을 약 한 달로 계획해, 예정보다 3일 빠르게 배송 불가 0건·장애 0건으로 완료했다.
상세 정리- 교체 배경: SaaS는 회사 간 협업이 필요해 수정 속도·유연성이 떨어지고, 성능 제약으로 대량 조회·다운로드에 제한이 있었다.
- 설계 착수: 컬리넥스트마일 인터뷰·현장 매뉴얼·기존 SaaS 요청 이력을 분석해 배송 전 과정을 이해하고, 도메인을 자원 관리 영역과 운송장 처리 영역으로 구분했다.
- 일하는 방식: 스쿼드 체계와 4개 마일스톤(각 2~4스프린트)으로 핵심 기능을 먼저 구현·검증하고 권역·알림·이슈 처리 같은 주변 도메인을 뒤에 보강했다.
- 토픽 수신 전략: 신규 시스템이 제어 못하는 컬리몰/TOMS 구간을 건드리지 않으려 2안(동일 토픽 수신 후 선별 처리)을 택해 협업 조직 확대·장애 위험을 줄였다.
- 롤백 3원칙: (1) 두 시스템 권역을 동일 복제하고 판단이 다르면 기존 시스템을 따르며 로깅, (2) 모든 배송 데이터를 신규 시스템에 통합해 일관된 트래킹 제공, (3) 운영 지역을 Feature Toggle로 켜고 꺼 롤백은 설정만 되돌리면 되게 함.
- 전환 실행: 계약 종료 한 달 반 전, 추석 물량 폭증 전에 끝내야 해 매일 새벽 1시 이슈 리뷰 회의로 당일 문제를 다음 배송 전 또는 2~3일 내에 해결했다.
- 조기 완료: 초기 이슈가 통제 가능한 수준이라 안정세를 유지했고, 50% 확장 시 일시 증가했으나 관리 가능해 예정보다 3일 빠른 9월 18일에 100% 전환했다.
- 성과·교훈: 전환 기간 배송 중단·장애 0건. 공동 목표 정렬 조직 구조, 현장 인사이트, 기존 SaaS 경험이 공유 참조 모델이 된 점을 성공 요인으로 꼽았다.
- 아쉬운 점: 최대 리스크는 기한 내 전환이라는 불확실성이었고, 다음엔 MVP를 조기 릴리스해 일부 물량을 흘리며 불확실성을 더 빨리 해소하는 방안을 고려한다.
왜 읽나운영 중인 핵심 시스템을 무중단으로 교체·전환해야 하는 백엔드·아키텍트에게 토픽 재사용·Feature Toggle·단계적 롤백 설계의 실전 레퍼런스.