BackEnd 또는 FrontEnd를 개발하다보면 거의 필수적으로,

다른 서버에 데이터를 요청할 일이 생기게 됩니다.

특히나 FrontEnd의 경우에는 서버로부터 데이터를 받아와 출력하는 경우가 잦습니다.

 

저의 경우, 매번 HttpClient들을 검색을 통해 찾아보고 사용하고 또

찾아보고.. 를 반복했습니다. 결국, 제대로 이해를 하지 못했다는 의미인듯 합니다.

 

때문에, 이번 시간에는 Java의 HttpClient 라이브러리들 중 하나인 Retrofit에 대해 정리해보려고 합니다.

 

 

 

 

 

 

* Retrofit이 어디에 속해 있는지만 보기

https://hijjang2.tistory.com/443

 

 

 

 

 

 

1. Retrofit 이란?

1)

Retrofit은 TypeSafe한 HttpClient 라이브러리입니다. 

TypeSafe하다는게 어떤 의미일까요? 예, 바로 네트워크로부터 전달된 데이터를

우리 프로그램에서 필요한 형태의 객체로 받을 수 있다는 의미입니다.

 

 

2)

사실 Retrofit은 기본적으로 OKHttp에 의존하고 있습니다.

 

 

 

 

 

 

 

2. HttpClient Library를 왜 사용할까?

Http통신을 가장 간단히 사용한다면, HttpURLConnection을 많이 사용해보셨을 것 입니다. 

Java.net에 내장되어 있기때문에, 별도의 라이브러리 없이 사용했던 기억이 납니다.

그렇다면,

이러한 클래스를 이용하면 되는데 왜 굳이 Retrofit, Okhttp, Volley등과 같은 라이브러리를 사용할까요?

 

 

 

 

Http 개발의 어려움

라이브러리들 만을 이용해 개발해보신분들께서는 이렇게 생각하실 수도 있습니다.

"아니 그냥 HttpRequest하고 Response의 Body를 Parsing해서 사용하면 되는것 아닌가?"

 

이렇게 생각하신다면, 사용하신 라이브러리가 정말 잘 만들어졌다는 것을 반증하는 것일 수도 있습니다.

그게 아니면,

정말 간단히 사용하는 경우에는 그럴수도 있겠습니다만. 보통 Http를 개발한다면, 아래의 것들을 고려해야 합니다.

 

  • 연결
  • 캐싱
  • 실패한 요청의 재시도
  • 스레딩
  • 응답 분석
  • 오류 처리

...

정말 많습니다. 단지,

Http 요청을(성능좋고, 오류가 적은) 위해서, 저 많은 것들을 개발하다보면 배보다 배꼽이 커지는 것은 당연하겠습니다.

 

 

 

 

 

HttpURLConnection

HttpURLConnection은 가장 원시적인 방법의 HttpClient입니다.

장점

  • java.net 에 포함된 클래스로 별도의 라이브러리 추가가 필요 없습니다.
  • 자신이 원하는 방식으로 커스텀하여 사용할 수 있습니다.(단점이기도 함)

단점

  • 자유도가 높은 대신, 직접 구현해야하는 것들이 많습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Retrofit 사용법

 

 

https://hijjang2.tistory.com/441

위에 있는 URL은 밑에있는거 다 읽고 한번 보던지,

밑에있는거 보고 URL 보던지 하면 됩..