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 보던지 하면 됩..
'■ Android > Tip' 카테고리의 다른 글
[Android] 레트로핏 사용법 - (참고Blog) (0) | 2020.06.15 |
---|---|
[Android] 레트로핏 사용법 - (어떻게 돌아 가는지 정도만) (0) | 2020.06.14 |
[Android] 음악 - 3.배경음악 연속 재생 방법(여러개 재생 방법) (0) | 2020.04.28 |
[Android] 음악 - 2.Background에서 음원 재생하기 (0) | 2020.04.27 |
[Android] 음악 - 1.SoundPool(효과음, 노래(음악) 넣기) (0) | 2020.04.27 |