개발하는 Spring 서버에서 다른 서버에 api를 요청해야 할 일이 있다면, 아래와 같이 여러가지 방법이 있다.

HttpClient는 너무 low level이고, RestTemplate은 Spring 5.0부터 legacy library로 간주됬기 때문에 제외하겠다.
이 포스트에서는 주로 사용되는 FeignClient와 WebClient에 대해서만 다룰 것이다. FeignReactive는 FeignClient를 WebClient처럼 비동기방식으로 처리하기 위해 만들어진 비공식 라이브러리이다.
reactive programming이란 데이터의 흐름에 초점을 맞춰 개발하는 방식이다. 데이터를 비동기적으로 처리하고, 이벤트 기반 아키텍처를 이용해 실시간으로 데이터의 변화에 반응할 수 있게 프로그래밍하는 것이라 보면 된다.
간단히 생각한다면 api 요청을 동기/비동기로 처리할 것인지에 따라 선택하자.
비동기 요청, 즉 reactive programming 방식을 따를 것이라면 WebClient를 사용하자.
하지만 굳이 그럴 필요없이 동기 요청을 할 것이라면 FeignClient를 쓰는 쪽이 더 간단할 것이다.