#5 Networking

ADD·2021년 7월 20일
0
post-thumbnail

네트워킹 라이브러리

수많은 네트워킹 라이브러리가 있지만, 성능이 가장 좋은 Retrofit2 가 인기 있는 듯 하다.

내가 다니는 회사는 레거시 코드들이 많아서 Retrofit 과 같은 비교적 최신의(?) 라이브러리를 사용하지 않고 있기에... 진행 중인 사이드 프로젝트에서만 사용할 수 있다.

오늘은 HttpUrlConnection, Volley, OkHttp3 를 사용, GET 방식을 통해 데이터를 불러오는 예제를 제작했다.

HttpUrlConnection

HttpUrlConnection 클래스는 안드로이드 스튜디오에서 기본적으로 제공하는 클래스다. 굉장히 원초적이며, 세련되지 못한 느낌이 강하다. 통신 디테일에 대해 세밀한 조정이 가능한 것은 장점이지만, 그만큼 구현 난이도도 상승한다. 결정적으로 비동기처리를 따로 해주어야해서, 굉장히 번거롭다.
https://jsonplaceholder.typicode.com/ 에서 JSON 데이터를 받아 올 것이기 때문에 BufferedReader 를 사용했다.

구현자체도 쉽지 않고, 성능도 그렇게 좋지 못해서... 우수한 라이브러리가 많은 요즘엔 굳이 사용하지 않을 것 같다.

Volley

Volley 의 경우, RequestQueue 에 대한 초기화가 필요하다. 그냥 MainActivity.java 에 선언해도 되지만, 나는 따로 클래스를 생성해서 초기화해주었다.
requestQueue 가 생성되어 있는지 확인하고, 없으면 생성한다.

HttpUrlConnection 을 사용하다가 Volley 를 사용하니... 정말 편하다. 심지어 Retrofit2 보다 간편한 느낌도 있다. 단, Queue 형식이라 예제처럼 작성할 시, TextView 에 setText 되지 않고 append 된다.

OkHttp3

회사 레거시에도 사용되고 있는 OkHttp3.
다양한 네트워크 라이브러리를 경험해보고 싶어서 직접 코드를 구성한 건 처음이었는데..
Retrofit 보다 훨~씬 직관적이고 편했다. 규모가 그렇게 크지 않은 서비스를 구상하고 있다면
Retrofit 말고 OkHttp3 를 사용해도 괜찮겠다는 생각이 든다.
물론 Retrofit 이 OkHttp 에 근거를 두고 있긴 하지만...

구현 완료

이 역시 Queue 에 적재하기 때문에 이 전의 데이터 뒤에 추가되는 모습.

총평

내가 느끼기엔
HttpUrlConnection < Volley < OkHttp3 < Retrofit2
인 것 같다. 이미 Retrofit2 에 익숙해져 있기도 하고... 결정적으로 Retrofit2 의 경우, Http 메소드 작성이 굉-장히 쉽고 간편하기 때문에 Retrofit2 를 계속 사용할 것 같다. Retrofit2 가 대세이기도 하고.

0개의 댓글