Volley의 Apache HTTP client 라이브러리 참조 제거

Volley는 2013년 구글에서 공개한 안드로이드 네트워크 라이브러리다. 구글 플레이 스토어 팀에서 개발/적용 후 공개한 것이 Volley의 시작으로 알려져 있다. 지금은 인기가 예전만 못하지만, 공개 당시에는 가장 좋은 네트워크 라이브러리 중 하나였다. Volley에 대한 자세한 소개는 공식 트레이닝 사이트(한글)를 참조하자.

공식 Apache HTTP client 라이브러리(이하, 라이브러리)는 자바 진영의 대표적인 HTTP 라이브러리로, 수많은 개발자를 네트워크와 관련된 혼란에서 구제했다. 안드로이드도 이 라이브러리를 이식해주어, 안드로이드 앱 개발자들에게 추가적인 학습 없이도 네트워크 관련 기능을 쉽게 쓰도록 해주었다.

다만, 지금와서 보면 원래 라이브러리의 어느 버전을 이식한 것인지 불분명하고 원래 라이브러리는 오래 전에 Apache HttpComponents로 이름까지 바뀌었다. 배터리와 데이터 사용량 등에 민감하고 네트워크 상황이 빈번히 바뀌는 모바일 환경의 특징도 충분히 반영하지 못한 것 같다. 정확한 이유는 찾지 못했으나 개인적으로 폭발적인 안드로이드 성장세에 최대한 빨리 HTTP 관련 라이브러리 지원을 하고자 했던 당시 상황이 영향을 준 것 같다. 이와 관련하여, 안드로이드의 HTTP 라이브러리 비교분석 글을 읽어보면 좋다.

앞서 언급한 이유인지 모르지만, 안드로이드는 M(6.0)과 P(9.0) 두 차례에 걸쳐 이 라이브러리 지원 종료를 예고했다. 지원 제거가 곧 사용 불가를 의미하는 것은 아니어서, M 이상은 build.gradleP 이상은 AndroidManifest.xml 에 명시적 선언을 하면 여전히 사용할 수 있다. 하지만, 안드로이드는 기능적으로 개선된 HTTPUrlConnection 사용을 권장한다.

이런 안드로이드의 정책에 맞춰 Volley도 minSdkVersion이 9 이상이면 v1.1.0부터 라이브러리를 참조하지 않는다. 참조할  필요가 없으니 명시적 선언도 제거할 수 있다. Volley를 사용하고 있다면 최신버전을 사용하고 라이브러리 참조도 제거해보자.

그 밖에

  • Volley는 장기적으로 조건부 참조 코드도 제거할 것이라 한다. Volley 라이브러리 업데이트가 예전만큼 활발하지 않아 언제 반영될지는 알 수 없지만 말이다.

참조