Volley 소개 및 관련 링크

황제낙엽 2018.10.29 05:46 조회 수 : 63

sitelink1  
sitelink2  
sitelink3  

소개

안드로이드 App을 제작하다보면 이미지 파일 업로드/다운로드, Json 형식의 응답 주고 받기 등

네트워크를 통한 데이터 전송을 빈번하게 사용한다. 이를 위해 가장 많이 쓰이는 방법은 AsyncTask를 생성하여

DoitBackground 메소드 내에서 네트워크 작업을 처리하는 것인데, 이러한 작업들을 좀더 쉽고 빠르게 하기 위해

Google은 2013년 Google I/O에서 volley라는 Http 라이브러리를 공개했다.

 

기능

  • 요청작업큐 + Thread pool을 이용한 동시 요청 지원.
  • 요청별 우선 순위 : 목록조회와 이미지 다운로드를 할때 목록조회가 우선순위가 높게 설정. 다음 페이지의 목록조회를 요청하면 이전페이지의 이미지로딩이 끝나지 않아도 기다리지 않고 수행.
  • Transparent cache : 요청하는 쪽에서 Cache 적용여부를 의식하지 않아도 됨
  • 이미지 로딩툴, NetworkImageVIew라는 View 제공
  • 요청 취소 : 특정 요청, 해당 Context의 요청 모두 취소할 수 있고, 취소할 규칙도 지정 가능
  • 진저브레드 이전의 HttpURLConnection의 버그 문제 해결 : 2013년 5월 The platform에 기고한 Android의 HTTP 클라이언트 라이브러리 기사에서 다룬 여러 오픈소스가 그랬던 것처럼 진저브레드 이상에서만 java.net.HttpURLConnection을 쓰는 로직이 들어가 있습니다.
  • retry, backoff policy 지원, 확장 기능
  • SPDY 지원 : 발표 당시에는 Volley의 tranport stack으로 OkHttp( http://square.github.io/okhttp/ ) 를 넣는 작업이 누군가가 진행하고 있다고 했는데, 기사를 작성한 이후에 따끈따끈하게 공개 되었습니다.
  • JSON, XML, Image, protobuffer 등 다양한 Response형식을 처리하도록 확장 가능

 

링크

 

기타 라이브러리

[OkHttp3]

OkHttp는 안드로이드에서 http/2 응답을 빠르고 손쉽게 받게 해주는 클라이언트를 제공해주는 라이브러리이다.

square에서 만든 라이브러리인데, OkIo라는 라이브러리에 의존성을 갖고 있다.

 

[REST API]

REST API는 HTTP를 더 강력하게 사용하기 위한 아키텍처이다.

Representational State Tranfer의 약자이다.

REST API는 다음과 같은 3가지로 구성된다.

    1. 자원(Resource) - URI

    2. 행위(Verb) - HTTP METHOD

    3. 표현(Representations) 

 

[Retrofit2]

레트로핏은 type-safe한 REST API를 손쉽고 빠르게 사용하기 위한 어댑터 라이브러리이다.

type-safe는 컴파일러가 해당 자료형의 타입을 결정할 수 있어서 만약 String에 숫자를 대입하려 하면 에러를 내주고 이런 맥락인데, 

Retrofit에선 HTTP 요청을 할 때 URL을 만드는 것(manipulation)을 REST API의 형식에 맞게 알맞게 검사해주는 것을 의미하는 듯 하다.

Retrofit2를 사용할 때 알아야 할 것이 있다고 한다.

    1. Retrofit2은 OkHttp에 의존성을 갖는다. 그 의미는 OkIo에도 의존성을 갖는다는 뜻이다.

    2. Gson은 Retrofit의 Bundle이 아니다. Retrofit은 오직 HTTP 몸체를 OkHttp의 응답 몸체로 역직렬화 해줄 뿐이다.

    3. Gson말고도 JSON과 XML을 변환시켜줄 여러개의 Converter가 존재한다.

 

[Gson]

Gson은 JSON 컨버터이다. Retrofit 객체를 만들 때 

.addConverterFactory(GsonConverterFactory.create())

와 같은 식으로 Converter를 달아준다.

 

출처 :: https://blog.naver.com/mym0404/221377506033

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
68 TTS 를 위한 스마트폰 설정 및 TTS 샘플 file 황제낙엽 2019.02.16 460
67 Creating swipe views with tabs file 황제낙엽 2019.02.10 102
66 [번역] 안드로이드 ViewPager 를 이용한 수평 화면 전환 file 황제낙엽 2019.02.09 71
65 동적 레이아웃 생성과 자동 줄바꿈 구현 file 황제낙엽 2018.12.26 311
64 qemu-system-~.exe 의 작동이 중지되었습니다 file 황제낙엽 2018.11.27 55
63 Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. file 황제낙엽 2018.11.27 59
62 Error:Minimum supported Gradle version is 4.1. 황제낙엽 2018.11.27 84
61 No toolchains found in the NDK toolchains folder for ABI 황제낙엽 2018.11.27 33
60 [성공샘플] HttpURLConnection 을 이용하여 JSON 데이터 보내기 예제 황제낙엽 2018.11.10 649
59 [Android] 네이버 음성합성(TTS) API 사용해 보기 file 황제낙엽 2018.11.01 167
58 [Android] TTS (Text To Speech) API 샘플 코드 file 황제낙엽 2018.11.01 128
57 Google Cloud API 설정법 file 황제낙엽 2018.11.01 39
56 AsyncTask 사용하기 황제낙엽 2018.10.29 36
» Volley 소개 및 관련 링크 황제낙엽 2018.10.29 63
54 AsyncTask 를 이용한 HttpURLConnection 사용법 [1] 황제낙엽 2018.10.20 33
53 HttpURLConnection 을 이용하여 JSON 데이터 보내기 예제 [1] file 황제낙엽 2018.10.20 102
52 STT 학습 링크 모음 (sample link) 황제낙엽 2018.10.11 552
51 코틀린(Kotlin) 학습용 링크 모음 황제낙엽 2018.10.11 64
50 저장소 파일 불러올 때 권한 요청 설정 file 황제낙엽 2018.08.21 55
49 안드로이드 파일시스템에 파일 생성하여 데이터 저장, 불러오기 예제 황제낙엽 2018.08.21 58