Retrofit

SeungHyeon·2022년 7월 30일
0
post-thumbnail

들어가며

FrontEnd, BackEnd 구분 없이 개발하다 보면 Retrofit이란 단어를 한 번이라도 들어보았을 것이다

본인도 이번 졸업작품을 진행하며 알게 된 단어인데, 과연 Retrofit이 무엇일까???


Retrofit이란?

Retrofit을 개발한 "Square"사는 아래와 같이 설명한다.

Retrofit is a type-safe HTTP client for Android and Java.

* type - safe는 네트워크로부터 전달받은 데이터를 우리가 원하는 형태로 받을 수 있다는 것을 의미

즉 Retrofit은 서버와 클라이언트 간 Http 통신을 위한 인터페이스로, 클라이언트에서 서버로 어떤 요청을 주고받는 과정에서 데이터를 원하는 형태로 만들어 주고받을 수 있게 도와준다.


장점

  1. 빠른 성능
    자사에서 개발한 Okhttp와 비교했을 때 3~10배의 성능 차이가 발생한다.

  2. 간단한 구현
    Okhttp 쿼리스트링, request, response 설정 등 반복적인 작업을 라이브러리에 넘겨서 처리한다. 따라서 사용자는 함수 호출 시에 파라미터만 넘기면 되기에 훨씬 작업량이 줄어들고 사용하기 편리하다.

  3. 가독성
    Annotation 사용으로 코드의 가독성이 뛰어나, 직관적인 설계가 가능하다.


동작 원리

Retrofit은 네트워킹을 위한 정보(url, request/response 데이터)를 annotation으로 주면 네트워킹하기 위한 실제 프로그램 코드는 자동으로 만들어준다. (따라서 네트워크 관련 프로그램 코드를 작성하지 않아도 된다.)

위 그림처럼 개발자가 인터페이스를 만들고 Retrofit에 등록하면 Retrofit에서 인터페이스를 구현한 클래스를 자동으로 만들어준다.

이것을 호출하면 네트워킹이 가능한 Call 객체를 반환하고 Call 객체를 enqueue하면 그 순간에 네트워킹이 된다.


참고)
https://jaejong.tistory.com/33
https://woovictory.github.io/2019/01/03/Android-What-is-retrofit/
https://velog.io/@alsgk721/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-21-Network-Library

profile
어제보다 더 나은 오늘이 되자

0개의 댓글