203
5
장
마이크로서비스의 통신 구현
아니면 애초에 스키마를 사용하지 않았다면 어떨까? 그렇다면 테스트를 살펴봐야 한다. 이는
9
.
5
.
1
절 ‘계약 테스트와 소비자 주도 계약’에서 더 자세히 탐구할 주제지만, 이 분야에서 분명
하게 도움이 되는 소비자 주도 계약 테스트를 잠시 강조하고 싶었다. 팩트
Pact
는 특히 이 문제를
겨냥한 도구의 훌륭한 예다. 스키마가 없다면 테스트가 중단 변경을 포착하기 위해 더 많은 작
업을 수행해야 한다는 점을 기억하라.
여러 개의 서로 다른 클라이언트 라이브러리를 지원하는 경우, 최신 서비스를 지원하는 각 라
이브러리를 사용해 테스트를 수행하는 것도 도움이 되는 또 다른 기법이다. 소비자를 중단시킬
것이라는 사실을 알게 되면, 중단을 완전히 피하거나 아니면 중단될 것을 받아들이고 소비자
서비스를 관리하는 사람들과 올바른 대화를 시작해야 한다.
5.75.7
중단 변경 관리하기 중단 변경 관리하기
마이크로서비스 인터페이스에 대한 변경 사항이 하위 호환성을 보장하도록 최대한 노력했지
만, 중단 변경이 필요한 변경을 해야 한다는 사실을 알게 됐다. 이러한 상황에서는 어떻게 해야
할까? 다음 세 가지 큰 선택지가 있다.
락스텝 배포
lockstep
deployment
인터페이스를 노출하는 마이크로서비스와 이 인터페이스의 모든 소비자를 동시에 변경하는 것이
요구된다.
호환되지 않는 마이크로서비스 버전의 공존
마이크로서비스의 이전 버전과 새 버전을 나란히 실행한다.
기존 인터페이스 에뮬레이션
마이크로서비스가 새 인터페이스를 ...