1. Monolith (모놀리식 아키텍처)

개념

모든 기능이 하나의 애플리케이션으로 통합되어 배포되는 구조입니다.

[ Client ]


┌─────────────────────┐
│ Monolith App │
│ │
│ Controller │
│ Service │
│ Repository │
│ Domain │
│ │
└─────────────────────┘


DB
 

  • Spring Boot 하나
  • WAR 하나
  • DB 하나

2. MSA (Microservice Architecture)

개념

시스템을 여러 개의 독립 서비스로 분리하여 운영하는 구조

Client


API Gateway

├───────────────┐
▼ ▼
Order Service User Service
│ │
▼ ▼
Order DB User DB
 

서비스

  • 독립 배포
  • 독립 DB
  • 독립

핵심 차이

항목                                                    Monolith                                                        MSA
배포 하나 서비스별
코드 구조 하나의 프로젝트 여러 프로젝트
DB 하나 서비스별
통신 내부 메서드 호출 REST / Message
장애 영향 전체 영향 부분 영향
확장 전체 확장 서비스별 확장

Monolith 장점

1. 단순한 구조

설계가 단순합니다.

Controller → Service → Repository
 

이게 끝입니다.


2. 트랜잭션 관리 쉬움

하나의 DB

@Transactional
 

으로 해결됩니다.


3. 개발 속도 빠름

  • 작은
  • 스타트업
  • MVP

에서 가장 빠릅니다.


4. 운영 비용 낮음

  • 서버 적음
  • 네트워크 없음
  • 메시지 브로커 없음

Monolith 단점

1. 시스템 커지면 유지보수 어려움

대표적인 문제

God Service
Huge Repository
Massive Build Time
 

2. 배포 리스크

작은 수정도

전체 시스템 재배포
 

3. 기술 스택 제한

전체 Java
 

다른 언어 사용 어려움.


MSA 장점

1. 독립 배포

Order Service만 배포
 

가능합니다.


2. 서비스별 확장

검색 서비스 → 트래픽 많음
검색 서비스만 scale
 

3. 조직에 맞음

팀 A → 주문
팀 B → 결제
팀 C → 검색
 

4. 기술 다양성

검색 → Go
AI → Python
Core → Java
 

MSA 단점

1. 운영 복잡도

필요한

Service Discovery
API Gateway
Monitoring
Tracing
Logging
 

대표 도구

  • Kubernetes
  • Prometheus
  • Jaeger
  • ELK

2. 데이터 일관성 문제

모놀리식

ACID Transaction
 

MSA

Eventual Consistency
Saga Pattern
 

3. 네트워크 비용

서비스 통신

REST
gRPC
Kafka
 

latency 증가


4. 분산 시스템 문제

대표 문제

Timeout
Retry
Circuit Breaker
Partial Failure
 

언제 Monolith좋은가

조건

팀 < 10명
서비스 초기
도메인 단순
 

대표 사례

  • 스타트업 MVP
  • 내부 시스템

언제 MSA좋은가

조건

팀 > 30명
서비스 규모 큼
도메인 복잡
트래픽 많음
 

대표 사례

  • Netflix
  • Amazon
  • Uber

현실적인 아키텍처

요즘은 대부분

Modular Monolith

입니다.

Monolith
├ Order Module
├ Payment Module
├ User Module
 

장점

  • 모놀리식 장점 유지
  • MSA확장 가능

유명한

Martin Fowler

"Most people should start with a monolith and evolve to microservices."


실제 회사 아키텍처

대부분

초기 → Monolith
성장 → Modular Monolith
대규모 → MSA

 

LIST

+ Recent posts