본문 바로가기
Dev/Article

MSA 아키텍처(Microservices Architecture)

by Luigi.yoon 2025. 5. 30.

MSA(Microservices Architecture) 정의

**MSA(Microservices Architecture)**는
애플리케이션을 작고 독립적인 서비스들로 나누어 개발하고 운영하는 아키텍처 스타일입니다.
각 마이크로서비스는 독립적으로 배포 가능하며, 자기 자신만의 데이터 저장소와 로직, 그리고 개별 개발·운영 주기를 가집니다.

 

 

🎯 MSA의 핵심 특징

항목 설명
작은 서비스 단위 각각의 서비스가 하나의 비즈니스 기능 단위로 나뉨
독립 배포 가능 서비스 단위로 배포 가능 (CI/CD 자동화 용이)
개별 팀 관리 가능 기능별 팀이 독립적으로 관리 및 운영 가능
분산 시스템 기반 네트워크 통신 기반 (REST, gRPC, 메시지 큐 등)
폴리글랏 지원 언어, 데이터베이스, 프레임워크 모두 다양하게 사용 가능
 

📊 모놀리식 아키텍처 vs MSA 아키텍처 비교

항목 모놀리식 아키텍처 마이크로서비스 아키텍처 (MSA)
구성 방식 하나의 통합된 애플리케이션 여러 개의 독립된 서비스
배포 방식 전체 앱을 통째로 배포 서비스 단위로 독립 배포
개발 속도 초기 빠르지만 점점 느려짐 팀별로 병렬 개발 가능
확장성 전체 앱 단위로만 확장 서비스 단위로 세분화 확장
장애 영향 하나가 죽으면 전체 영향 하나 죽어도 전체 다운 방지 가능
운영 복잡도 단순 서비스 수 많아지면 복잡
기술 스택 통일된 기술 스택 서비스별로 다양 가능
테스트 단일 테스트 쉬움 E2E 테스트 복잡
학습 곡선 낮음 높음 (분산, 네트워크, 장애 처리 등)
 

🧱 MSA 구성 요소

구성 요소 설명
API Gateway 외부 요청을 각 서비스로 라우팅
Service Discovery 서비스 위치(주소)를 동적으로 탐색
Config Server 중앙에서 설정을 관리
Circuit Breaker 장애 전파 방지
Monitoring / Logging 분산 로그 추적, 메트릭 수집
Container / Orchestrator Docker, Kubernetes 등으로 배포 및 확장

 


 

그러나 많은 기업이 MSA 도입을 고민하다가 과도한 복잡성과 비용 때문에 실패하거나 후회하는 사례가 많습니다.

그럼에도 불구하고 MSA를 선택해야 하는 명확한 기준을 생각해 볼 필요가 있습니다.

 

✅ MSA 도입을 정당화할 수 있는 기준

판단 기준 설명
개발/배포 속도 병목 팀 규모가 커지고, 단일 배포로 인해 릴리스가 느리면 → 팀 단위 독립 배포 필요
서비스 간 책임 분리 명확 각 도메인(예: 결제, 로그인, 알림 등)이 독립적이고 재사용 가능하면 마이크로서비스화 가치 있음
고가용성과 확장성 중요 일부 서비스만 집중적으로 트래픽이 몰리는 경우 → 해당 서비스만 확장해야 효율적
장애 전파 리스크 크다 하나의 작은 오류가 전체 시스템 다운으로 이어진다면, 격리된 서비스로 전환 필요
조직이 기능별로 나뉘어 있음 백엔드, 데이터팀, 결제팀 등 기능 중심 조직이면 서비스 분리로 효율 향상 가능
이기종 기술 필요 서비스마다 최적 기술 스택이 다르거나 폴리글랏 환경이 필요할 경우
장기적인 유지보수 고려 모놀리식으로는 장기 운영이 어려울 만큼 코드베이스가 커지거나 변경이 자주 발생할 경우
 

❗ “하지 말아야 할” 상황도 분명 존재

상황 이유
팀 규모가 작고 도메인이 단순함 오히려 MSA는 과한 선택 (모놀리식이 더 효율적)
인프라/자동화 성숙도가 낮음 CI/CD, 모니터링 없이는 오히려 운영 부담만 증가
경험 없는 팀이 무작정 도입 로깅, 트레이싱, 트래픽 라우팅 등 준비 부족으로 실패 확률 큼
아직 기능 요구가 자주 변함 빠른 개발을 위해선 모놀리식이 더 유리할 수 있음
 

 

 

MSA는 궁극적인 목표가 아니라, 문제 해결 수단입니다.
다음과 같은 경우에만 비용을 감수할 가치가 있습니다:

  • 독립 배포로 병렬 개발이 필수적일 때
  • 일부 서비스만 고성능 확장이 필요할 때
  • 조직이 크고 책임 구분이 명확할 때
  • 서비스가 커지고 복잡성이 더는 감당되지 않을 때

그 외에는 모놀리식 + 잘 관리된 모듈 구조로도 충분히 운영 가능하며, MSA는 도입이 아니라 운영이 더 어려운 모델임을 항상 기억해야 합니다.