195
5
장
마이크로서비스의 통신 구현
가능한 스키마 기술을 정의하게 된다. 원시
XML
로 작업할 경우
XSD
XML
Schema
Definition
를 사용
하고 원시
JSON
으로 작업한다면
JSON
스키마
JSON
Schema
를 사용한다. 우리가 다룬 기술 선택
지 중 일부 (특히
RPC
종류의 상당수 )는 명시적 스키마를 필요로 하므로 해당 기술을 선택한
다면 스키마를 사용해야 한다.
SOAP
는
WSDL
로 동작하고,
gRPC
는 프로토콜 버퍼 명세가
필요하다. 지금까지 살펴본 다른 기술에서 스키마는 선택 사항으로 돼 있는데, 이 부분에서 더
흥미로운 점이 있다.
이미 논의한 것처럼, 필자는 두 가지 주요한 이유로 마이크로서비스의 엔드포인트에 명시적 스
키마를 사용하는 방식을 선호한다. 우선, 스키마는 마이크로서비스 엔드포인트가 노출하는 것
과 수용할 수 있는 것을 명시적으로 표현하는 데 중요한 역할을 한다. 이는 마이크로서비스에
종사하는 개발자와 소비자 모두가 좀 더 편리한 삶을 누리게 해준다. 스키마가 좋은 문서의 필
요성을 대체하지는 못하더라도 필요한 문서의 양을 줄이는 데는 확실히 도움이 될 것이다.
필자가 명시적 스키마를 선호하는 또 다른 이유는 마이크로서비스의 엔드포인트가 우발적으로
파손 (고장 )되는 것을 탐지하는 데 도움이 되기 때문이다. 마이크로서비스 간의 변경 사항을
처리하는 방법을 곧 다루겠지만, 그에 앞서 다양한 파손 유형과 스키마의 역할을 살펴보는 것
이 좋겠다.
5.4.15.4.1
구조적 계약 위반 대 구조적 계약 ...