본문 바로가기
IT/Java

Java 에서 Http 통신 방식 3가지(RestTemplate, WebClient, OpenFeign)

by 성준하이 2024. 1. 20.
반응형

Spring Framework 는 다양하게 Http 요청 방식을 지원하고 통신을 제공한다.

3가지 방식에 대해서 간단히 작성해볼것이다.

Http 통신 에 대한 내용은 아래 참고 포스팅을 참고 바란다.

 

1. RestTemplate

RestTemplate은 Spring Framework에서 제공하는 동기식 HTTP 통신을 위한 클라이언트

RestTemplate은 주로 Spring MVC 기반의 애플리케이션에서 사용되며, 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하고 JSON, XML 등 다양한 형식의 데이터를 처리할 수 있음

RestTemplate restTemplate = new RestTemplate();
String url = "https://thenicesj.tistory.com/";
Member mem = restTemplate.getForObject(url, Member.class, 1);


RestTemplate은 동기식으로 동작하기 때문에, 응답을 받을 때까지 대기하며 스레드를 차단하기에 대량의 요청을 처리할 때는 성능 이슈가 발생할 수 있음.

2. WebClient

WebClient는 Spring Framework 5부터 도입된 비동기식 HTTP 통신을 위한 클라이언트(동기식 처리도 가능)

WebClient는 Non-Blocking I/O 모델을 기반으로 하며, 비동기 및 리액티브 스트림 처리를 지원하고 WebClient는 RestTemplate의 대안으로 제공되며, 더 나은 확장성과 성능을 제공

WebClient webClient = WebClient.create();
String url = "https://thenicesj.tistory.com/";
Mono<Member> memberMono = webClient.get()
        .uri(url, 1)
        .retrieve()
        .bodyToMono(Member.class);



WebClient는 비동기 작업을 수행하며, 리액티브 타입인 Flux와 Mono를 반환하여 비동기 결과 처리를 용이하게 하기에 대량의 요청을 처리할 때 성능과 확장성 면에서 효과적

3. OpenFeign

Openfeign 에 대해서는 참고 포스팅을 참고 바란다.

별도로 적어둔 포스팅에서 설명이 가능하다.

 


참고 포스팅

https://thenicesj.tistory.com/809

 

HTTP Method (종류 및 상태코드)

클라이언트와 서버와 통신을 하기위한 프로토콜은 HTTP를 주로 사용하는데 Method 방식이라는것이 있다. Restapi를 사용할 경우 이 방식에 대한 개념이 필요하다. Restapi에 대해서는 아래 참고 포스팅

thenicesj.tistory.com

 

https://thenicesj.tistory.com/469

 

openfeign 이란?

간단하게 소개를 하면 다음과 같다. REST Call을 위해 호출하는 클라이언트를 보다 쉽게 작성할 수 있도록 도와주는 라이브러리 OpenFeign은 동일한 기능을 하는 RestTemplate 대비 interface를 작성하고 an

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

deleteAll(), deleteAllInBatch(), deleteInBatch()  (22) 2024.01.26
ThreadPoolExecutor 로 멀티 쓰레드 구현  (24) 2024.01.21
JPA메서드 save 와 saveAll 비교  (11) 2024.01.19
Servlet 이란? (JSP 와 비교)  (28) 2024.01.17
RequestEntity 란  (20) 2024.01.13

댓글