
121
4
장
모놀리스 해부
아키텍처
service
oriented
architecture
(
SOA
)의 진화물이며 애플리케이션을 경량 모듈형 서비스 집합
으로 재배치한다. 기술적인 면에서 마이크로서비스는
SOA
구현의 특수한 일종이라 볼 수 있다.
마이크로서비스는 작고 느슨하게 결합된 컴포넌트들이다. 각 컴포넌트는 모놀리스와 달리 독
립적으로 배포, 확장, 테스트할 수 있으며 콘텍스트의 경계 안에서 단일 책임 원칙을 따른다.
또한 자율성이 보장되며 분산하기 쉽다. 일반적으로 마이크로서비스는 비즈니스 기능에 맞추
어 구축하므로 이해하기 쉽고 컴포넌트 각각을 서로 다른 기술 스택으로 개발할 수 있다.
마이크로서비스가 갖추어야 할
작은 크기작은 크기
의 기준은 무엇일까? 마이크로서비스는 원자 단위로
엄격하게 제한된 기능을 수행하며 자립성을 유지해야 한다. 또한 비즈니스 요구 사항에 따라
이전 기능과 공존하거나 개선 및 대체될 수 있어야 한다.
각 컴포넌트나 서비스는 다른 컴포넌트에 대해 거의 알지 못하거나 완전히 무지해야 한다. 또
한 각각의 세부 구현을 캡슐화시킨
API
를 통해 상호작용한다. 마이크로서비스는 간단한 프로
토콜로 서로 메시지를 주고받으며 일반적으로 데이터 부하도 적다.
4.2.1 4.2.1
안티패턴안티패턴
마이크로서비스 패턴은 복잡도를 높이는 경향이 있어 모든 ...