네트워크ArchitectureSystem DesignMicroservicesMonolith

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

단일 서버 내부 호출 vs 분산 서비스 간 네트워크 통신 흐름 비교

시각화 로드 중...

개요

Network Overview

시스템 설계의 양대 패러다임인 모놀리식(Monolithic)과 마이크로서비스(Microservices, MSA)는 서비스 결합도, 통신 비용, 데이터베이스 정합성 및 장애 격리 메커니즘에서 근본적인 차이가 있습니다.

01

모놀리식 아키텍처 (Monolith)

모든 비즈니스 로직(인증, 주문, 재고, 결제, 알림 등)이 단일 애플리케이션 프로세스 안에서 번들링되어 실행됩니다.

  • 메모리 내 함수 호출: 모듈 간 통신이 프로세스 내부 메모리 호출(In-Memory Call)로 이루어져 네트워크 지연(Latency)이 0에 가깝습니다.
  • 단일 DB 및 ACID 트랜잭션: 공유 데이터베이스를 사용하여 강력한 외래키 무결성과 단일 로컬 트랜잭션으로 데이터 정합성을 완벽하게 보장합니다.
  • 확장 및 장애 한계: 특정 모듈에 메모리 누수나 부하가 생기면 전체 시스템이 다운(SPOF)되며, 특정 기능만 별도로 스케일 아웃하기 어렵습니다.
02

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

비즈니스 경계(Bounded Context)에 따라 독립된 배포 단위로 쪼개어 각각 별도의 컨테이너 프로세스로 구동합니다.

  • 네트워크 기반 통신 (RPC / Event): 서비스 간 통신은 REST, gRPC 또는 카프카(Kafka)/RabbitMQ 메시지 브로커를 통한 비동기 이벤트로 진행됩니다.
  • Database-per-Service: 각 마이크로서비스가 전용 데이터베이스를 소유하여 서비스 간 데이터 결합도를 완전히 분리합니다.
  • 장애 격리 (Fault Isolation): 결제 서비스에 장애가 발생하더라도 상품 조회나 장바구니 서비스는 정상 작동하도록 차단막(Circuit Breaker)을 형성할 수 있습니다.
  • 독립적 스케일링: 트래픽이 몰리는 특정 서비스(예: 주문 서비스)만 골라서 독립적으로 파드를 증설할 수 있습니다.
03

핵심 아키텍처 특성 대조

  • 서비스 간 통신: 모놀리스(초고속 In-Memory 스택 프레임 호출) vs MSA(네트워크 I/O, 직렬화/역직렬화 오버헤드 발생)
  • 데이터베이스 모델: 모놀리스(단일 통합 DB, 엄격한 ACID 보장) vs MSA(서비스별 분리 DB, 사가(Saga) 패턴 기반 최종 일관성(Eventual Consistency))
  • 배포 주기 및 속도: 모놀리스(작은 수정에도 전체 빌드/배포 필요) vs MSA(서비스별 독립적이고 빈번한 CI/CD 배포 가능)
  • 운영 복잡도: 모놀리스(단순한 로깅 및 디버깅) vs MSA(분산 추적(Distributed Tracing), 서비스 메시(Service Mesh) 등 고도의 운영 역량 요구)

핵심 단계

  1. 1

    클라이언트 요청 유입 — 사용자의 주문 요청이 유입됩니다. 모놀리스는 로드밸런서를 통해 단일 서버로, MSA는 API 게이트웨이로 도달합니다.

  2. 2

    인증 및 인가 처리 — 모놀리스는 프로세스 내부 메모리 호출로 세션/토큰을 즉시 확인합니다. MSA는 인증 서비스(Auth Service)로 네트워크 통신을 거쳐 검증합니다.

  3. 3

    비즈니스 로직 수행 및 주문 생성 — 모놀리스는 내부의 주문 모듈을 호출합니다. MSA는 게이트웨이를 거쳐 주문 서비스(Order Service)로 요청이 전달됩니다.

  4. 4

    재고 확인 및 차감 — 주문 처리를 위해 재고 상태를 확인합니다. 모놀리스는 내부 메모리 호출로 재고를 조회하지만, MSA는 주문 서비스에서 재고 서비스(Inventory Service)로 네트워크 호출을 보냅니다.

  5. 5

    결제 요청 및 트랜잭션 — 결제를 수행합니다. 모놀리스는 단일 데이터베이스 내에서 하나의 로컬 트랜잭션(ACID)으로 안전하게 처리합니다. MSA는 결제 서비스(Payment Service)로 네트워크 호출을 수행하고 분산 데이터베이스에 각각 기록하므로 분산 트랜잭션 처리가 수반됩니다.

  6. 6

    알림 발송 및 최종 응답 — 고객에게 알림을 보냅니다. 모놀리스는 동기 혹은 내부 스레드로 알림 모듈을 호출한 후 응답합니다. MSA는 메시지 브로커를 통해 알림 서비스(Notification Service)에 비동기 이벤트를 발행하고, 주문 서비스는 클라이언트에게 즉시 최종 응답을 반환합니다.

핵심 개념 및 실무 적용 분야

✓단일 웹 서비스에서 트래픽 증가에 따른 스케일 아웃 방식 비교
✓특정 서비스(예: 결제 서비스) 장애 발생 시 시스템 전체에 미치는 영향 분석
✓서비스 간 지연 시간(Latency) 축적 및 네트워크 병목 파악
✓공유 데이터베이스 트랜잭션과 서비스별 데이터베이스의 정합성 유지 방식 비교