Spring WebClient

민지의 회고록·2023년 9월 6일
  1. Spring WebClient : 웹에서 API를 호출하기 위한 Http Client 모듈 중 하나

1) 특징

  • Single thread : 코어 당 스레드 하나
  • non-blocking : 자신의 일을 모두 마치지 않더라도 바로 제어권을 건네주어(return) 다른 일을 할 수 있도록 함.
  • asynchronous : 호출된 함수의 수행 결과 및 종료를 호출된 함수 혼자 처리.

2) 동작 방식

(그림1 출처:  https://luminousmen.com/post/asynchronous-programming-blocking-and-non-blocking)
- 각 요청(request)은 Event Loop 안에서 Job으로 등록된다.
- Event Loop는 각 Job을 publisher에게 요청한 후, 결과를 기다리지 않고 다른 Job을 처리.
- publisher로 부터 callback으로 응답이 오면 Event Loop는 그 응답을 Subscriber에게 보낸다.
- 이렇듯, 이벤트 반응형으로 동작한다. --> Spring React 프레임워크 사용하며 React Web 프레임워크인 Spring WebFlux에서 Http Client로 사용.

3) RestTemplate 과의 성능 비교

(그림2 출처: https://alwayspr.tistory.com/44)

-> 그림과 같이 동시 사용자의 규모에 따라 rest template를 사용해도 좋으나 Spring 커뮤니티에선 이미 Depreciated 시키고 Web Client를 사용할 것을 권고 함.

profile
민지가 공부한 내용을 회고합니다~~

0개의 댓글