개요

Spring Security 안쓰고 AOP로 OAuth 구현하기 - 1 를 진행하면서, Service에서 HTTP 요청을 보낼 때 RestTemplate을 사용하였는데, **Depricated 된다는 괴담** + 우주님의 제보가 있었고, 공식적으로 추천하는 WebClient로 변경하기 전에, HTTP 요청하는 방식에 대해 좀 더 알아보려고 한다.


옛날옛적에는..

예전에 사용했던 방식을 한 번 짚어보자.

  1. HttpURLConnection: Java에서 기본적으로 제공하는 HttpURLConnection 클래스를 사용하여 HTTP 요청을 보낼 수 있었다고 한다. 스프링과는 별도로 Java의 표준 기능이다. URLConnection 클래스를 상속받아 HTTP 통신을 처리한다고 한다.
  2. HttpClient: Apache HttpClient은 Java HTTP 클라이언트 라이브러리로, 옛날부터 많이 사용되었다고 한다. 스프링에서도 HttpClient를 지원한다.

HttpURLConnection보다는 HttpClient가 코드가 이뻐보인다.


RestTemplate?

RestTemplate은 스프링 3.0부터 도입된 클래스로, 동기적인 HTTP 통신을 위해 사용된다.

간편한 API를 제공하여 HTTP 요청 메서드(GET, POST, PUT, DELETE 등)를 지정하고, 요청 및 응답의 객체 매핑을 수행한다.

주요 기능은 다음과 같다.


WebClient?