RestTemplate <-> netty

RestTemplate vs Netty 차이점

 

1. 개념적인 차이

  RestTemplate  Netty
정의 Spring에서 HTTP 요청을 보내는 클라이언트 라이브러리 비동기 기반 네트워크 애플리케이션 프레임워크
주요 역할 HTTP 요청을 보내고 응답을 받음 (REST API 호출) TCP/UDP, HTTP 서버 구축 및 네트워크 처리
사용 방식 HTTP 클라이언트 (API 소비) HTTP 서버 or TCP 서버 구축

 

 

2. 주요 기능 차이

  RestTemplate  Netty
HTTP 요청/응답 클라이언트가 서버에 HTTP 요청을 보낼 때 사용 서버 또는 클라이언트로 동작 가능
비동기 지원 기본적으로 동기 방식 (블로킹) 기본적으로 비동기/논블로킹 방식
대체 기술 WebClient (Spring WebFlux에서 대체) Spring WebFlux, Reactor Netty
주요 활용 사례 REST API를 호출하는 클라이언트 HTTP 서버, API Gateway, 채팅 서버, 게임 서버 등

 

 

3. 관계 (Netty 기반 WebClient가 RestTemplate을 대체함)

  • RestTemplate은 동기식 HTTP 요청을 보내는 용도로 사용되지만, 현재 Spring에서는 WebClient(비동기 HTTP 클라이언트)로 대체됨.
  • WebClient는 내부적으로 Reactor Netty를 사용할 수 있음. 즉, Netty 기반의 HTTP 클라이언트라고 볼 수 있다.
  • 따라서, RestTemplate과 Netty는 직접 비교할 대상은 아니지만, HTTP 요청을 보내는 목적이라면 WebClient(Netty 기반)가 RestTemplate의 대체제가 됨.

RestTemplate은 HTTP 요청을 보내는 "클라이언트" 라이브러리
Netty는 네트워크 애플리케이션을 위한 "서버 & 클라이언트" 프레임워크
비동기 HTTP 요청을 원하면 WebClient(Reactor Netty 기반) 사용 추천