728x90

Android 앱 개발을 하면서 서버와 통신을 위해 네트워크 기능을 쓸 경우가 대다수이다.


기존 네트워크 기능을 위해 HttpURLConnection HttpClient (OS 6.0 부터 삭제) 등이 쓰여왔고, OS 3.0 (API 11) 이후에 NetworkOnMainThreadException 를 피하고자 Thread, AsyncTask 등을 사용하기도 했다.

그 후 여러 편의성을 제공하는 통신 라이브러리 들이 등장하였다. OkHttp, Volley (설명), Retrofit ... (라이브러리 비교) 


출처: http://nobase-dev.tistory.com/6



주요 역사


출처: http://pluu.github.io/blog/android/2016/12/25/android-network/





동기 vs 비동기

 http://jajubogi.tistory.com/14



HttpUrlConnection, Retrofit, OKHttp...?

이런 통신기능을 더쉽게 사용하기위해 여러 종류의 라이브러리들이 존재한다.

대표적으로 Android SDK에서 공식으로 지원했던 HttpUrlConnection (현재는 Deprecated된..) , 구글의 Volley , Square의 OKHttp , Retrofit 등이 있다. 


현재 HttpUrlConnection는 Deprecated되었고, 

그에따라서 HttpUrlConnection를 사용하던 Volley도 내부적으로는 OKHttp를 많이 사용한다.

Retrofit은 Okhttp를 더 쉽게 사용할수있게하는 라이브러리다 .

( OKHTTP의 래퍼클래스라고 생각하면된다. 내부적으로는 OKHTTP를 사용한다. ) 


출처: http://namjackson.tistory.com/26 




HttpUrlConnection

1. 안드로이드 AsyncTask를 이용한 HttpUrlConnection

출처: https://kutar37.tistory.com/101 [저장소]



2. 안드로이드 HTTPURLCONNECTION 한글 전송

출처: https://kutar37.tistory.com/81 [저장소]



OkHttp

될 때까지 안드로이드 #19 [22장 네트워크 통신-1 OkHttp] 

https://www.youtube.com/watch?v=oQKYII__vxc


https://goo.gl/eIXu9l

위의 Json형태의 데이터를 OkHttp를 이용해서 처리하는 방법



될 때까지 안드로이드 #20 [22장 네트워크 통신-2 Gson]

https://www.youtube.com/watch?v=wo2HWBHwMj0



HttpUrlConnection 은 Java 에 포함된 라이브러리이고 OkHttp 는 Square 사에서 만든 Http Client 입니다.
오픈소스이니 OkHttp github(https://github.com/square/okhttp) 에 가시면 소스를 보실 수 있습니다.
내부적으로 HttpUrlConnection 하고 소켓 통신을 사용하는 것 같은데 자세히 안 봐서 잘 모르겠네요.

Retrofit 은 Http 통신을 조금 더 편하게 구현하기 위해 만들어진 라이브러리 입니다.

v1 에서는 안드로이드 버전에 따라 Apache HttpClient 와 HttpUrlConnection 선택해서 사용하거나 별도의 Http Client 를 지정할 수 있었는데 v2 에서는 OkHttp 를 사용하는 것으로 알고 있습니다.


 

출처: https://okky.kr/article/386639









Reference

http://nobase-dev.tistory.com/6

http://pluu.github.io/blog/android/2016/12/25/android-network/

http://jajubogi.tistory.com/14

https://www.youtube.com/watch?v=oQKYII__vxc




728x90

+ Recent posts