SPRING/스프링부트 개념과 활용

[스프링부트 개념과 활용] 스프링 RestTemplate / Webclient 사용

JUMP개발자 2021. 1. 22. 01:46

스프링 REST

 

자바단(서버단)에서 Client로써 다른 서버에 REST 요청을 하기 위해서는 rest클라이언트 인스턴스를 생성해서 사용해야 된다. 이때 2가지 선택사항이 존재하는데 아래와 같다.

 

RestTempalte

- Blocking I/O 기반의 Synchronous API

 

WebClient

- Non-Blocking I/O 기반의 Asynchronous API

 

RestTemplate 예시

 

hello 메서드는 sleep을 5초를 주고, world는 3초를 준다.

 

Blocking I/O 기반의 RestTemplate으로 요청을 날렸기 때문에 응답이 올때까지 다음으로 넘어가지 않는다.

즉, hello 요청에서 5초를 기다리고, world에서 3초를 기다리므로 8초 +@의 시간이 걸릴 것으로 예측할 수 있다.

 

 

WebClient 예시

 

WebClient를 사용하기 위해서는 아래와 같은 의존성을 추가해야 한다.

 <dependency>
 	<groupId>org.springframework.boot</groupId>
 	<artifactId>spring-boot-starter-webflux</artifactId>
 </dependency> 

 

Webclient의 경우는 비동기처리를 하기 때문에 subscribe 메서드를 통해서 CALLBACK 처리를 할 수 있다.

ex :) AJAX Callback처리.