Retrofit이란

최희창·2022년 6월 9일
0

REST에 대해

목록 보기
1/3

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을 사용해 서버와 통신하기 전, 개발자가 준비할 단계

  1. 안드로이드 프로젝트에 Intent 퍼미션 추가하기
  2. Retrofit 라이브러리 프로젝트에 추가
  3. 서버개발자와 필요한 데이터에 대해서 논의
  4. 서버 개발자가 만들어준 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가지의 구성 요소로 이루어져 있는데 1. 행위(HTTP method) + 2. 자원(URL) = 3.표현(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
heec.choi

0개의 댓글