일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- android ar 개발
- 2022 플러터 설치
- rxjava disposable
- 멤버변수
- 스택 큐 차이
- 서비스 쓰레드 차이
- android retrofit login
- ar vr 차이
- 큐 자바 코드
- 클래스
- 안드로이드 라이선스
- 안드로이드 라이선스 종류
- rxjava cold observable
- 플러터 설치 2022
- ANR이란
- jvm이란
- 안드로이드 유닛테스트란
- 스택 자바 코드
- rxjava hot observable
- 자바 다형성
- 객체
- 안드로이드 레트로핏 사용법
- 서비스 vs 쓰레드
- 안드로이드 유닛 테스트
- Rxjava Observable
- 안드로이드 유닛 테스트 예시
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 os 구조
- 안드로이드 레트로핏 crud
- jvm 작동 원리
- Today
- Total
나만을 위한 블로그
[Android] Retrofit(레트로핏)이란? 본문
업데이트) 2020.10.05 - 관련 예제 포스팅 추가
참고한 사이트 : http://devflow.github.io/retrofit-kr/
https://galid1.tistory.com/617
https://dev-juyoung.github.io/2017/11/10/android-retrofit-basic/
https://medium.com/@prakash_pun/retrofit-a-simple-android-tutorial-48437e4e5a23
레트로핏 + 리사이클러뷰 예제
https://android.jlelse.eu/consuming-rest-api-using-retrofit-library-in-android-ed47aef01ecb
https://www.youtube.com/watch?v=Vh92eSAEu5c&t=1678s
1. 레트로핏이란?
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/