2. 모놀리식 vs 마이크로서비스 아키텍처

박은서's avatar
May 01, 2026
2. 모놀리식 vs 마이크로서비스 아키텍처

1. 모놀리식 vs 마이크로서비스 아키텍처

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

1) 개념

  • 하나의 애플리케이션 안에 모든 기능이 통합된 구조
  • UI, 비즈니스 로직, DB 접근 코드가 하나의 프로젝트/서버에 존재

2) 구조 특징

  • 하나의 코드베이스
  • 하나의 배포 단위 (JAR/WAR 하나)
  • 하나의 DB 사용하는 경우가 많음
[ 하나의 서버 ] ├─ 회원 기능 ├─ 주문 기능 ├─ 결제 기능 └─ DB

3) 장점

  • ✅ 개발 초기 속도가 빠름
  • ✅ 구조가 단순해서 이해하기 쉬움
  • ✅ 테스트/배포가 간단 (한 번에 배포)

4) 단점

  • ❌ 기능 하나 수정해도 전체 재배포 필요
  • ❌ 코드가 커질수록 유지보수 어려움 (스파게티 코드화)
  • ❌ 특정 기능만 확장(scale) 불가능 → 전체 서버 확장해야 함
  • ❌ 장애 발생 시 전체 서비스 영향

5) 언제 사용?

  • 스타트업 초기
  • 소규모 프로젝트
  • 빠른 MVP 개발

2️⃣ 마이크로서비스 아키텍처 (MSA: Microservices)

1) 개념

  • 기능별로 서비스를 작게 나누어 독립적으로 운영하는 구조

2) 구조 특징

  • 서비스별로 독립된 서버
  • 서비스별 독립 배포
  • 서비스 간 통신 (HTTP / REST / 메시지 큐)
[ 회원 서비스 ] ←→ [ 주문 서비스 ] ←→ [ 결제 서비스 ] ↓ ↓ ↓ 회원 DB 주문 DB 결제 DB

3) 장점

  • ✅ 서비스별 독립 배포 가능
  • ✅ 특정 기능만 확장 가능 (예: 주문 서버만 scale)
  • ✅ 장애 격리 (한 서비스 죽어도 전체는 유지 가능)
  • ✅ 팀 단위 개발 가능 (조직 확장에 유리)

4) 단점

  • ❌ 설계 복잡도 증가
  • ❌ 서비스 간 통신 비용 (네트워크)
  • ❌ 데이터 일관성 관리 어려움 (트랜잭션 문제)
  • ❌ 운영 난이도 높음 (Docker, Kubernetes 필요)

5) 언제 사용?

  • 대규모 서비스 (네이버, 쿠팡 등)
  • 트래픽 많고 확장 필요한 서비스
  • 여러 팀이 동시에 개발하는 환경

3️⃣ 핵심 차이 비교

구분
모놀리식
마이크로서비스
구조
하나의 앱
여러 개의 서비스
배포
전체 배포
서비스별 배포
확장
전체 확장
부분 확장
장애 영향
전체 영향
일부 영향
개발 난이도
쉬움
어려움
운영 난이도
낮음
높음

4️⃣ 실무 관점 핵심 요약 (중요🔥)

1) 시작은 대부분 모놀리식

  • 빠르게 개발해야 하기 때문

2) 커지면 MSA로 분리

  • 트래픽 증가
  • 팀 규모 증가
  • 기능 복잡도 증가
👉 이때 "도메인 기준으로 분리" (회원, 주문, 결제)

5️⃣ 한 줄 정리

  • 모놀리식 → "하나로 묶어서 빠르게 개발"
  • 마이크로서비스 → "나눠서 확장성과 유연성 확보"

6️⃣ 백엔드 개발자 관점 추가 포인트

  • 모놀리식 → Spring Boot 하나로 충분
  • MSA →
    • API Gateway
    • Service Discovery
    • Docker / Kubernetes
    • 메시지 큐 (Kafka 등)
👉 즉, MSA는 기술 스택이 훨씬 무거워짐
Share article