인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

보라님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

테스트 수행도 비용이다. 환경 통합하기

msa프로젝트에서 kafka, feignClient 테스트

작성

·

77

0

안녕하세요~

강의가 넘 좋습니다!! 넘 재밌게 잘 들었어요~

 

msa프로젝트에서  kafka, feignClient는 테스트를 어떻게 진행하는지 궁금합니다.

 

(서비스단 테스트시 카프카를 mocking해서 테스트하는 것을 여쭙는게 아닙니당 ㅎㅎ)

저 자체는 테스트하지 않으시는지..?

 

실제로는 서비스 여러개 띄워놓고 메세지 발행이나 api 통신이 되는지 확인하고 있는데 테스트로도 할 수 있는 방법이 있나해서요.

 

현업에서는 어떻게 하는지 궁금합니다~

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 보라 님!

MSA 환경에서 서비스별 mocking 이 아닌 실제 전체 동작을 검증하는 자동화 테스트는, 상당히 복잡한 작업인데요.
불가능하지는 않지만, 서비스 특성에 따라 고려해야 할 점이 많습니다.

  • 어떤 것을 검증할 것인지를 구체적으로 정의해야 하고 (TC)

  • 검증 주기, 검증 방식 등을 고민해야 합니다.

예를 들어 A 서비스에 특정 API를 호출한 뒤, 일정 시간 후 B 서비스에 다른 API를 호출하여 원하는 형태로 상태가 반영되었는지 등을 검증할 수 있을텐데요.
여기서 '일정 시간'을 어느 정도 범위로 잡을 것인지, 또 말씀하신대로 kafka 등 메시지 플랫폼의 특성을 고려한 테스트 케이스 설계가 필요할 것입니다.
이런 테스트는 일정 주기마다 수행되도록 자동화할 수도 있고, 만약 어렵다면 필요할 때 사람이 수동으로 수행하여 검증할 수도 있겠습니다.

정리하면, 테스트해야 할 범위가 매우 크고 고려할 지점이 많기 때문에 구축 비용이 높다는 점, 상세한 TC 작성이 필요하고 검증 통과 허용 범위 등을 설계해야 한다는 점을 말씀드리고 싶네요.

도움이 되셨기를 바랍니다.
감사합니다 🙂

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.
보라님 질문 감사드립니다!

MSA 프로젝트에서 Kafka와 FeignClient의 테스트에 대한 방법을 설명드리겠습니다. 실제 여러 서비스를 띄워놓고 메시지 발행이나 API 통신을 확인하는 과정은 주로 통합 테스트나 E2E(종단간) 테스트로 설명됩니다.

Kafka 테스트 방법

  1. Kafka Embedded Broker: 테스트 환경에서 실제 Kafka Broker를 활용하지 않고 임베디드 Kafka를 사용하는 방식입니다. 이렇게 하면 테스트 중 메시지 발행 및 수신을 테스트할 수 있습니다.

  2. Containerization: testcontainers 라이브러리를 사용해서 Docker를 통해 Kafka 컨테이너를 띄우고 테스트를 수행할 수 있습니다.

FeignClient 테스트 방법

  1. Mocking: @MockBean을 사용해 FeignClient를 목킹하여 TestRestTemplate이나 WebTestClient를 사용해 테스트할 수 있습니다.

  2. Contract Test: 실제 서비스를 띄워놓고 통신이 정상적으로 되는지 확인하는 것이 가능하며, 이를 위해 Spring Cloud Contract 같은 계약 기반 테스트 도구를 사용할 수 있습니다.

현업에서는 테스트의 종류에 따라 다양한 방법이 활용됩니다. 오픈 소스 및 기능 테스트 라이브러리를 이용하여 컨테이너화 된 환경에서의 테스트도 고려하실 수 있습니다. Kafka나 FeignClient의 실제 통신을 검증하는 것은 별도의 통합 테스트 단계에서 이루어지고, 일반적으로는 각 서비스를 독립적으로 테스트합니다.

자세한 테스트 전략은 프로젝트의 요구사항이나 환경에 따라 다를 수 있습니다. 테스트 자동화를 통해 신뢰성을 높이는 것이 좋습니다.

추가적인 자료가 필요하시면, Spring Boot Reference Documentation에서 더 많은 정보를 확인하실 수 있습니다.

계속해서 질문 있으시면 언제든지 문의 주세요! 감사합니다. 😊

보라님의 프로필 이미지

작성한 질문수

질문하기