Retrofit2

고성욱·2023년 3월 17일
0

안드로이드

목록 보기
4/26

Retrofit2

Retrofit

1. 레트로핏2 이란?

  • 통신 라이브러리 중 가장 많이 사용되는 대표적인 라이브러리(Squareup 사의 라이브러리)
  • REST_API 통신을 위해 구현됨
  • 동일사의 OkHttp 라이브러리의 상위 구현체
    • Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축됨
  • AsyncTask 없이 Background Thread 실행 -> Callback을 통해 Main Thread에서 UI 업데이트

2. 장점/단점

장점

  • 빠른 성능
    • Okhttp는 AsyncTask를 사용 (AsyncTask의 3~10배의 성능차이가 난다고 함)
  • 간단한 구현 - 반복된 작업을 라이브러리 넘겨서 처리
    • HttpUrlConection의 Connection / Input&OutputStream / URL Encoding 생성 및 할당의 반복작업
    • OkHttp의 쿼리스트링, Request / Response 반복 설정 작업
  • 가독성
    • Annotation(애노테이션) 사용으로 코드의 가독성이 뛰어남, 직관적인 설계가 가능
  • 동기/비동기 쉬운 구현
    • 동기 Synchronous - 동시에 일어난다는 의미로, 요청-응답이 하나의 트랜잭션(작업)에서 발생 요청 후 응답까지 대기한다는 의미

    • 비동기 Asynchronous - 동시에 일어나지 않는다는 뜻으로, 요청-응답은 별개의 트랜잭션 요청 후 응답이 도착하면 Callback으로 받아서 처리

      3. 3가지 구성요소

    • DTO (POJO) - 'Data Transfer Object', 'Plain Old Java Object' 형태의 모델(Model) / JSON 타입변환에 사용

    • Interface - 사용할 HTTP CRUD동작(메소드) 들을 정의해놓은 인터페이스 * CRUD ( Create / Read / Update / Delete ) -> HTTP Method ( POST / GET / PUT / DELETE )

    • Retrofit.Builder 클래스 - Interface를 사용할 인스턴스, baseUrl(URL) / Converter(변환기) 설정

profile
안드로이드, 파이썬 개발자

0개의 댓글