Spring WebFlux란?
*리엑티브 프로그래밍이란 ? - 비동기 및 이벤트 기반 애플리케이션을 개발하기 위한 패러다임으로, 주로 높은 확장성과 성능을 제공하는것
내부통신을 이용하여 API프로젝트와 통신할때 주소 맵핑이 어떻게 이루어지는지?? - Spring WebClient를 이용하여 내부 통신을 한다.
SpringWebFlux의 일부로써, 비동기적인 방식으로 HTTP 요청을 보내고 응답을 받을 수 있는 라이브러리이다.
웹으로 API를 호출하기 위해 사용되는 HTTP Client모듈 중 하나이다.
RestTemplate과 같은 기능을 하지만, RestTemplate는 Blocking 방식이고, WebClient는 Non-Blocking방식이다. Blocking 동기 - Non-Blocking 비동기 ( 정확히 같은것은 아니지만 비슷하다 ? )
요청자(APP)에서 WebClient라이브러리를 사용한 senderUtils를 사용하여 프로퍼티 소스와, 송신방식(GET/POST), 넘길 값(DTO), request를 수신할 값(ApiResponseModel)을 설정한다.
-SpringMVC에서는 WebFlux와 달리, 블로킹I/O를 사용하기 때문에, 동기적인 작업을 수행할 떄에는 WebClient보다 RestTemplat이 효과적이지만, 비동기 작업을 할 때에는 WebClient를 사용하는것이 효과적이다.