경험 중심 1인칭 답변
MSA의 핵심 장점은 서비스 단위 독립 배포와 장애 격리입니다. 특정 서비스가 죽어도 전체 시스템이 멈추지 않고, 팀별로 다른 기술 스택을 쓸 수 있는 유연성도 있습니다. 반면 단점은 서비스 간 통신 비용과 분산 트랜잭션 복잡도입니다. REST 또는 메시지 큐를 통해 서비스가 연결되면 네트워크 지연, 이벤트 순서 문제, 데이터 일관성 보장이 어려워집니다. 모놀리식은 반대입니다.
초기 개발 속도가 빠르고 트랜잭션 처리가 단순하지만, 코드베이스가 커질수록 배포 위험이 늘고 특정 기능만 스케일 아웃하기 어렵습니다. 선택 기준은 팀 규모와 서비스 트래픽 패턴입니다. 소규모 팀 초기에는 모놀리식으로 빠르게 검증하고, 성장하면서 병목이 생기는 서비스를 분리하는 방식이 현실적입니다.
MSA는 조직 구조가 먼저 분리돼 있을 때 효과가 나옵니다. 앞으로도 팀 규모와 트래픽 패턴을 기준으로 모놀리식에서 MSA로 점진 전환하는 방향을 권장하는 방식을 유지하겠습니다. MSA는 조직이 먼저 서비스 경계를 가질 때 효과가 나오고, 그 전에 분리하면 복잡도만 늘어납니다.