Retrofit이란?

thsamajiki·2022년 11월 10일
0

Retrofit

목록 보기
1/1

REST

REST는 서버에 존재하는 데이터에 접근하기 위한 규칙의 모음으로 행위, 자원, 표현으로 이루어져 있다.
이러한 REST원칙을 잘 준수하는 API를 RESTful API라고 한다.
REST API는 HTTP를 설계할 때 지켜야 할 아키텍처인데 OkHttp랑 Retrofit은 이걸 간편하게 구현할 수 있도록 해준다. (REST API를 쉽게 사용하기 위한 도구로 생각해도 된다.)
Okhttp는 REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리이다. Retrofit이라는 라이브러리의 베이스가 된다. 그리고 Retrofit은 OkHttp를 기반으로 만들어졌다.


Retrofit

Retrofit은 앱 개발 시 서버통신에 사용되는 HTTP API를 자바, 코틀린의 인터페이스 형태로 변환해 안드로이드 개발 시 API를 쉽게 호출할 수 있도록 지원하는 라이브러리이다.
예를 들면, https://~~/user/{user}/repos라는 HTTP API가 존재한다고 가정했을 때, Retrofit 라이브러리를 사용하면 HTTP API를 아래 코드와 같은 인터페이스 형태로 변환할 수 있다.

interface GitHubService {
    @GET("users/{user}/repos")
    fun getRepoList(@Path("user") user: String): Call<List<Repo>>
}



Retrofit을 사용해 서버와 통신하기 전, 개발자가 준비할 단계

  • 안드로이드 프로젝트에 Intent 퍼미션 추가하기
  • Retrofit 라이브러리 프로젝트에 추가
  • 서버개발자와 필요한 데이터에 대해서 논의
  • 서버 개발자가 만들어준 API 문서 확인.

1. 안드로이드 프로젝트에 Internet 퍼미션 추가

  • 서버와의 통신은 인터넷을 거쳐야 하기 때문에 안드로이드 Manifest 파일에 internet 퍼미션을 추가해줘야 한다.
<uses-permission android:name="android.permission.INTERNET" />

2. Retrofit 라이브러리를 프로젝트에 추가.

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
  • Retrofit2는 HTTP API를 자바 인터페이스 형태로 사용하는 라이브러리이고 응답 데이터가 json형식이라서 java <-> gson파싱을 위한 Gson라이브러리와 Gson컨버터 라이브러리를 추가해야 한다.
  • 서버와 응답하는 데이터 형식은 JSON 형식이기 때문에 Retrofit에서 Call<>객체 안에서 응답될 Body 타입의 데이터 클래스와 호환되지 않는다.
  • 따라서 서버에서 응답되는 json 포맷의 데이터를 데이터 클래스 객체로 파싱해주어야 한다. 이는 클라이언트에서 서버에 데이터를 보낼때도 데이터 클래스 객체를 json 형식으로 보내야 서버가 받아볼 수 있다.
  • 데이터 클래스 <-> json 간의 파싱을 위해 Retrofit 라이브러리에 Gson이라는 Java 라이브러리를 추가로 묶어서 사용하면 된다.(Gson은 json 문자열과 java 객체를 서로 변환해주는 라이브러리)

3. 서버 개발자와 필요한 데이터에 대해서 논의하는 시간 가지기

  • UI를 보면서 화면을 구현하기 위해 필요한 정보들을 논의 후, 이러한 정보들을 서버에 요청해 받아와야 한다.

4. 서버 개발자가 만들어 준 API 문서 확인하기


RESTful 통신에 관한 사전지식

  • REST는 서버에 존재하는 데이터에 접근하기 위한 규칙들의 모음이다.

  • REST는 3가지의 구성 요소로 이루어져 있는데
    행위(HTTP method) + 자원(URL) = 표현(GET https://~)
    이러한 REST 원칙을 잘 준수하는 API를 Restful API라고 한다.

  • RESTful하게 짜여진 API는 URL로 서버에 있는 데이터나 서버의 행위를 식별할 수 있고, GET/POST/PUT/DELETE 이렇게 4가지 행위를 할 수 있다.

    	- GET : 데이터를 서버에서 얻는 행위(조회)
    	- POST : 데이터를 서버에 제출하는 행위(저장)
    	- PUT : 서버의 데이터를 변경하는 행위(정보수정/갱신)
    	- DELETE : 서버의 데이터를 삭제하는 행위

위 4가지 행위로 데이터 처리 기능인 CRUD를 할 수 있다. BASE URL이란 데이터를 요청할 서버의 이름을 말한다. 이 BASE URL 뒤에 붙는 것이 어떤 것인지에 따라 이 서버에 어떤 서비스를 요청하는 API인지 정해지게 된다.
profile
안드로이드 개발자

0개의 댓글