주니어 개발자 성장기

(22.09.06) RestTemplate과 WebClient 본문

Spring/프로젝트 pin

(22.09.06) RestTemplate과 WebClient

Junpyo Lee 2022. 9. 6. 14:31

RestTemplate이란?

스프링 3.0에서부터 지원하는 RestTemplate은 HTTP 통신에 유용하게 쓸 수 있는 템플릿이다. REST 서비스를 호출하도록 설계되어 HTTP 프로토콜의 메서드(GET,POST,DELETE,PUT)에 맞게 여러 메서드를 제공한다.

 

RestTemplate 특징

  • 통신을 단순화하고 RESTful 원칙을 지킨다
  • 멀티쓰레드 방식을 사용
  • Blocking 방식을 사용

의존성 설정

기본 스프링 부트 의존성을 추가한다면, 자동으로 추가된다.

 

WebClient란?

WebClient는 스프링 5.0에서 추가된 인터페이스다. 스프링 5.0 이전에는 비동기 클라이언트로 AsyncRestTemplate을 사용했었다. 하지만 스프링 5.0 이후부터는 WebClient를 사용할 것을 권장한다. 동시 사용자 수가 1000명 이상부터는  WebClient의 처리속도가 더 빠르다고 한다.

 

WebClient 특징

  • 싱글 스레드 방식을 사용
  • Non-Blocking 방식을 사용
  • JSON, XML을 쉽게 응답받는다.

의존성 설정

WebClient를 사용하기 위해서는 RestTmeplate과 달리 의존성을 추가해야한다. 바로 webflux라는 의존성이다.

Gradle 기준으로 아래와 같이 의존성을 추가해주면된다.

// webflux
implementation 'org.springframework.boot:spring-boot-starter-webflux'

 

 

참고:

https://tecoble.techcourse.co.kr/post/2021-07-25-resttemplate-webclient/

 

RestTemplate과 WebClient

이 글은 자바에서 HTTP 요청을 써봤거나 써보려고 하는 독자를 대상을 작성하였습니다. 스프링 어플리케이션에서 HTTP 요청할 때 사용하는 방법으로 RestTemplate과 WebClient가 있다. 스프링 5.0 이전까

tecoble.techcourse.co.kr

https://www.baeldung.com/rest-template

 

A Guide to the RestTemplate | Baeldung

Learn how to use the Spring RestTemplate to consume an API using all the main HTTP Verbs.

www.baeldung.com