82
클라우드 네이티브 애플리케이션 디자인 패턴
야 하기 때문입니다. 비동기 통신을 구성하는 모든 요소가 서로 의존성이 없기 때문에, 비동기
메시징 기능을 유닛 테스트로 검사하는 것은 정말 어렵습니다. 그래서 비동기 통신 시나리오
는 세부 단계로 나누고 생산자 서비스가 필요한 메시지를 만들어서 브로커에게 제대로 전달하
는지, 브로커에서 메시지를 전달받고 소비해서 메시지를 검사하는 식으로 테스트해야 합니다.
마찬가지로 소비자의 비즈니스 로직은 브로커로부터 동일한 메시지를 전달받아서 테스트할 수
있습니다.
이렇게 세분화해서 테스트하면 생산자와 소비자가 제대로 동작하는지 테스트할 수 있지만, 종
단간 통신이라는 관점에서는 단일 환경에서 생산자와 소비자, 브로커를 한꺼번에 테스트해야
할 필요도 있습니다. 생산자와 소비자에게 필요한 설정에 따라 테스트 환경을 구성하고 테스트
하는 것은 본질적으로 통합 테스트라고 할 수 있습니다. 이런 통합 테스트는 도커 컴포즈
docker
Compose
나 쿠버네티스를 통해 자동화할 수 있습니다.
2.7
보안
어떤 애플리케이션이라도 안전한 통신 패턴 구현은 필수 사항입니다. 사용하는 통신 패턴에 따
라서 클라우드 네이티브 애플리케이션을 안전하게 만드는 방법 역시 조금씩 다릅니다. 동기 메
시징 패턴의 경우
TLS
Transport
Layer
Security
로 마이크로서비스 간 통신 채널을 안전하게 합니다.
RESTful
이나
gRPC
,
GraphQL
등 모든 동기 메시징 기술에
TLS
를 적용할 수 있습니다. 동기
메시징에는 ...