전체 목록
아키텍처Medium#401

마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)의 차이점을 설명해주세요.

#아키텍처#MSA#Monolith

답변 포인트

두 아키텍처 방식의 장단점과 확장성 차이를 생각해보세요.

정답 및 해설

빠른 요약

마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)는 애플리케이션을 구축하는 두 가지 주요 방식입니다. ## 모놀리식 아키텍처 (Monolithic Architecture) 모든 기능이 하나의 코드 베이스와 하나의 실행 단위로 통합된 방식입니다.

마이크로서비스 아키텍처(MSA)와 모놀리식 아키텍처(Monolith)는 애플리케이션을 구축하는 두 가지 주요 방식입니다.

모놀리식 아키텍처 (Monolithic Architecture)

모든 기능이 하나의 코드 베이스와 하나의 실행 단위로 통합된 방식입니다.

  • 장점:
    • 개발 및 배포가 단순함 (하나의 파일만 배포하면 됨)
    • 서비스 간 통신 비용이 없음 (함수 호출 방식)
    • 초기 구축 비용이 낮음
  • 단점:
    • 서비스가 커질수록 코드 복잡도가 증가하고 유지보수가 어려움
    • 특정 기능만 확장(Scaling)하기 어려움 (전체 서비스를 복제해야 함)
    • 한 부분의 버그나 장애가 전체 시스템으로 전파될 위험이 높음
    • 기술 스택의 변화가 어려움 (전체를 다시 짜야 함)

마이크로서비스 아키텍처 (Microservices Architecture)

애플리케이션을 독립적으로 배포 가능한 여러 개의 작은 서비스로 나누어 구축하는 방식입니다.

  • 장점:
    • 서비스별 독립적 확장(Scaling) 가능 (부하가 많은 서비스만 늘림)
    • 각 서비스에 최적화된 기술 스택 선택 가능 (Polyglot)
    • 장애 격리 (한 서비스가 죽어도 다른 서비스는 작동 가능)
    • 팀 단위의 독립적 개발 및 배포 용이
  • 단점:
    • 서비스 간 네트워크 통신으로 인한 지연(Latency) 발생
    • 데이터 일관성 유지(Distributed Transaction)가 매우 어려움
    • 분산 시스템 환경의 복잡한 인프라 및 모니터링 필요
    • 테스트 및 디버깅이 까다로움

비교 요약

구분모놀리식마이크로서비스
배포 단위전체 시스템개별 서비스
확장성수직적 (전체 확장)수평적 (부분 확장)
장애 영향전파 위험 높음격리 가능
복잡도낮음 (초기)높음 (운영/인프라)

관련 질문

같은 카테고리/태그 기준