MSA가 뭐냐 (Microservices Architecture)

 

MSA = 하나의 큰 시스템을, 작고 독립적인 서비스 여러 개로 쪼개는 방식입니다.

  • 기존: 하나의 모놀리식 애플리케이션
  • MSA: 여러 개의 독립 서비스가 네트워크(API)로 통신

핵심 한 줄 요약:

“기능 단위가 아니라 ‘서비스 단위’로 시스템을 쪼갠 구조”

 

 

MSA 아키텍처가 뭐냐

MSA 아키텍처

*“마이크로서비스들을 어떻게 나누고, 어떻게 연결하고, 어떻게 운영할 것인가”*에 대한 전체 설계 원칙과 구조

기본 구성요소 (실무 기준)

  1. Service
    • 하나의 비즈니스 책임만 가짐
    • 예: 회원서비스 / 결제서비스 / 주문서비스
    • 각자 DB를 가짐 (중요)
  2. API 통신
    • REST / gRPC / 메시지 큐
    • 서비스 간 직접 DB 접근 금지
  3. API Gateway
    • 외부 요청의 진입점
    • 인증, 라우팅, 로깅 처리
  4. Service Discovery
    • 서비스 위치 자동 탐색
    • (예: Eureka, Consul)
  5. 독립 배포
    • 서비스 하나만 수정 → 그 서비스만 배포

모놀리식 vs MSA (현실 비교)

항목                                          모놀리식                                                             MSA

 

배포 전체 재배포 서비스 단위
장애 전체 영향 부분 영향
개발 빠름(초기) 느림(초기)
운영 단순 복잡
조직 소규모 팀 분리 전제

👉 중요 포인트

  • MSA는 기술 문제가 아니라 조직/운영 문제
  • 팀 구조가 안 맞으면 100% 실패

많은 SI에서 말하는 “MSA”의 실체

현실적으로 많이 나오는 것:

가짜 MSA

  • 패키지만 나눔
  • DB 공유
  • 배포는 한 번에
  • → 이건 분산 모놀리식

진짜 MSA

  • DB 분리
  • 배포 분리
  • 장애 격리
  • 팀 책임 분리


SI + 공공 + 일정 빡빡 + 운영 인력 적음

풀 MSA는 리스크 큼

현실적 선택:

  • 모듈러 모놀리식
  • 또는 핵심 1~2개 서비스만 MSA
  •  

LIST

+ Recent posts