개요
서버 to 서버로 HTTP 요청을 보내는 방법으로 RestTemplate과 WebClient가 있다.
Spring 5.0 이전까지는 RestTemplate을 사용했으나, 5.0에서 WebClient가 나왔고, 현재는 WebClient 사용을 권고하고 있다.
대세는 WebClient이고, 추후 RestTemplate의 지원을 중단할지도 모르기 때문에…
현재 대체로 WebClient로 마이그레이션 하고있는 추세라고 한다.
위 글은 RestTemplate과 WebClient에 대해 다루고 있다.
요약:
- RestTemplate은 아직 사용 가능하다.
- 단, RestTemplate은 synchronous하고 blocking한 반면, WebClient는 asynchronous하게 쓸 수도 있다.
- RestTemplate은 deprecate될 가능성이 있다.
RestTemplate
Spring 3.0부터 지원하기 시작했다.
특징:
- 통신을 단순화하고, RESTFul 원칙을 지킴
- 멀티스레드 방식
- Blocking 방식
사용 방법:
- 의존성 설정 (spring-boot-starter-web에 있다.)
- 생성자나 builder로 RestTemplate을 생성하고, 스프링 빈으로 등록해준다.
- restTemplate.메서드명() 과 같이 사용한다.
- 어떤 메서드가 있는지는 따로 조사한다.
WebClient
Spring 5.0에 추가된 인터페이스이다.
Spring 4.0에서 RestTemplate의 비동기 문제를 해결하기 위해 AsyncRestTemplate을 잠깐 사용했었지만, 현재 deprecate 된 상태이다.
특징:
- 싱글 스레드 방식
- Non-Blocking 방식
- JSON, XML을 쉽게 응답받음
사용 방법:
- 의존성 설정 (spring-boot-starter-webflux 필요!)
- WebClient.create() 혹은 빌더로 WebClient 클래스를 생성한다.
- 사용한다.
- 더 자세한 사용법은 다음 포스팅을 참고하자.
출처
https://tecoble.techcourse.co.kr/post/2021-07-25-resttemplate-webclient/
'코딩 > WEB 개발' 카테고리의 다른 글
XSS 공격에 대해 (0) | 2023.08.20 |
---|---|
Spring - WebClient 사용법, 주의사항 (0) | 2023.07.25 |
Spring - @PathVariable 에서 마지막 "~.com"이 짤리는 현상에 대해 (0) | 2023.07.19 |
HTTP Method의 스펙 (0) | 2023.06.28 |
HTTP Method의 멱등성에 대해 (0) | 2023.06.28 |