핵심 인사이트 (3줄 요약)

  • 각 마이크로서비스가 고유한 데이터베이스를 소유하며, 다른 서비스의 DB에 직접 접근하는 것을 원천 차단하여 데이터 독립성과 캡슐화를 보장함.
  • 서비스 간의 **런타임 결합도(Runtime Coupling)**를 제거하여, 특정 서비스의 DB 장애나 스키마 변경이 다른 서비스에 영향을 주지 않도록 격리함.
  • 각 서비스의 특성에 맞는 최적의 DB(Polyglot Persistence)를 선택할 수 있는 자율성을 제공하며, 독립적인 배포와 확장을 가능하게 함.

Ⅰ. 개요 (Context & Background)

  • 모놀리식 아키텍처의 '공유 데이터베이스(Shared Database)'는 데이터 정합성 유지에는 유리하나, 서비스 확장에 따라 DB 병목(SPOF)과 스키마 변경의 두려움을 유발함.
  • MSA의 핵심인 '독립적 배포'를 달성하기 위해 데이터 계층의 강결합을 해소하는 것이 이 패턴의 핵심 목적임.

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

[ Database per Service Architecture ]

    /-------------\       /-------------\       /-------------\
    | Order Svc   |       | Product Svc |       | Customer Svc|
    \-------------/       \-------------/       \-------------/
           |                     |                     |
    /------v------\       /------v------\       /------v------\
    | [Order DB]  |       | [Product DB]|       | [Customer DB]|  <--- DB 격리
    | (MySQL)     |       | (MongoDB)   |       | (PostgreSQL) |
    \-------------/       \-------------/       \-------------/

* 데이터 교환: 서비스 간 직접 DB 접근 불가, 오직 API나 Message를 통해서만 교환
  • 개별 오너십: 서비스는 자신이 소유한 DB의 스키마를 자유롭게 변경할 수 있으며, 데이터는 반드시 서비스 API를 통해서만 외부에 노출됨.
  • 데이터 격리: 물리적 DB 서버를 분리하거나, 논리적 스키마/데이터베이스를 분리하여 자원을 격리함.
  • 분산 데이터 관리: 조인(Join) 연산이 불가능하므로, API 조합(Composition)이나 CQRS, Saga 패턴을 통한 데이터 통합 전략이 수반되어야 함.

Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)

비교 항목공유 데이터베이스 (Shared DB)서비스별 데이터베이스 (DB per Svc)
데이터 정합성ACID 트랜잭션으로 보장 용이결과적 일관성 (Eventual Consistency)
스키마 변경모든 서비스에 영향 (변경 어려움)서비스 단독 변경 가능 (유연성 높음)
기술 선택단일 DB 스택에 종속폴리글랏 퍼시스턴스 가능
운영 복잡도상대적으로 낮음DB 모니터링/백업 대상 증가 (높음)

Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)

  • 판단 지표: 서비스가 도메인별로 명확히 분리(Bounded Context)되어 있고, 시스템의 규모가 커서 독립적인 확장과 빠른 배포가 생존 전략일 때 도입함.
  • 적용 전략: 초기에는 논리적 스키마 분리로 시작하여 필요에 따라 물리적 DB를 분리하는 전략(Evolutionary Design)을 취하며, 데이터 중복을 일정 부분 허용(Denormalization)하여 성능을 확보함.

Ⅴ. 기대효과 및 결론 (Future & Standard)

  • 데이터 계층의 **유연성(Agility)**과 **확장성(Scalability)**을 극대화하여 진정한 의미의 클라우드 네이티브 MSA를 완성함.
  • 분산 트랜잭션의 어려움은 Saga 패턴이나 **이벤트 주도 아키텍처(EDA)**와 결합하여 해결하는 것이 글로벌 표준 아키텍처 방향임.

📌 관련 개념 맵 (Knowledge Graph)

  • 상위 개념: 마이크로서비스 아키텍처 (MSA), 바운디드 컨텍스트
  • 해결 패턴: API 컴포지션, CQRS, Saga 패턴
  • 기술 기반: 폴리글랏 퍼시스턴스, 결과적 일관성

👶 어린이를 위한 3줄 비유 설명

  • 친구들과 일기장을 하나로 같이 쓰는 게 아니라, 각자 자기만의 비밀 일기장을 갖는 것과 같아요.
  • 내 일기장에 마음대로 그림을 그려도 친구 일기장은 깨끗하니까 싸울 일이 없어요.
  • 친구의 일기 내용이 궁금하면 직접 훔쳐보는 게 아니라, 친구에게 물어봐서 답을 듣는 것과 같은 규칙이에요.