프로그래밍 이론/시스템 디자인 설계

Monolith, MSA(Microservice) 아키텍쳐

minquu 2025. 7. 14. 12:42
반응형

모놀리식 아키텍처 vs 마이크로서비스 아키텍처 (MSA) 비교 정리

서비스 아키텍처는 애플리케이션의 구조와 유지보수, 확장성에 큰 영향을 미칩니다.
이번 글에서는 대표적인 두 가지 아키텍처인 모놀리식 아키텍처(Monolithic Architecture)마이크로서비스 아키텍처(Microservice Architecture, MSA)를 비교 정리해보겠습니다.


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

📌 정의

  • 이름 그대로, 모든 기능이 하나의 통합된 코드베이스에 포함된 구조입니다.
  • 모든 컴포넌트가 단일 프로세스 내에서 실행됩니다.

✔️ 특징

  • 단일 배포
  • 코드베이스가 일관됨
  • 초기 개발 구조가 간단함

✅ 장점

  • 초기 설정 및 배포가 간편함
  • 성능 오버헤드가 적음 (단일 프로세스)
  • 디버깅 및 로깅이 상대적으로 쉬움

❌ 단점

  • 변경 시 전체 재배포가 필요
  • 서비스가 커질수록 유지보수가 어려움
  • 수평 확장은 가능하나 기능 단위 확장에는 한계

🧪 사용 사례

  • 스타트업이나 초기 MVP 단계
  • 소규모 팀, 빠른 개발 주기

🧩 마이크로서비스 아키텍처 (Microservice Architecture, MSA)

📌 정의

  • 하나의 애플리케이션을 작은 독립 서비스로 나누어 구성
  • 각 서비스는 자체 데이터베이스와 비즈니스 로직을 가지고 있음

✔️ 특징

  • 독립 배포 가능
  • 서비스 단위 모듈화
  • 기술 스택을 각 서비스마다 다르게 선택 가능

✅ 장점

  • 독립적으로 개발, 배포, 확장 가능
  • 장애가 전체 시스템에 미치는 영향이 적음 (탄력성)
  • 유지보수가 쉬움 (기능 단위로 가능)

❌ 단점

  • 시스템이 복잡해짐
  • 운영/모니터링 비용 증가
  • 데이터 일관성 문제 (분산 트랜잭션 어려움)

🧪 사용 사례

  • 대규모 사용자 대상 플랫폼
  • 확장성과 유연성이 중요한 서비스
  • 예: Facebook, Netflix, Amazon 등

☁️ AWS 기반 아키텍처 비교

🧱 모놀리식 아키텍처 – AWS 구성 예시

구성 요소 사용 AWS 서비스
애플리케이션 서버 EC2
데이터베이스 RDS (MySQL, PostgreSQL 등)
정적 파일 저장 S3
트래픽 분산 ELB (Elastic Load Balancing)

🧩 마이크로서비스 아키텍처 – AWS 구성 예시

구성 요소 사용 AWS 서비스
클라이언트 요청 진입점 API Gateway
기능별 서비스 실행 Lambda (서버리스), ECS/EKS (컨테이너 기반)
독립 데이터 저장소 DynamoDB (서비스별 DB 분리)
서비스 간 통신 SQS (비동기 메시징 큐)
서비스 디스커버리 및 배포 관리 AWS App Mesh, ECS 서비스 디스커버리

🔚 정리

항목 Monolithic Microservice (MSA)
코드베이스 하나 여러 개 (기능별)
배포 방식 전체 통합 배포 독립 배포
확장성 수평 확장 (전체) 기능 단위 확장 가능
유지보수 복잡 모듈별 용이
운영 난이도 낮음 높음
사용 사례 스타트업, 소규모 서비스 대기업, 글로벌 서비스

🚀 결론
모놀리식은 빠른 개발과 초기 안정성에 적합하고,
MSA는 확장성과 독립적인 관리가 필요한 대규모 시스템에 적합합니다.
시스템 규모, 팀 역량, 배포 빈도 등을 고려해 적절한 아키텍처를 선택하는 것이 중요합니다.

반응형