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 기반) 사용 추천
'【 개발 이야기 】' 카테고리의 다른 글
코틀린에서 new 없이 의존성 주입(DI)을 통해 객체를 생성하는 방식 (0) | 2025.03.14 |
---|---|
OOP (0) | 2025.02.18 |
북마크 (0) | 2025.02.01 |
[java testcode] (1) | 2025.01.28 |
[intelliJ] No matching tests found in any candidate test task. (0) | 2025.01.28 |