전담 예산 없이 5년, 모놀리스를 120개 마이크로서비스로 쪼갠 전략
HR·급여 소프트웨어 팀이 3개의 모놀리식 시스템을 120개 이상의 마이크로서비스로 전환하는 데 걸린 시간은 5년이다. 더 주목할 점은 이 전환에 전담 마이그레이션 예산이 없었다는 것이다. 많은 팀이 "언젠가 레거시를 갈아엎자"고 말하면서도 실행하지 못하는 이유가 바로 예산과 리소스 문제인데, 이 팀은 그 제약 안에서 실제로 해냈다.
핵심은 풀 기반 마이그레이션(Pull-based Migration) 이라는 접근 방식에 있다. 기존 모놀리스를 직접 수정하거나 Big Bang 방식으로 전환하는 대신, 새로운 기능을 개발할 때마다 독립된 서비스로 구축하고 트래픽을 점진적으로 새 서비스 쪽으로 "끌어당기는" 전략이다. 모놀리스에 손을 대지 않으므로 기존 시스템의 안정성을 해치지 않고, 팀은 새 기능 개발과 마이그레이션을 동시에 진행할 수 있다.
풀 기반 마이그레이션이 실무에서 의미하는 것
전통적인 마이그레이션은 "기존 코드를 옮기는 작업"에 집중한다. 반면 풀 기반 방식은 신규 기능을 레거시에 추가하지 않는 것을 원칙으로 삼는다. 매번 새 기능 요청이 들어오면, 그 기능은 독립 서비스로 구현된다. 시간이 지날수록 모놀리스가 담당하는 비중은 자연스럽게 줄어든다.
[클라이언트 요청]
|
[API Gateway]
|-------> [신규 마이크로서비스 A] ← 새 기능
|-------> [신규 마이크로서비스 B] ← 새 기능
|-------> [모놀리스] ← 기존 기능 (점진적 축소)
이 방식의 실무적 장점은 명확하다. 리스크가 분산되고, 롤백 범위가 작으며, 팀이 마이그레이션 전용 스프린트 없이도 일상적인 개발 사이클 안에서 전환을 진행할 수 있다. 다만 초반에는 모놀리스와 신규 서비스 사이의 데이터 정합성 관리와 중복 로직 처리가 가장 큰 도전 과제로 떠오른다.
비용 통제와 운영에서 마주친 현실 문제들
예산 없이 120개 서비스를 운영한다는 것은 인프라 비용 최적화가 필수라는 의미다. 이 팀은 도구 선택 단계부터 비용을 고려했다. 관리형 서비스(Managed Service)를 적극 활용해 운영 오버헤드를 줄이고, 서비스별 리소스 할당을 세밀하게 조정해 불필요한 컴퓨팅 비용을 제거했다.
분산 환경 전환 과정에서는 예상치 못한 운영 문제들도 등장했다.
- 분산 트랜잭션 처리: 급여 도메인 특성상 데이터 일관성이 핵심인데, 서비스 경계를 넘는 트랜잭션 처리가 복잡해졌다.
- 서비스 간 통신 장애: 네트워크 레이턴시와 부분 장애(Partial Failure) 시나리오가 모놀리스 시절에는 없던 새로운 문제로 부상했다.
- 관찰 가능성(Observability) 확보: 120개 서비스의 로그·메트릭·트레이싱을 일관되게 수집하고 연계하는 체계를 별도로 구축해야 했다.
- 팀 소유권 분산: 서비스 수가 늘어날수록 각 서비스의 담당 팀과 책임 범위를 명확히 하는 조직적 과제도 함께 커졌다.
정리
- 풀 기반 마이그레이션은 신규 기능을 레거시에 추가하는 대신 독립 서비스로 구축해, 별도 예산 없이 점진적으로 전환을 실현하는 전략이다.
- 분산 전환 과정에서 분산 트랜잭션·부분 장애·관찰 가능성 등 모놀리스에서는 없던 운영 복잡도가 새롭게 발생한다는 점을 사전에 대비해야 한다.
- 서비스 수가 급증할수록 인프라 비용 최적화와 팀 소유권 명확화는 기술적 과제만큼 중요한 실무 요소다.