핵심 인사이트

  1. 본질: MSA (Microservice Architecture)는 하나의 모놀리틱(Monolithic) 애플리케이션을 독립적으로 배포 가능한 작은 서비스들로 분해하여, 서비스별 독립적 개발·배포·확장·장애 격리를 실현하는 아키텍처 스타일이다.
  2. 가치: 넷플릭스·아마존의 사례처럼 조직 규모와 배포 속도가 임계점을 넘으면 모놀리식의 배포 병목과 장애 전파가 비즈니스 리스크가 되므로, MSA로 전환하여 팀 자율성과 배포 민첩성을 확보한다.
  3. 판단 포인트: MSA는 조직 구조(콘웨이의 법칙)와 일치해야 한다. 각 마이크로서비스는 하나의 피자 두 판을 먹을 수 있는 팀(Two-Pizza Team, 5~8명)이 독립적으로 소유·운영한다.

Ⅰ. 개요 및 필요성

모놀리식에서 MSA로 전환하는 것을 '스트랭글러 피그 패턴'이라고 한다. 한 번에 전체를 전환하지 않고, 기능을 하나씩 서비스로 분리하면서 점진적으로 모놀리식을 대체한다.

📢 섹션 요약 비유: MSA는 레스토랑의 분업이다. 주방(주문), 바(결제), 케이터링(배달)이 독립적으로 운영되어 하나가 문제가 생겨도 다른 팀은 계속 일한다.

Ⅱ. 아키텍처 및 핵심 원리

┌──────────────────────────────────────────────┐
│  모놀리식 vs MSA 비교                        │
├──────────────────┬───────────────────────────┤
│  모놀리식         │  MSA                      │
├──────────────────┼───────────────────────────┤
│  단일 코드베이스  │  서비스별 독립 저장소     │
│  공유 DB         │  서비스별 DB(폴리글랏)    │
│  일체형 배포      │  독립 배포 (CI/CD)        │
│  수직 확장        │  수평 확장 (오토스케일링)  │
└──────────────────┴───────────────────────────┘
MSA 핵심 원칙설명
단일 책임하나의 서비스가 하나의 비즈니스 역할
폴리글랏서비스마다 최적 기술 스택 선택
장애 격리하나의 서비스 장애가 전체에 전파 안 됨

📢 섹션 요약 비유: 폴리글랏은 각 서비스팀이 최적의 도구(Java, Go, Python)를 선택하는 자유다.

Ⅲ. 비교 및 연결

구분모놀리식MSA
배포전체 동시서비스별 독립
확장전체 스케일업서비스별 스케일아웃
복잡성코드 복잡운영 복잡

📢 섹션 요약 비유: 모놀리식 vs MSA는 대형마트 vs 전문점 거리다. 대형마트(모놀리식)는 편하지만 한 코너가 문제면 전체 영향, 전문점 거리(MSA)는 각 가게가 독립적이다.

Ⅳ. 실무 적용 및 기술사 판단

쿠팡·배달의민족의 사례: 주문·결제·배달 서비스를 독립 MSA로 분리하여 쇼핑 시즌(블랙프라이데이) 때 결제 서비스만 100배 스케일아웃이 가능해졌다.

기술사 시험에서 이 개념의 정의·구성·비교·기대효과를 논하는 문제가 출제된다.

📢 섹션 요약 비유: MSA의 운영 복잡성은 분산 트랜잭션, 서비스 메시, 관찰 가능성(Observability) 도구로 관리한다.

Ⅴ. 기대효과 및 결론

MSA 도입으로 배포 속도 향상(하루 수백 회 배포 가능), 장애 격리, 팀 자율성 확보, 기술 다양성(폴리글랏) 실현이 달성된다.

📢 섹션 요약 비유: MSA는 도시 계획이다. 각 지역(서비스)이 독립적으로 발전하지만 교통망(API)으로 연결된 유기적 도시다.

📌 관련 개념 맵

개념설명연관 키워드
DDD도메인 주도 설계 - MSA 경계 정의바운디드 컨텍스트
Kubernetes컨테이너 오케스트레이션MSA 운영 플랫폼
서비스 메시Istio - MSA 통신 제어사이드카 패턴

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

  1. MSA는 LEGO 세트처럼 작은 블록(서비스)들이 모여 큰 제품(애플리케이션)을 만드는 방법이에요.
  2. 하나의 블록이 부서져도 다른 블록들은 멀쩡하게 동작해요. 그게 MSA의 장애 격리예요.
  3. 각 팀이 자기 블록을 알아서 만들고 업데이트할 수 있어서 훨씬 빠르게 개발할 수 있어요.