74
1
부
기초
는 점도 익히 알려져 있다. 엔드투엔드 테스트는 사용자와 동일한 방식으로 시스템을 사용함으
로써 얻게 되는 확신 때문에 수행할 만한 가치가 있다.
하지만 마이크로서비스 아키텍처에서 엔드투엔드 테스트의 범위는 상당히 늘어난다. 이제 테
스트 시나리오에 맞게 배포하고 적절히 구성해야 하는 여러 프로세스에서 테스트를 실행해야
한다. 또한 서비스 인스턴스가 죽거나 실패한 배포에 대한 네트워크 타임아웃이 발생하는 등의
환경적 이슈로 인해 테스트가 실패하는 거짓 음성
false
negative
결과에도 대비해야 한다.
이러한 부담은 마이크로서비스 아키텍처가 성장함에 따라 엔드투엔드 테스트와 관련한 투자
수익이 감소한다는 것을 의미한다. 테스트 비용이 더 들지만 과거와 같은 수준의 확신을 얻지
는 못한다. 따라서 계약 주도 테스팅
contract
-
driven
testing
이나 운영 환경 내 테스팅 같은 새로운 형
태의 테스팅은 물론 병렬 실행이나 카나리아 릴리스
canary
release
같은 점진적 배포 기술 탐구로
나아가야 한다. 이러한 기술은
8
장에서 다룬다.
1.6.81.6.8
지연 시간 지연 시간
마이크로서비스 아키텍처를 사용하면, 로컬에서 한 프로세서로 수행하던 처리
processing
를 여러
개별 마이크로서비스로 분할해 처리할 수 있다. 이전에는 단일 프로세스 내에서만 이동하던 정
보를 그 어느 때보다 사용 기회가 많은 네트워크를 통해 직렬화하고 전송하며 역직렬화해야 한
다. 이 모든 것은 시스템의 지연 시간
latency
을