[Spring] Feign vs RestTemplate

yeonjoo913·2023년 11월 15일
0

Spring

목록 보기
16/19

Rest API로 서비스 간 통신을 위해서 FeignClient,WebClient,RestTemplate 등을 활용하는데, 이번에는 자주 사용하는 것들을 비교해보고자한다.

RestTemplate이란?

HTTP 요청을 만들기 위해 Spring Framework에서 제공하는 동기식 클라이언트 라이브러리이다. 오랫동안 인기 있는 선택이였기 때문에 많은 개발자들이 사용법에 익숙하며 대규모 커뮤니티가 존재하는 안정적인 라이브러리이다. Spring 5.0 이후부터 RestTemplate은 레거시 라이브러리로 간주되면 WebClient가 권장되는 추세라고한다.

특징

  • HTTP 요청 후 JSON, XML, String 과 같은 응답을 받을 수 있는 템플릿
  • 멀티 스레드 방식을 사용
  • Blocking I/O 기반의 동기방식을 사용하는 템플릿
  • RESTful 형식에 맞추어진 템플릿
  • Header, Content-Tpye등을 설정하여 외부 API 호출

FeignClient란?

Netflix에서 RestTemplate보다 효율적인 통신을 위해 선언적 접근 방식을 활용한 라이브러리이다. OpenFeign은 선언적인 방식으로 RESTful API를 정의하고 자동화된 HTTP 요청 처리를 지원하여 서비스 간의 통신을 단순화하고 유연성을 제공하는 강력한 도구이다.

특징

  • 인터페이스 기반의 API 정의로 간단하고 직관적인 코드 작성이 가능
  • Spring Cloud와의 통합을 지원하여 마이크로서비스 아키텍처에서 유용
  • Blocking I/O 기반의 동기방식을 사용하는 템플릿
  • 자동화된 요청 처리와 부가적인 기능 지원으로 개발 생산성을 향상

WebClient란?

Spring Framework 5부터 도입된 비동기식 HTTP 통신을 위한 클라이언트입니다

  • Non-Blocking I/O 모델을 기반
  • 리액티브 스트림을 활용하여 대량의 요청을 효과적으로 처리가능

정리

  • 최신 Spring Framework 버전에서는 WebClient와 OpenFeign을 권장한다고한다.
  • 비동기 처리와 리액티브 프로그래밍에 익숙해져 있다면 WebClient를 사용하는 것이 더욱 효과적일 것이다.

참고 블로그

profile
주니어 백엔드 개발자. 까먹는다 기록하자!

0개의 댓글