Spring framework 에는 다양한 http 요청 방식을 통해 웹서비스와의 통신이 가능합니다.
가장 주로 사용되는 http 요청 방식 3가지인 restTemplate vs webClient vs openFeign에 대해 매우 간단하게 알아보겠습니다.
1. RestTemplate
RestTemplate은 Spring에서 제공하는 동기식 http 통신을 위한 방법입니다.
주로 MVC기반의 프로그램에서 사용되며 JSON, XML등 다양한 형식의 데이터를 처리 할 수 있습니다.
장점
- 간단한 구성과 사용법
- 예전 버전의 Spring에서도 사용 가능
- 다양한 http 클라이언트 설정 가능
단점
- 동기 방식을 기반으로 하기에 병렬 처리가 어려움
- non-blocking 요청 처리가 불가능
2. WebClient
WebClient는 Spring 5 부터 도입된 비동기식 non-blocking http 통신 방법입니다.
응답삽으로 리액티브 타입인 Flux와 Mono를 반환합니다.
장점
- 비동기 및 non-blocking 방식으로 높은 성능과 확장성을 지님
- 비동기 작업이 용이
단점
- 기존에 사용하던 동기적인 코드와는 다른 패러다임을 지니기에 러닝커브의 필요성
3. openFeign
openFeign이란 Spring의 라이브러리로 간단한 선언적 방식으로 통신이 가능한 방법입니다
장점
- 간단한 사용법
- 간결한 코드
- 인터페이스와 어노테이션을 기반으로 작성할 코드의 수가 줄어든다
단점
- http2를 지원하지 않음
- 테스트 도구를 제공하지 않음
따라서 프로젝트에 맞게 알맞은 방법을 사용하여 http 통신을 하여도 문제 없이 사용이 가능하지만,
필자의 경우 Spring 버전이 높을때에는 webClient 혹은 openFeign을 사용하는 것을 추천한다.
'백엔드 멘토링' 카테고리의 다른 글
객체지향의 사실과 오해 후기 (0) | 2023.08.27 |
---|---|
자바의 신 - 복습 정리(1) (0) | 2023.08.27 |
Car-Racing 토이 프로젝트 step 1 회고록 (1) (0) | 2023.07.11 |
일급 컬렉션(First-Class Collection)이란? (0) | 2023.07.10 |
2023/04/10 - Spring 공부중 관련 질문들 [2] (0) | 2023.04.13 |