아키텍처Medium#401
마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)의 차이점을 설명해주세요.
#아키텍처#MSA#Monolith
답변 포인트
두 아키텍처 방식의 장단점과 확장성 차이를 생각해보세요.
정답 및 해설
빠른 요약
마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)는 애플리케이션을 구축하는 두 가지 주요 방식입니다. ## 모놀리식 아키텍처 (Monolithic Architecture) 모든 기능이 하나의 코드 베이스와 하나의 실행 단위로 통합된 방식입니다.
마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)는 애플리케이션을 구축하는 두 가지 주요 방식입니다.
모놀리식 아키텍처 (Monolithic Architecture)
모든 기능이 하나의 코드 베이스와 하나의 실행 단위로 통합된 방식입니다.
- 장점:
- 개발 및 배포가 단순함 (하나의 파일만 배포하면 됨)
- 서비스 간 통신 비용이 없음 (함수 호출 방식)
- 초기 구축 비용이 낮음
- 단점:
- 서비스가 커질수록 코드 복잡도가 증가하고 유지보수가 어려움
- 특정 기능만 확장(Scaling)하기 어려움 (전체 서비스를 복제해야 함)
- 한 부분의 버그나 장애가 전체 시스템으로 전파될 위험이 높음
- 기술 스택의 변화가 어려움 (전체를 다시 짜야 함)
마이크로서비스 아키텍처 (Microservices Architecture)
애플리케이션을 독립적으로 배포 가능한 여러 개의 작은 서비스로 나누어 구축하는 방식입니다.
- 장점:
- 서비스별 독립적 확장(Scaling) 가능 (부하가 많은 서비스만 늘림)
- 각 서비스에 최적화된 기술 스택 선택 가능 (Polyglot)
- 장애 격리 (한 서비스가 죽어도 다른 서비스는 작동 가능)
- 팀 단위의 독립적 개발 및 배포 용이
- 단점:
- 서비스 간 네트워크 통신으로 인한 지연(Latency) 발생
- 데이터 일관성 유지(Distributed Transaction)가 매우 어려움
- 분산 시스템 환경의 복잡한 인프라 및 모니터링 필요
- 테스트 및 디버깅이 까다로움
비교 요약
| 구분 | 모놀리식 | 마이크로서비스 |
|---|---|---|
| 배포 단위 | 전체 시스템 | 개별 서비스 |
| 확장성 | 수직적 (전체 확장) | 수평적 (부분 확장) |
| 장애 영향 | 전파 위험 높음 | 격리 가능 |
| 복잡도 | 낮음 (초기) | 높음 (운영/인프라) |