OpenAPI를 호출하기 위한 여러 도구를 찾다가 WebClient 까지 오게 됐다.
그런데.. WebClient, RestTemplate, RestClient 등등 헷갈리는게 생각보다 많았다.
찾아본걸 정리하지 않으면 잊어버릴것같아서 포스팅으로 정리하려고 한다.
WebClient와 관련된 내용을 찾아보면 RestTemplate는 deprecated 될 예정이고, "WebClient의 성능이 더 좋으니 WebClient를 사용해라" 라는 내용들이 많았다.
하지만, 실제 Spring 6.X 소스에서 RestTemplate는 여전히 남아있고, deprecated에 대한 언급은 없었다.
실제로 토비님께서 유튜브 올려주신 내용을 보면 더 자세히 알 수 있다.
결론 : WebClient가 성능이 더 나을 순 있으나, servlet을 이용한 Spring 프로젝트에서는 사용이 어렵고, deprecated에 대한 내용도 없다.
그리고 WebClient를 사용하기 위해서는 webflux 모듈을 추가해야 하므로 부담이 크다.
RestTemplate, WebClient, RestClient는 모두 같은 기술을 의미한다.
다만, 아래와 같이 정리할 수 있겠다.
RestTemplate : httpRequest를 요청하기 위해 가장 간단한 방법
WebClient : 동기 방식의 RestTemplate를 대체할 WebFlux모듈에 추가된 동기/비동기 방식을 모두 지원하는 RestTemplate
RestClient : WebFlux에 있는 WebClient의 사용이 부담스러우나, 모던한 방식(체이닝 함수..?)와 같이 현대적인 사용 방법을 지원하는 RestTemplate
https://leeggmin.tistory.com/11
https://www.youtube.com/watch?v=S4W3cJOuLrU
https://velog.io/@greentea/WebClient-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
https://spring.academy/guides/spring-webclient-gs
https://docs.spring.io/spring-framework/reference/web/webflux-webclient/client-builder.html
https://poalim.tistory.com/59