직접 경험 기반
학부 졸업 프로젝트에서 모놀리식 구조로 만든 쇼핑 서비스를 사용자/주문/상품 3개 서비스로 분리하는 작업을 했습니다. 가장 어려웠던 건 데이터베이스 분리로, 기존에 하나였던 DB를 서비스별로 나누면서 트랜잭션 일관성을 유지하는 방법을 고민했습니다. 이벤트 기반 통신(메시지 큐)을 도입해 서비스 간 의존성을 줄였고, 일부 강결합된 부분은 API 게이트웨이를 통해 우선 분리했습니다. 마이그레이션을 완료한 이후 각 서비스를 독립적으로 배포할 수 있게 됐지만, 서비스 간 호출이 늘면서 네트워크 지연이 생기는 트레이드오프를 직접 경험했습니다.
구조 변경은 기술보다 도메인 경계를 명확히 정의하는 것이 먼저라는 걸 배웠습니다. 마이그레이션을 통해 구조 변경은 기술 선택보다 도메인 경계 설정이 먼저라는 걸 배웠고, 이 순서를 지켜야 나중에 재작업이 줄어듭니다.