**모놀리스(monolith)**는 모든 기능을 하나의 배포 가능한 단위로 패키징하고, 마이크로서비스는 그 기능을 독립적으로 배포 가능한 여러 서비스로 분할합니다. 핵심 차이는 배포 단위와 모듈 간 경계입니다.
비교
각각이 적합한 경우
text
모놀리스가 좋은 경우:
✓ 소규모 팀 / 초기 단계 제품
✓ 도메인이 아직 충분히 이해되지 않음
✓ 단순함과 빠른 반복이 가장 중요
마이크로서비스가 좋은 경우:
✓ 많은 팀이 있는 대규모 조직
✓ 각 부분의 확장 요구가 매우 다름
✓ 독립적인 배포 주기가 필요
함정
모듈화가 잘못된 모놀리스는 분할한다고 마법처럼 개선되지 않습니다. 단지 분산된 엉망진창이 될 뿐입니다. 경계부터 바로잡으세요.
왜 중요한가
잘못된 스타일을 선택하면 비용이 큽니다. 성급한 분할은 소규모 팀에게 지연 시간, 운영 비용, 디버깅 고통을 더합니다.
대부분의 성공적인 시스템은 잘 구조화된 모놀리스로 시작하여, 팀 규모나 확장 압박이 명확히 정당화될 때에만 서비스를 추출합니다.
