콘텐츠로 바로가기

Microservices Decomposition

모놀리식 애플리케이션을 독립 배포 가능한 작은 서비스들로 분해하는 설계 결정.

sys.entry
M

Me

hyunyoun's Blog

system-architecture-distributed-systems1 min read

Microservices Decomposition

모놀리식 애플리케이션을 독립 배포 가능한 작은 서비스들로 분해하는 설계 결정.

분해 전략

도메인 기준 분해 (DDD Bounded Context): 비즈니스 도메인 경계를 서비스 경계로 매핑. 팀 자율성과 일치. Conway의 법칙: 시스템 구조가 조직 구조를 반영.

기능 기준 분해: 주문, 결제, 배송처럼 비즈니스 능력(Business Capability) 단위로 분리.

서비스 경계 설계 원칙

  • 높은 응집도: 한 서비스 내 변경이 다른 서비스를 건드리지 않아야 함
  • 낮은 결합도: 서비스 간 통신은 API나 이벤트로만. DB 공유 금지.
  • 독립 배포 가능: 각 서비스가 자체 CI/CD 파이프라인으로 배포

분해 실패 패턴

Distributed Monolith: 마이크로서비스로 나눴지만 동기 호출 체인이 길어 하나가 죽으면 전체 장애. 모놀리식의 단점 + 분산 시스템 복잡도를 동시에 가짐.

Chatty Services: 너무 잘게 나눠 네트워크 홉이 과다. 단일 요청에 10개 이상 서비스 호출.

연결 노트