RestTemplate Vs WebClint 에 대해서

kkjj·2023년 11월 15일
0

부트캠프에서 프로젝트를 날씨에 맞춘 옷추천 프로젝트를 하게 되었다.
공공 api를 연동시켜 할려고 하다보니 모르는게 많고,헷갈리는것도 많아서 구글링을 하게 되었더니.... Spring 에서 RestTemplate을 사용하는것보단 webClint를 이용하는걸 더 권장한다고 한다. 사실은 둘의 차이를 크게 못느꼇다

RestTemplate

  • RestTemplate는 Spring 3.0 버전에 나온 Synchronous 클라이언트로 http 요청을 처리하기 위한 모듈 이다

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

문서에 보면 많은 modern API를 가지고 있고 동기, 비동기, 스트리밍 시나리오까지 가능한 WebClient를 쓰라고 추천해주고있는데 흐음.. 읽다보니 굳이..? 라는 생각이 들었다

WebClient

  • WebClient는 Spring 5.0부터 나온 RestTemplate 상위 호환 모듈이다.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/function/client/WebClient.html

  • 일단 보면 여러가지의 WebClient만의 장점을 볼수있었다.

1) 비동기 지원: WebClient는 비동기 및 리액티브 프로그래밍을 지원하고, 비동기 호출은 블로킹되지 않아 서비스 성능을 향상시킬수있다.

2)리액티브 프로그래밍 지원: WebClient는 스프링 5부터 지원되는 리액티브 프로그래밍 모델을 적극적으로 활용할 수 있다. 리액티브 프로그래밍은 데이터 스트림을 다루기에 효과적이며, 대량의 동시 요청을 처리하는 데 특히 유용하다.

3)모듈화 및 확장성: WebClient는 모듈화되어 있어서 필요한 기능만 선택적으로 사용할 수 있다. 또한, 다양한 확장 모듈을 통해 여러 기능을 추가할 수 있다.

4)동기 및 비동기 호출 모두 가능: WebClient는 비동기적 호출 뿐만 아니라 동기적 호출도 지원합니다. 이는 block() 메서드를 사용하여 동기 호출을 수행할 수 있기 때문이다.

그치만 나는 WebClient를 쓰기에... reactor 에 대한 지식이 너무 딸리다고 생각한다, 공부 열씨미 해야징.

그래도 이미 손에 익고, 알고있는 RestTemplate 사용할거지만 그래도 WebClient를 사용해볼려고 노력해보겠다..

profile
백엔드

0개의 댓글