System Architecture · 한장정리
[기술사토픽] MSA(마이크로서비스 아키텍처) 완벽 정리 - 한장정리
모놀리식 vs MSA 비교, API게이트웨이·서비스메시·서비스디스커버리 구성요소, Circuit Breaker·Saga 패턴까지 완벽 정리합니다.
Ⅰ.독립 서비스 아키텍처 — MSA
개념: MSA(Microservice Architecture)는 애플리케이션을 독립적으로 배포 가능한 소규모 서비스의 집합으로 구성하는 아키텍처 스타일입니다. Martin Fowler와 James Lewis가 2014년 정립했습니다.
핵심 원칙: 각 서비스는 (1) 단일 비즈니스 기능만 담당 (2) 독립 배포 가능 (3) 자체 데이터 저장소 보유 (4) API로만 통신
가. 모놀리식 vs MSA 비교
| 구분 | 모놀리식 | MSA |
|---|---|---|
| 배포 단위 | 전체 애플리케이션 | 개별 서비스 |
| 확장 방식 | 전체 수평 확장 | 필요한 서비스만 확장 |
| 기술 스택 | 단일 언어·프레임워크 | 서비스별 최적 기술 선택 |
| 장애 격리 | 하나가 전체에 영향 | 서비스별 독립 장애 |
| 복잡도 | 코드 복잡도 | 운영·네트워크 복잡도 |
| 적합 규모 | 소규모·초기 단계 | 대규모·복잡한 도메인 |
Ⅱ.MSA 핵심 구성 요소 & 패턴
| 구성 요소 | 역할 | 대표 도구 |
|---|---|---|
| API 게이트웨이 | 단일 진입점. 라우팅·인증·로드밸런싱 | Kong, AWS API GW, NGINX |
| 서비스 디스커버리 | 서비스 위치 동적 탐색 | Consul, Eureka, etcd |
| 메시지 브로커 | 비동기 서비스 간 통신 | Kafka, RabbitMQ |
| 서비스 메시 | 서비스 간 통신 관리·모니터링 | Istio, Linkerd |
| 분산 추적 | 요청 흐름 추적·모니터링 | Zipkin, Jaeger |
| 컨테이너 오케스트레이션 | 서비스 배포·확장·관리 | Kubernetes |
나. MSA 주요 패턴
| 패턴 | 목적 | 설명 |
|---|---|---|
| Circuit Breaker | 장애 전파 방지 | 서비스 장애 시 빠른 실패로 전체 장애 방지 |
| Saga | 분산 트랜잭션 | 로컬 트랜잭션 체인으로 ACID 대체 |
| Strangler Fig | 모놀리식 전환 | 기존 기능을 점진적으로 MSA로 이전 |
| BFF | 클라이언트별 API | Backend for Frontend — 클라이언트 맞춤 API |
시험 포인트
MSA 3대 원칙: ① 서비스 독립 배포 ② 분산 데이터 관리 ③ 장애 격리
단점: 분산 시스템 복잡도, 네트워크 레이턴시, 데이터 일관성 관리 어려움.
Ⅲ.결론
결론
MSA는 조직과 기술의 독립적 진화를 가능하게 하는 현대 아키텍처의 표준입니다.
Conway의 법칙: 시스템 구조는 조직 구조를 따른다 — MSA는 소규모 자율 팀 조직과 정렬될 때 효과 극대화.
"MSA를 도입하기 전에 모놀리식을 먼저 잘 만들어라. 복잡한 시스템을 MSA로 시작하면 더 복잡해진다." — Martin Fowler
블로그: 기술사 학습노트 · imt-log.tistory.com
'시스템아키텍처' 카테고리의 다른 글
| ISO 42010 아키텍처 기술과 ISO 12207 생명주기 정리 (0) | 2026.04.06 |
|---|---|
| ISO 15504(SPICE) 소프트웨어 프로세스 평가 정리 (1) | 2026.04.04 |
| 프로세스·스레드 멀티태스킹·컨텍스트 스위칭 정리 (0) | 2026.04.03 |
| SOA·ESB 웹서비스 아키텍처 개념과 비교 정리 (0) | 2026.04.03 |
| 운영체제(OS) 핵심 개념과 구조 완벽 정리 (0) | 2026.04.02 |