RestTemplate vs WebClient 비교

NTbell·2일 전
0

프로젝트를 개발하면 외부API를 사용하기위해 자료를 수집하면서 RestTemplate를 알게되었다
필자는 RestTemplate를 이용해서 개발을 진행할려 했지만 요청이 많으면 병목이 발생한다는 점이 있어 좀 더 찾아본 결과 WebClient를 발견하게 되서
개발을 들어가기전 이론적으로 정리할겸 글을 작성하게 됨.

무튼 그럼 그럼 시작해보자고

1. WebClient란?

Spring WebClient는 Spring WebFlux에서 제공하는 비동기 & 논블로킹 HTTP 클라이언트입
기존의 RestTemplate보다 더 유연하고 효율적인 방식으로 외부 API를 호출할 수 있음

  • 블록킹 : 요청을 보내면 응답이 올 때까지 기다림
    -> RestTemplate은 동기 방식이라 한 번에 하나의 요청만 처리
  • 논블로킹 : 요청을 보내고 기다리지 않고 다른 작업을 수행
    -> WebClient 비동기 방식이라 여러 개의 요청을 동시에 보낼 수 있음

자세한 이론은
https://blog.naver.com/seek316/223311717538
이 분이 글쓰신 거 참조 바람 :D

2. RestTemplate vs WebClient 비교

특징RestTemplateWebClient
동작 방식동기(Blocking)비동기(Non-Blocking)
성능요청이 많으면 병목 발생효율적인 리소스 활용
사용 방식스레드마다 요청 처리이벤트 기반으로 요청 처리
지원 여부Spring 5 이후 비추천Spring WebFlux 기본 HTTP 클라이언트

간단한 API 요청은 RestTemplate도 가능하지만 대량 요청 & 비동기 처리는 WebClient가 훨씬 유리 할 듯 함

3. WebClient의 장점

✅ 비동기 및 논블로킹 방식으로 성능 최적화
✅ 이벤트 기반으로 리소스 사용량 감소
✅ 다양한 요청 방식 (GET, POST, PUT, DELETE) 지원
✅ 타임아웃, 재시도 등의 설정 가능

🐈

WebClient가 기존 RestTemplate보다 확장성이 더 뛰어난 HTTP클라이언트

profile
최종빈의 컴퓨터교실

0개의 댓글

관련 채용 정보