핵심 인사이트 (3줄 요약)
- 본질: SOA(Service Oriented Architecture)는 ESB(Enterprise Service Bus) 중심의 서비스 통합이고, MSA는 **ESB 없이 서비스가 직접 경량 통신(REST/gRPC/이벤트)**하는 경량 분산 아키텍처이다.
- 가치: SOA의 ESB는 프로토콜 변환·라우팅을 중앙에서 처리하지만, ESB가 SPOF(단일 장애점)·병목이 되며, MSA는 ESB를 제거하고 스마트 엔드포인트·덤 파이프 원칙으로 서비스 자율성을 극대화했다.
- 판단 포인트: SOA→MSA는 "ESB 제거 + 서비스 세분화 + DevOps 문화"의 진화이며, 서비스 크기·거버넌스·데이터 소유권에서 근본적 차이가 있다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ SOA vs MSA │
├───────────────────────────────────────────────────────┤
│ [SOA] [MSA] │
│ Service A ──┐ Service A ←→ Service B │
│ Service B ──┼── ESB ── Service C ←→ Service D │
│ Service C ──┘ (중앙) (직접 통신, ESB 없음) │
│ │
│ SOA: 중앙 ESB가 라우팅·변환 │
│ MSA: 서비스가 직접 REST/gRPC/Kafka │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: SOA는 중앙 교환원(ESB)이 모든 전화를 연결하는 시스템이고, MSA는 참가자가 직접 전화하는 시스템이다.
Ⅱ. 아키텍처 및 핵심 원리
SOA vs MSA 비교
| 비교 | SOA | MSA |
| 통합 | ESB (중앙) | API Gateway + 직접 |
| 서비스 크기 | 대형 | 소형 (단일 도메인) |
| DB | 공유 가능 | 서비스별 독립 |
| 거버넌스 | 중앙 | 분산 |
| 프로토콜 | SOAP/XML | REST/gRPC/JSON |
| 배포 | 앱 서버 | 컨테이너 |
- 📢 섹션 요약 비유: SOA는 대기업 본사(중앙 관리)이고, MSA는 프랜차이즈(각 지점 자율 운영)이다.
Ⅲ. 비교 및 연결
| 비교 | 모놀리식 | SOA | MSA |
| 분리 | 없음 | 서비스 | 마이크로 서비스 |
| 통합 | 내부 호출 | ESB | 경량 통신 |
| 데이터 | 공유 DB | 공유 가능 | 서비스별 DB |
Ⅳ. 실무 적용 및 기술사 판단
선택 기준
- SOA: 레거시 시스템 통합, 이기종 프로토콜 변환 필요 시.
- MSA: 클라우드 네이티브, 빠른 배포, 팀 자율성 필요 시.
Ⅴ. 기대효과 및 결론
SOA→MSA는 **"중앙 집중(ESB) → 분산 자율(Smart Endpoints)"**의 패러다임 전환이며, 현대 클라우드 네이티브 환경에서는 MSA가 표준이지만, 레거시 통합에는 SOA 접근이 여전히 유효하다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| ESB | SOA의 핵심 통합 미들웨어 |
| API Gateway | MSA의 외부 진입점 |
| SOAP/XML | SOA의 통신 프로토콜 |
| REST/gRPC | MSA의 경량 통신 |
| Service Mesh | MSA의 서비스 간 통신 인프라 |
📈 관련 키워드 및 발전 흐름도
[모놀리식 (전통)]
│
▼
[SOA + ESB (2005~) — 서비스 지향, SOAP/XML]
│
▼
[MSA (2014~) — ESB 제거, REST/gRPC, 컨테이너]
│
▼
[Service Mesh (Istio, 2018~) — MSA 통신 인프라]
│
▼
[현재: Modular Monolith — 상황별 최적 선택]
👶 어린이를 위한 3줄 비유 설명
- SOA는 **교환원(ESB)**이 모든 전화를 연결해주는 거예요. 교환원이 바쁘면 전화가 안 돼요.
- MSA는 교환원 없이 직접 전화하는 거예요. 더 빠르지만 전화번호부(Service Discovery)가 필요해요.
- 요즘은 직접 전화(MSA)가 대세지만, 옛날 전화기(레거시)는 교환원(SOA)이 필요할 때도 있어요!