Closed JunsuLime closed 2 years ago
전 구간 테스트는 분산 애플리케이션의 일부 컴포넌트를 변경하더라도 시스템이 동일한 결과를 반환하도록 보장해주므로 아주 중요하다. (End-to-end test)
전 구간 테스트는 비즈니스 기능 검증에 초점이 맞춰져있으며, 사용자의 관점에서 기능을 테스트한다.
일반적으로 소프트웨어의 일관성에 대해 이야기 할 때 "상태" 라는 용어를 사용한다.
분리된 마이크로서비스에서는 상태가 갱신 시 여러 마이크로서비스에 상태가 갱신되어야하기 때문에, 이 때 도달할 수 있는 가장 높은 수준의 일관성은 "결과적 일관성"이다.
그렇기 때문에 엄격한 일관성이 요구되는 마이크로서비스는 상태를 외부와 공유해서는 안된다.
마이크로서비스를 개발할 때 서로 다른 어플리케이션끼리의 통합을 어떤 방법으로 테스트할 것인가는 마이크로서비스의 또 하나의 걱정거리이다.
이를 해결하기위한 유명한 테스트 방법 중, "컨슈머 주도 계약 테스트" 라는 것이 있다.
http://www.servicedesignpatterns.com/WebServiceEvolution/ConsumerDrivenContracts
https://martinfowler.com/articles/consumerDrivenContracts.html
Provider
Consumer
Consumer-Driven 세가지의 형태로 계약을 나눌 수 있다.
아니 봐도 모르것네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 천천히 한번 더 읽어보고 뒤의 예제 기반으로도 한번 더 보자!!
전 구간 테스트
전 구간 테스트는 비즈니스 기능 검증에 초점이 맞춰져있으며, 사용자의 관점에서 기능을 테스트한다.
일반적으로 소프트웨어의 일관성에 대해 이야기 할 때 "상태" 라는 용어를 사용한다.
분리된 마이크로서비스에서는 상태가 갱신 시 여러 마이크로서비스에 상태가 갱신되어야하기 때문에, 이 때 도달할 수 있는 가장 높은 수준의 일관성은 "결과적 일관성"이다.
그렇기 때문에 엄격한 일관성이 요구되는 마이크로서비스는 상태를 외부와 공유해서는 안된다.
이를 해결하기위한 유명한 테스트 방법 중, "컨슈머 주도 계약 테스트" 라는 것이 있다.
컨슈머 주도 계약 테스트
http://www.servicedesignpatterns.com/WebServiceEvolution/ConsumerDrivenContracts
https://martinfowler.com/articles/consumerDrivenContracts.html
Provider
Consumer
Consumer-Driven 세가지의 형태로 계약을 나눌 수 있다.
아니 봐도 모르것네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 천천히 한번 더 읽어보고 뒤의 예제 기반으로도 한번 더 보자!!