👩🏻‍💻 Programming/SpringBoot

RestTemplate과 WebClient

한국의 메타몽 2021. 8. 22. 21:55

 

WebClient란?

 

RestTemplate과 거의 흡사한 개념이다.

 

RestTemplate

RestTemplate이란? RestTemplate restTemplate = new RestTemplate(); 간편하게 Rest방식의 API를 호출할 수 있는 Spring 내장 클래스입니다. Spring 3.0부터 지원이 되며, Json, Xml 응답을 모두 받을 수 있습니..

astrid-dm.tistory.com

 

다만 RestTemplate보다 WebClient가 보다 늦게 등장했으며, 

향후 RestTemplate은 Deprecated되고 WebClient가 RestTemplate을 대체할 예정이다.

 

(출처 : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html)

 

 

RestTemplate와 차이점은?

 

Rest Template은 Synchronous하고 blocking하다. 즉, web에서 서비스를 요청하고 다음 행동을 하려면 response가 올때까지 우선 기다려야 다음행동이 가능하다는 소리다.

 

WebClient는 그 반대로 Asynchronous하다. 호출한 사람이 responser가 올때까지 기다리지 않아도 reponse가 오면 알림을 받는다.

 

참고로 WebClient는 RestTemplate이 지원하는 것 처럼 Synchronous하게 활용할 수도 있으니, RestTemplate와 대비했을때 기능적인 면에서 상위호환격으로 볼 수 있다.

 

 

참고 자료 출처

 

JUNEYR님 - RestTemplate 말고 WebClient

 

RestTemplate 말고 WebClient

가장 먼저 코드로 본 web 요청 인터페이스는 WebClient였고, 명확하고 직관적이여서 자주 썼다. 그런데 현재 프로젝트에서는 RestTemplate과 WebClient가 혼재되어있어서, 이 둘에 대해서 조금 알아볼까

juneyr.dev