- REST Client란?
- Rest API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리를 의미함. ( 예를들면 Postman -> GUI 갖춰진 Rest Client)
- RestTemplate
- Java에서 사용할 수 있는 HTTP Client 라이브러리 - java.net.HttpURLConnection, Apache HttpComponents, OkHttp 3, Netty 등
- 스프링에서 위 HTTP Client 라이브러리 중 하나를이용해서 다른 Backend 서버에 HTTP요청을 보낼 수 있는 Rest Client API -> RestTemplate
- 순서
- RestTemplate 객체 생성 -> 의존 라이브러리 (dependencies) 추가 -> URI 생성 (HTTP Request 를 전송할 Rest 엔드포인트의 URI) -> 요청 전송
- REST Client 장점
- API 테스트 용이성 - 빠르게 API 엔드포인트를 테스트.
- 개발 효율성 - API 통합 과정을 간소화.
- 디버깅 - API 요청과 응답을 쉽게 검사.
- 문서화 - API 호출을 저장하고 공유.
-
- Spring 에서의 Rest Client 와 일반적인 Rest Client의 차이점
- 통합성
- Spring Rest Client : Spring의 다른 기능들과 함께 사용하기 좋음.
- Rest Client : 독립적으로 사용. 특정 프레임워크와의 통합이 필요하지 않음.
- 구현
- Spring Rest Client : 주로 RestTemplate 와 WebClient(비동기 및 리엑티프 프로그래밍을 지원) 를 사용
- Rest Client : 다양한 구현체가 있으며 언어 및 플랫폼에 따라 다르게 사용. ( ex. Java - HttpClient, Python - Requests)
- 설정
- Spring Rest Client : Spring 의 설정방식을 따르고 Bean으로 등록하여 애플리케이션 전체에서 사용 가능
- Rest Client : 인스턴스를 직접 생성하고 설정
- 예외처리
- Spring Rest Client : Spring 예외처리 메커니즘을 사용
- Rest Client : 각 라이브러리 마다 고유한 예외처리방식을 사용
- 테스트 용이성
- Spring Rest Client : Spring의 테스트 프로엠워크와 통합되어있어 모킹 및 테스트 용이
- Rest Client : 테스트를 위해 추가적인 설정 및 라이브러리 필요
- 보안
- Spring Rest Client : Spring Security 와 통합되어 인증 및 권한부여 진행
- Rest Client : 별도로 구현 필요
- 즉, Spring 의 RestClient 는 Spring의 다른 기능들과 잘 통합되어 사용하기 편리하고, 일반 RestClient는 범용적이고 독립적으로 사용하기 좋음.
'면접준비' 카테고리의 다른 글
Spring MVC 에서의 예외 처리 기법에 대해서 설명해주세요. (0) | 2024.08.11 |
---|---|
Spring JDBC, Spring Data JDBC, Spring Data JPA 의 차이점을 설명해 주세요. (0) | 2024.08.11 |
ResponseEntity에 대한 설명 (0) | 2024.08.04 |
공통질문 부분 (0) | 2024.08.04 |
Spring MVC 에서 REST API 엔드포인트를 구현하기 위해 사용되는 에너테이션 (0) | 2024.08.04 |