Developing Myself Everyday
Published 2023. 4. 3. 14:46
Retrofit 이란? Android/Kotlin

 Retrofit 이란?


Retrofit은 Square에서 개발한 안드로이드 및 Java용 HTTP 클라이언트 라이브러리이다. RESTful API와 통신하기 위해 사용된다. Retrofit은 OkHttp 라이브러리와 함께 작동하여 간편하게 HTTP 요청을 만들고 응답을 처리할 수 있다. Retrofit은 간단하게 인터페이스를 정의하고, 이를 기반으로 HTTP 요청 및 응답 처리를 자동으로 생성할 수 있다.

 

 

Retrofit Annotation (어노테이션)


 Retrofit의 핵심 개념 중 하나는 어노테이션을 사용하여 인터페이스 메서드를 HTTP 요청으로 매핑하는 것이다. 예를 들어, @GET, @POST, @PUT, @DELETE와 같은 어노테이션을 사용하여 HTTP 메서드를 지정하고, @Path, @Query, @Body와 같은 어노테이션을 사용하여 요청 매개변수를 지정할 수 있다. 

 Retrofit 어노테이션의 종류는 다음과 같다.

 

  • '@GET': 요청 URL과 요청 파라미터를 지정할 수 있다. 데이터를 조회하기 위해 사용된다
  • '@POST': 요청 URP과 요청 바디를 지정할 수 있다. 데이터를 추가하기 위해 사용된다.
  • '@PUT': 요청 URP과 요청 바디를 지정할 수 있다. 데이터를 수정하기 위해 사용된다.
  • '@DELETE': 요청 URL과 요청 파라미터를 지정할 수 있다. 데이터를 삭제하기 위해 사용된다.
  • '@Path': 동적으로 변경되는 URL 경로를 지정할 수 있다.
  • '@Query': GET 요청 시 쿼리 파라미터를 지정할 수 있다.
  • '@Body: POST 요청 시 요청 바디를 지정할 수 있다.
  • '@Header': 요청 헤더를 지정할 수 있다.
  • '@Headers': 요청 헤더를 다수 지정할 수 있다.
  • '@FormUrlEncoded': 요청 바디가 폼 데이터일 경우 사용한다.
  • '@Field': Form Url Encoded 방식으로 요청을 보낼 때 사용한다.
  • '@Multipart': 요청 바디가 멀티파트일 경우 사용한다.

 

 또한 Retrofit은 Gson, Jackson, Moshi와 같은 JSON 처리 라이브러리와 함께 사용할 수 있다. 이를 통해 서버로부터 수신된 JSON 응답을 쉽게 자바 객체로 변환할 수 있다.

 

 

 Retrofit은 안드로이드 앱에서 RESTful API를 호출하는 데 매우 유용한 라이브러리이다. 매우 간단하게 구현이 가능하고, 작은 코드베이스를 가지고 있기 때문에 안드로이드 앱 개발에 매우 적합하다.

 

 

응답코드


  • 200 : 클라이언트 요청 정상수행 (응답에 대한 메시지가 포함)
  • 201 : 리소스 생성 요청에 대한 정상처리
  • 202 : 리소스 생성 요청이 비동기적으로 처리될 때 사용
  • 204 : 클라이언트 요청 정상수행 (응답에 대한 메시지 미포함, 보통 삭제요청에 사용)
  • 400 : 클라이언트 요청이 부적절할 때 사용 (부적절한 이유를 응답 Body에 넣어줘야 함)
  • 401 : 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청할 때 사용
  • 403 : 클라이언트가 인증상태와 무관하게 응답하고 싶지 않은 리소스를 요청할 때 사용 (400 사용을 권장)
  • 404 : 클라이언트가 요청한 리소스가 존재하지 않을 때 사용
  • 405 : 클라이언트가 불가능한 메소드를 사용했을 때

'Android > Kotlin' 카테고리의 다른 글

Enum Class  (0) 2023.05.26
Abstract Class & Interface  (0) 2023.05.25
변수 캡슐화하기 (Encapsulate Variable)  (0) 2023.05.12
REST API, Retrofit  (0) 2023.05.01
REST API에서 HATEOAS란?  (0) 2023.05.01
profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!