웹 어플리케이션을 만들다보면 다른 서버와 통신하는 일이 빈번하게 발생한다. 이때 클라이언트와 서버간 통신이 아닌, 서버와 서버간의 통신이 발생하게 된다. 서버와 클라이언트의 통신에서 클라이언트 측에서는 ajax, html form 등을 이용하여 http 메세지를 보낼 수 있다는 것을 알고있다. 그렇다면 서버와 서버간의 통신은 어떤 방식으로 이루어 질까?

우선 JAVA에서 기본으로 제공하는 HttpURLConnection 은 java.net에 포함되어 있으며 통신에 필요한 핵심적인 기능을 제공하고 있다. 통신에 필요한 핵심 기능만 제공하므로 속도가 빠르지만, 사용법이 복잡하고 response를 stream으로 개발자가 직접 처리해야하는 등 개발 생산성이 다소 떨어진다는 것과 직접 비동기를 구현해야한다는 단점으로 인해 Deprecated 되었고, Retrofit라는 HTTP 통신 라이브러리가 대표적으로 사용되고 있다.

retrofit은 앞서 말했듯, 서버와 클라이언트 간에 HTTP API를 자바 인터페이스 형태로 사용할 수 있는 라이브러리이다. HTTP REST API 형태로 서버와 서버, 서버와 클라이언트 간 정보를 교환할 수 있다.

Retrofit?

Retrofit 장단점

Retrofit 구성요소

사용법