MicroService Design Pattern ‐ DeComposition Patterns - thought-corner/Backend-PlayGround GitHub Wiki
MicroService Design Pattern - DeComposition Patterns
Decomposition 목적
- 서비스 분해 목적 → 독립적인 확장과 배포 필요
- MSA에서 어떤 부분이 독립적인 확장 및 배포가 필요한가를 명확하게 식별할 필요가 있다.
- 설계 원칙 - 요구사항에 따라 서비스 분해, 확장성 고려
CheckList 만들어보기
- 마이크로서비스는 "한 가지"에 집중해야 한다.
- 각 서비스에 대한 단일 책임
- 비즈니스 도메인 / Bounded Context / 하위 도메인 모델 패턴
- 마이크로서비스는 적당한 크기로 설계해야 한다.
- 신중하게 설계된 도메인 모델
- 각 서비스는 독립적으로 작업 가능한 소규모 팀에서 빌드 가능하도록 구현
- 많은 커뮤니케이션 피하기
- 하나의 기능을 2개의 서비스로 분할 후 각 서비스에 대한 잦은 커뮤니케이션을 지양한다.
- 종속성에 대한 제약을 없애기
- 서비스와 하위 서비스 간 종속성이 여러 개 있고, 이를 함께 배포해야 하는 경우는 재분할이 필요하다.
- 다른 서비스에 영향없이 마이크로서비스에 대한 배포가 가능해야 한다.
- 서비스가 밀접하게 결합되어선 안되며, 독립적으로 발전이 필요하다.
Practice - 예약 서비스