크몽 백엔드팀이 메인 배너·큐레이션 등 전시 서비스를 기존 모놀리식 Vintage 서버에서 MSA 환경으로 3단계로 전환한 마이그레이션 과정을 다룬다. 트래픽을 끊지 않고 진실의 원천을 점진적으로 이전하는 방식으로 전환 리스크를 최소화했다.
핵심 포인트- 전시 도메인은 크몽 메인 배너, 큐레이션 콘텐츠를 사용자에게 보여주는 서비스의 첫인상 역할을 담당한다.
- 3단계 전환으로 서비스 중단 없이 마이그레이션했다: 데이터 동기화 구축, API 전환, 진실의 원천 이전 순이다.
- Step1에서는 Vintage 등록 시 신규 MSA API를 동시 호출해 데이터를 이중으로 동기화하되 진실의 원천은 Vintage를 유지했다.
- Step2에서 클라이언트를 신규 API로 전환하고 두 API 응답을 비교해 데이터 불일치를 검증했다.
- Step3에서 데이터 등록/수정 경로를 전시 도메인으로 완전 이전해 MSA가 유일한 진실의 원천이 됐다.
상세 정리- 전환 배경: 크몽은 Vintage 모놀리식 서버를 점진적으로 MSA로 전환 중이며, 전시 도메인이 이번 대상이었다.
- 전시 도메인 역할: 크몽 서비스의 메인 배너, 큐레이션 등 주요 콘텐츠를 사용자에게 보여주는 첫인상 도메인이다.
- Step1 — 데이터 이중화: Vintage에서 데이터를 등록할 때마다 신규 MSA 서버 API도 호출해 데이터를 동기화했다. 진실의 원천은 Vintage였고, 신규 시스템으로의 데이터 흐름을 먼저 만들었다.
- Step2 — API 전환: 클라이언트가 기존 Vintage API 대신 신규 전환된 API를 점진적으로 사용하도록 변경했다. 두 API 응답을 비교해 차이를 검증했다.
- Step2 이슈: 데이터 동기화 누락으로 Vintage에서 등록한 배너가 신규 API에 나타나지 않는 이슈가 발생했고, 비교 검증으로 잡아냈다.
- Step3 — 진실의 원천 이전: Vintage의 데이터 등록/수정 경로를 전시 도메인으로 일괄 변경해 MSA 서버가 유일한 진실의 원천이 됐다.
- 안정화 과정: 전환 후 서비스가 안정화될 때까지 모니터링하고, 이후 기존 Vintage 로직을 제거했다.
- 고민 1 — 데이터 불일치: Step1 동기화 로직에 오류가 있으면 Vintage와 신규 시스템 간 데이터가 어긋나는 문제가 즉시 발생한다.
- 고민 2 — 링크 처리 책임: MSA 전환 시 디바이스별 링크 처리 책임을 어느 서비스가 담당할지 명확히 해야 한다.
- 교훈: 전환 전략은 서비스마다 도메인 규모, 의존성, 사용 패턴이 달라 상황에 맞게 설계해야 한다.
왜 읽나모놀리식 서버를 MSA로 점진적으로 전환하는 실제 사례를 찾는 백엔드 엔지니어에게 3단계 전환 패턴과 발생한 이슈, 고민 포인트를 구체적으로 알려준다.