91
2
장
마이크로서비스 모델링 방법
통과 결합을 줄이는 데 유용한 마지막 방법은 주문 처리기가 여전히 창고를 통해 배송 마이크
로서비스로 배송 목록을 보내지만 창고가 배송 목록 자체의 구조를 전혀 알지 못하게 하는 것
이다. 주문 처리기는 주문 요청의 일부로 배송 목록을 보내더라도 창고 서비스가 그 필드를 보
거나 처리하지 못하게 한다 (데이터 덩어리로만 취급하고 내용은 신경 쓰지 않으며, 단지 전달
만 한다). 배송 목록의 형식을 변경하려면 주문 프로세스와 배송 마이크로서비스를 모두 변경
해야 하지만, 창고 서비스는 실제로 그 목록의 내용물에는 관심이 없기 때문에 변경할 필요가
없다.
2.3.32.3.3
공통 결합 공통 결합
공통 결합공통 결합
common
coupling
은 둘 이상의 마이크로서비스가 공통 데이터 집합을 사용할 때 발생한다.
이러한 결합 형태의 단순하고 일반적인 예는 동일한 공유 데이터베이스를 여러 마이크로서비
스가 사용하는 경우지만, 공유 메모리나 공유 파일 시스템을 사용하는 경우도 해당될 수 있다.
공통 결합의 주요 문제점은 데이터 구조를 변경하면 한 번에 여러 마이크로서비스에 영향을 미
친다는 것이다. [그림
2
-
7
]과 같은 일부 뮤직코프 서비스의 예를 생각해보자. 앞서 설명한 것
처럼 뮤직코프는 전 세계에서 사업을 운영하고 있으므로 사업을 영위하는 국가에 대한 다양한
정보가 필요하다. 이 예에서는 여러 서비스가 모두 공유된 데이터베이스에서 정적 참조 데이터
를 읽고 있다. 따라서 이 데이터베이스의 스키마가 하위 호환되지 ...