2022. 5. 20. 13:41ㆍIT/안드로이드
오늘의 주제는 인터넷에서 데이터 가져오기 입니다 !
학습할 내용
- REST 웹 서비스의 정의
- Retrofit 라이브러리를 사용하여 인터넷에서 REST 웹 서비스에 연결하고 응답 받기
- Moshi 라이브러리를 사용하여 JSON 응답을 데이터 객체로 파싱하기+
시작 코드는 아래의 안드로이드 개발 공식 소스로 시작합니다.
프로젝트 이름은 MarsPhotos 앱 입니다.
시작 코드 URL:
https://github.com/google-developer-training/android-basics-kotlin-mars-photos-app/tree/starter
화성 사진 데이터는 웹 서버에 저장된다. 이 데이터를 App으로 가져오려면, 연결을 설정하고 인터넷을 통해 서버와 통신해야한다.
대부분의 웹 서버는 REST라는 Stateless 웹 아키텍처를 사용한다.
이 아키텍처를 제공하는 웹 서비스 : RESTful 이라고 한다.
표준화 방법으로, URI를 통해 RESTful 웹 서비스에 요청이 전송된다. URI는, 서버의 리소스 이름으로 식별한다.
android-kotlin-fun-mars-server.appspot.com
이것이 URI이고,
https://android-kotlin-fun-mars-server.appspot.com/realestate
https://android-kotlin-fun-mars-server.appspot.com/photos
요런게 URL이다. URL은, 리소스를 획득하는 구체적 location을 포함한 URI라고 이해했다.
즉, 기본 access 네트워크 위치가 모두 지정된 주소이다. 이러한 URL은, http: 를 통해 가져올수 있으며, /realestate 또는 /photos 등으로 식별 되는 리소스를 참조한다. 이 Codelab에서는 /photos 를 사용한다.
* 우리가 주로 사용하는 URL은 실제로 URI의 한 유형이다.
참고로 , stateful, stateless , REST, HTTP에 관한 내용은 아래 링크에 잘 설명이 되어있다. 참고하자.
웹 서비스 응답은, 일반적으로 Key - value Pair 로 구조화된 데이터를 나타내는 XML 또는 JSON 등의 일반적인 웹 형식 중 하나로 지정되어있다.
이번 작업에서는, 서버와 네트워크 연결을 설정, 서버와 통신하고 JSON 응답을 받는다.
이미 작성되어 있는 백엔드 서버를 사용하고, 타사 라이브러리인 Retrofit 라이브러리를 사용해 backend 서버와 통신한다.
REST 웹 서비스
- 웹 서비스는 인터넷을 통해 제공되는 소프트웨어 기반 기능으로, 앱은 이 기능을 통해 요청을 실행하고 데이터를 다시 가져올 수 있습니다.
- 일반적인 웹 서비스는 REST 아키텍처를 사용합니다. REST 아키텍처를 제공하는 웹 서비스를 RESTful 서비스라고 합니다. RESTful 웹 서비스는 표준 웹 구성요소 및 프로토콜을 사용하여 빌드됩니다.
- 표준화된 방법으로 URI를 통해 REST 웹 서비스에 요청을 전송합니다.
- 웹 서비스를 사용하려면 앱은 네트워크 연결을 설정하고 서비스와 통신해야 합니다. 그런 다음 앱은 사용할 수 있는 형식으로 응답 데이터를 수신하고 파싱해야 합니다.
- Retrofit 라이브러리는 앱의 REST 웹 서비스 요청을 지원하는 클라이언트 라이브러리입니다.
- 변환기를 사용하여 웹 서비스에 전송하고 웹 서비스에서 가져오는 데이터로 해야 할 일을 Retrofit에 알립니다. 예를 들어 ScalarsConverter 변환기는 웹 서비스 데이터를 String 또는 다른 프리미티브로 취급합니다.
- 앱이 인터넷에 연결할 수 있으려면 Android 매니페스트에 "android.permission.INTERNET" 권한을 추가합니다.
JSON 파싱
- 웹 서비스의 응답은 구조화된 데이터를 나타내는 일반적인 형식인 JSON 형식으로 지정되는 경우가 많습니다.
- JSON 객체는 키-값 쌍 모음입니다.
- JSON 객체 모음은 JSON 배열입니다. 웹 서비스의 응답으로 JSON 배열을 받게 됩니다.
- 키-값 쌍의 키는 따옴표로 묶입니다. 값은 숫자이거나 문자열일 수 있습니다.
- Moshi 라이브러리는 JSON 문자열을 Kotlin 객체로 변환하는 Android JSON 파서입니다. Retrofit에는 Moshi와 호환되는 변환기가 있습니다.
- Moshi는 JSON 응답의 키와 이름이 같은 데이터 객체의 속성을 일치시킵니다.
- 키에 다른 속성 이름을 사용하려면 해당 속성에 @Json 주석과 JSON 키 이름으로 주석을 추가합니다.
'IT > 안드로이드' 카테고리의 다른 글
Ubuntu에서 logcat 파일로 저장 하기. (0) | 2022.08.16 |
---|---|
Android - 인터넷에서 이미지를 로드하여 표시하기 (6) | 2022.05.27 |
Android - Thread (1) | 2022.05.16 |
Android - Test code 작성시 추가해야할 header들 (4) | 2022.05.16 |
Android - Test 디렉터리 생성하기 (0) | 2022.05.16 |