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처리.