328
이벤트 기반 마이크로서비스 구축
●
워커 인스턴스 장애를 일으켜 애플리케이션 인스턴스가 유실되는 상황을 모킹 (대용량 )
애플리케이션
애플리케이션 수준에서는 거의 대부분 특정 시간에 실행되는 인스턴스 수를 관리하는 방식
으로 제어합니다. 통합 테스트에 인스턴스 수를 (지원된다면 동적으로 ) 확장하는 테스트를
포함시켜 다음과 같은 사항을 확인합니다.
●
리밸런스가 예상대로 일어나는가?
●
체크포인트 또는 체인지로그 스트림에서 내부 상태가 복구되는가? 데이터 지역성은 유지
되는가?
●
외부 상태 접근에 영향이 없나?
●
애플리케이션 인스턴스 수를 변경해도 상태 저장 데이터에 대한 요청-응답 접근에 별다
른 영향이 없는가?
이렇게 모든 시스템을 완벽하게 제어하면 마이크로서비스가 별의별 장애 상황이나 불리한 조
건, 그리고 처리 능력이 가변적인 경우에도 잘 동작하게 만들 수 있습니다.
로컬 통합 테스트는 크게 두 가지 방법으로 수행합니다. 첫째, 여러분이 작성한 코드에 테스트
라이브러리를 임베드합니다. 언어와 프레임워크 모두 지원이 돼야 가능한 방법이므로 모든 마
이크로서비스에 적용 가능한 것은 아닙니다. 둘째, 필요한 각 컴포넌트를 설치하고 원하는 대
로 제어 가능한 로컬 환경을 구축합니다. 이 두 가지 방법을 하나씩 살펴본 다음, 이어서 호스
티드 서비스 기반으로 마이크로서비스를 테스트하는 방법을 설명하겠습니다.
15.6.1
테스트 코드 런타임 내부에 임시 환경 만들기
애플리케이션과 동일한 코드 내부에서 테스트 코드가 필요한 컴포넌트를