MSA 6원칙(마이크로서비스 아키텍처의 6가지 설계 원칙)
하나의 거대한 애플리케이션(모놀리식)을 여러 개의 작고 독립적인 서비스로 나눠 설계하는 마이크로서비스 아키텍처(MSA)에서, 서비스를 어떻게 나누고 운영해야 하는지를 정리한 여섯 가지 핵심 설계 원칙입니다.
한눈에 보는 정의
MSA 6원칙은 하나의 거대한 시스템을 작은 서비스 단위로 나눠 설계할 때 지켜야 할 여섯 가지 핵심 원칙으로, 서비스 분리부터 장애 대응까지 설계 전반을 아우릅니다.
자세히 알아보기
- 예문: "신규 시스템을 모놀리식에서 MSA로 전환하는 프로젝트는, MSA 6원칙을 기준으로 서비스를 어떻게 나눌지부터 정리하며 시작됐다."
- ① 서비스를 통한 컴포넌트화: 코드를 라이브러리로 묶는 대신, 독립적으로 배포할 수 있는 서비스 단위로 기능을 쪼갭니다. ② 비즈니스 역량 중심 구성: 기술 계층(화면, 로직, DB)이 아니라 '주문', '결제'처럼 실제 업무 단위로 서비스를 나눕니다.
- ③ 분산 거버넌스: 모든 서비스가 같은 언어·기술을 강제로 따르지 않고, 팀마다 가장 적합한 기술을 자율적으로 선택합니다. ④ 분산 데이터 관리: 서비스마다 자신의 데이터베이스를 따로 소유해, 한 서비스의 데이터 변경이 다른 서비스에 직접 영향을 주지 않게 합니다.
- ⑤ 인프라 자동화: CI/CD(지속적 통합·배포) (CI/CD)와 Container(컨테이너) (컨테이너) 기반으로 배포와 테스트를 자동화해, 서비스 수가 늘어나도 운영 부담이 과도하게 커지지 않게 합니다. ⑥ 장애를 고려한 설계: 하나의 서비스에 장애가 생겨도 전체 시스템이 함께 멈추지 않도록, 장애 격리와 복구 체계를 처음부터 설계에 반영합니다.
- 이 여섯 원칙은 마틴 파울러 등이 정리한 마이크로서비스의 특징에서 비롯됐으며, 서비스 간 통신은 API Gateway(API 게이트웨이) (API 게이트웨이)나 Service Mesh(서비스 메시) (서비스 메시) 같은 인프라로 뒷받침되는 경우가 많습니다.