관리 메뉴

나만을 위한 블로그

[Android] Retrofit(레트로핏)이란? 본문

Android

[Android] Retrofit(레트로핏)이란?

참깨빵위에참깨빵 2020. 3. 18. 19:50
728x90
반응형

업데이트)  2020.10.05 - 관련 예제 포스팅 추가

 

참고한 사이트 : http://devflow.github.io/retrofit-kr/

 

Retrofit - 한글 문서

A type-safe HTTP client for Android and Java

devflow.github.io

https://galid1.tistory.com/617

 

Java - Retrofit이란? (retrofit 사용법 자세한 설명)

1. Retrofit이란 BackEnd 또는 FrontEnd 를 개발하다보면 거의 필수적으로, 다른 서버에 데이터를 요청할 일이 생기게 됩니다. 특히나 FrontEnd 의 경우에는 서버로부터 데이터를 받아와 출력하는 경우가 잦습니다..

galid1.tistory.com

https://dev-juyoung.github.io/2017/11/10/android-retrofit-basic/

 

Android Retrofit 기본 사용법 · Cro, Developer

개인 App을 만들거나 현업에서 App을 만들다보면, 단순한 화면이동 등의 기능으로는 사용자의 요구사항을 충당하기 힘이 듭니다. 일반적인 App은 서버와 클라이언트가 네트워크 통신을 통해 데이터를 주고 받으며 실질적으로 화면에 정보를 표출하고, 입력된 정보를 저장하는 등의 여러가지 기능들이 구현되어 있습니다. App에서의 네트워킹 기능은 필수라고 해도 과언이 아닐 정도이죠. 그리고 요즘은 일반적으로 서버와 클라이언트가 데이터를 주고 받는 과정에서, RES

dev-juyoung.github.io

https://medium.com/@prakash_pun/retrofit-a-simple-android-tutorial-48437e4e5a23

 

Retrofit— A simple Android tutorial

For this tutorial, we are going to see how to use Retrofit HTTP client in your Android application.

medium.com

레트로핏 + 리사이클러뷰 예제

 

https://android.jlelse.eu/consuming-rest-api-using-retrofit-library-in-android-ed47aef01ecb

 

Consuming REST API using Retrofit Library in Android

Hi Android beginner developers, in this tutorial, i’ll introduce you to the Retrofit Library and also try to provide a step by step guide…

android.jlelse.eu

 

https://www.youtube.com/watch?v=Vh92eSAEu5c&t=1678s

 

1. 레트로핏이란?

2. 레트로핏 예제 - 서버에서 값 가져와 앱에서 보여주기

3. 레트로핏으로 앱에서 CRUD하는 방법 < 1 >

4. 레트로핏으로 앱에서 CRUD하는 방법 < 2 >

 

 

Retrofit : (기계 속에 원래 없던 부품 등을) 새로 장착하다 / 넣다 / 제공하다

안드로이드에서의 Retrofit : 서버와의 HTTP 통신을 통해 전달된 데이터를 앱에서 특정 형태로 받아볼 수 있게 하는 라이브러리

 

레트로핏을 한 문장으로 정의하라고 하면 서버와 HTTP 통신을 해서, 서버로부터 받은 데이터를 앱에서 출력해 사용자가 볼 수 있게 하는 라이브러리라고 할 수 있겠다.

 

일반적인 앱은 서버와 클라이언트가 네트워크 통신으로 정보를 주고받고 이 정보를 화면에 뿌리기도 하며, 입력된 정보를 저장하는 등의 기능들이 구현돼 있다. 이걸 네트워킹 기능이라고 한다.

요즘은 서버와 클라이언트가 데이터를 주고받는 과정에서 REST API라는 방식을 써서 네트워크 통신을 한다고 한다.

AsyncTask와 HttpURLConnection을 쓰면 되지만 직접 구현해줘야 하는 것들이 꽤 많다.

네트워크 연결과 해제, 데이터 파싱, 파싱된 데이터를 데이터 클래스에 저장, 에러처리 등. 이것들을 우리 대신 처리해주는 도구도 있을 것이다. 그 중 하나가 레트로핏이다.

 

레트로핏을 써본 결과, 의존성 추가를 제외하고 크게 5가지가 필요하다.

 

  • 웹 서버(더미 데이터를 써서 레트로핏을 쓸 수도 있다)
  • 웹 서버 주소를 변수로 가진 클라이언트 클래스 (XXXApiClient.java 형태로 쓰기도 하더라. 역시 더미 데이터를 쓸 수도 있다)
  • PHP 파일에 접근해 해당 파일의 기능을 수행하는 함수들을 담은 인터페이스 (더미 데이터를 쓴다면 필요없을 수도 있다)
  • PHP 파일 : 서버에 쿼리 때려야 하니까 당연히 필요.
  • 모델 클래스 : 리사이클러뷰를 사용할 때 쓰는 그 클래스. POJO, DTO 등 불리는 방식은 많은데 여기선 모델 클래스라고 부른다. 서버에서 값을 받아와 담을 변수를 정할 때 사용한다.

레트로핏에선 어노테이션(@)이라는 특수 주석을 사용하기 때문에 어노테이션에 대한 약간의 공부도 필요하다.

웹 서버의 주소를 변수 혹은 상수로 할당할 때 http://가 들어가야 하며, 주소 끝에 /를 붙여줘야 한다.

공식문서를 읽어보면 baseURL()에 설정된 서버 URL에 /가 없다.

그런데 실제로 이걸 써주지 않으면 앱에서 데이터를 받아오지 못하는 경우가 드물게 발생했다. 그 뒤로는 http://~~~.~~.~~.~~/ 식으로 내 웹 서버의 주소를 적어주기 시작했다.

변수 혹은 상수로 설정한 웹 서버 URL의 마지막에는 /을 꼭 넣어주자.

 

각 자바 클래스와 인터페이스, php 파일의 코드들은 예제마다 조금씩 형태가 다르지만 기본적인 틀은 같다.

이것은 예제 코드들을 분석하면서 왜 이 클래스와 인터페이스가 필요한지, 이 코드는 무슨 기능을 하는지를 자신이 직접 공부하고 분석해야 할 것 같다.

구글에 한글, 영어로 검색하면 다양한 예제들이 있으니 참고해보자.

 

참고로 더미 데이터를 쓸 때 어떤 응답이 오는지 확인하고 싶다면 POSTMAN(포스트맨) 등 여러 툴들이 있다.

난 포스트맨을 쓰는 중인데 이걸로도 충분하고, 사용법이 간단하고 이를 설명한 글도 많아서 사용법을 익히는 게 어렵지 않다. 다크테마도 지원해서 흰색 테마로 눈이 뻑뻑할 때 바꿔쓰면 좋다.

아래는 설치 파일을 다운받을 수 있는 공식 홈페이지 주소다.

https://www.postman.com/downloads/

 

Postman | The Collaboration Platform for API Development

Simplify workflows and create better APIs – faster – with Postman, a collaboration platform for API development.

www.postman.com

 

반응형
Comments