MSA(Microservice Architecture)의 Inner/Outer Architecture 구조는 엔터프라이즈급 MSA 설계 시 복잡한 마이크로서비스 간의 의존성과 역할을 정리하고, **서비스 경계(Boundary)**와 **기능 분리(Modularity)**를 명확하게 하기 위해 도입된 개념입니다.

직무역량 평가 및 실무 설계 기준으로 아래와 같이 정리드립니다.


🧭 MSA 아키텍처의 Inner / Outer 구조

✅ 1. 개요 요약

구분설명
Inner Architecture 비즈니스 로직에 집중된 도메인 중심 서비스 계층
Outer Architecture 외부 접점을 담당하는 게이트웨이, 인증, 메시징, 로깅 등 인프라성 기능 계층

MSA 환경에서 Inner는 코어 서비스, Outer는 공통 지원 인프라 계층으로 구성


🧱 2. 구조도 예시

 
┌──────────────────── Outer Architecture ─────────────────────┐ │ │ │ API Gateway | 인증/Auth | 모니터링 | 메시지 브로커 | 로깅/분석 시스템 │ └────────────────────────────────────────────────────────────┘ ↓ ┌──────────────────────────── Inner Architecture ─────────────────────────────┐ │ │ │ 상품 서비스 결제 서비스 배송 서비스 회원 서비스 쿠폰 서비스 │ │ (Product MS) (Payment MS) (Delivery MS) (User MS) (Coupon MS) │ └──────────────────────────────────────────────────────────────────────────────┘

🔍 3. 구성 요소 상세 설명

🔹 Outer Architecture (외부 구조)

인프라, 플랫폼 기반 계층

  • API Gateway: 진입점 제어, 라우팅, 인증 위임
  • 인증/인가 시스템 (SSO, OAuth): 서비스 접근 제어
  • Service Registry / Discovery: 서비스 위치 탐색
  • 메시지 브로커 (Kafka, RabbitMQ): 비동기 메시징 지원
  • 로깅 / 모니터링: ELK, Prometheus, Grafana 등
  • CI/CD 및 배포 관리: ArgoCD, Jenkins, Helm 등

Outer는 공통 인프라로서 모든 도메인 서비스와 간접적으로 연결됨


🔹 Inner Architecture (내부 구조)

도메인 중심의 핵심 비즈니스 서비스

  • 각 서비스는 DDD(Domain-Driven Design) 기반으로 설계
  • 비즈니스 단위로 분리되어 있으며 자율성과 독립성 보장
  • DB, Cache, 내부 상태를 서비스 단위로 소유
  • 예: 주문(Order), 결제(Payment), 재고(Inventory), 회원(User) 등

Inner는 도메인 로직 처리와 데이터 소유를 책임지는 코어 레이어


🎯 4. Inner/Outer 분리의 이점

이점설명
관심사 분리 비즈니스 로직과 인프라 기능의 명확한 분리
확장성 Outer 기능을 공통화하여 각 서비스의 중복 제거
유지보수성 향상 Inner는 오직 도메인 로직에 집중 가능
보안 강화 인증/인가, 외부 통신을 Outer에서 통제

📝 5. 직무역량 평가용 예시 문제

문제 [상]

다음 중 MSA 아키텍처에서 Inner/Outer 구조를 적절히 설명한 것은?

A. Inner는 메시징 브로커를 포함하며 Outer는 회원 도메인 로직을 포함한다
B. Inner는 각 도메인 서비스의 비즈니스 로직이며 Outer는 공통 인프라 기능이다
C. Outer는 Product/Order/Delivery 서비스를 포함한다
D. Inner는 CI/CD 파이프라인, Outer는 API Gateway를 담당한다

정답: B
해설: Inner는 도메인 중심, Outer는 인증, 메시징, 모니터링 등 공통 인프라 계층이다.


🧠 암기카드 요약

키워드설명
Inner Architecture 도메인 중심 서비스 계층 (비즈니스 로직, DB 포함)
Outer Architecture API Gateway, 인증, 메시징 등 공통 인프라 계층
관심사 분리 인프라와 도메인을 명확히 구분
API Gateway Outer에 위치, 인증/라우팅 담당
서비스 디스커버리 Outer에서 Inner 연결을 동적으로 수행

📌 실전 설계 팁 (TA/아키텍처 평가 대비)

  • MSA 도입 시 반드시 Inner/Outer 구조로 나누고 설계 의도를 문서화
  • Outer 기능은 독립적으로 장애 분석 및 이중화 설계 필요 (Ex. Redis, Kafka)
  • Inner 간 동기 → 비동기 전환 시 Outer 구성 요소(Kafka 등) 적극 활용

Inner/Outer 구조는 특히 **클라우드 네이티브 환경(Kubernetes, Service Mesh, API Gateway 등)**에서 더 명확히 구분되며, 장애 대응, 확장성, 이중화 측면에서 핵심 개념입니다.

+ Recent posts