Retrofit2
안드로이드 및 Java 기반 애플리케이션에서 RESTful 웹 서비스를 쉽게 호출하고 통신하기 위해 만들어진 라이브러리.
TypeSafe해 네트워크로부터 전달된 데이터를 필요한 형태의 객체로 받을 수 있음.
HTTP Client library인 OkHttp 와 함께 사용.
OkHttp?
안드로이드 및 Java 애플리케이션에서 네트워크 통신을 처리하기 위한 오픈소스 HTTP Client Library
HTTP 요청을 생성하고 응답을 처리하는 것을 쉽게 만들어줌.
특징
- 간단하고 일관된 API
- 쉽게 사용할 수 있는 API 제공하여 HTTP 요청을 생성하고 응답을 처리하기 용이하게 함
- HTTP/2 지원
- OkHttp는 HTTP/2 protocol을 지원. 성능향상을 위해 다중 스트림과 헤더 압축을 활용
- 자동 리디렉션 처리
- HTTP 리디렉션을 자동으로 처리, 리디렉션된 URL에 대한 요청을 수행
- HTTP Redirection?
클라이언트의 웹 브라우저나 HTTP 클라이언트가 요청한 웹 페이지 또는 리소스가 다른 위치로 이동하거나 다른 URL로 변경되었음을 나타내는 HTTP protocol 기능.
주로 웹 서버나 웹 애플리케이션에서 특정 조건을 처리하거나 사용자를 다른 페이지로 안내하는데 사용.
- 캐싱
HTTP 캐시를 지원해 서버 응답을 로컬 캐시에 저장, Redirection된 URL에 대한 요청 수행
- Interceptor
요청과 응답의 중간에 작업을 수행하기 위한 인터셉터 지원
이를 통해 요청 및 응답 수정하거나 로깅, 인증 등 작업 수행 가능
- 인증 지원
Basic 인증, Digest 인증, Bearer token 등 다양한 인증 지원
- 비동기요청
비동기 요청 처리 가능해, UI thread blocking 없이 네트워크 요청 수행 가능
또한, 콜백 기반의 응답처리 지원
- 연결 풀링
HTTP 연결을 관리하고 재사용해 네트워크 연결 오버헤드 최소화