Android Jetpack

Retrofit이란?

----___<<<<< 2022. 4. 12. 04:01

 

 Retrofit에 대해서 알아보겠습니다.

 

 많이들 써보셨을 거에요.

 

 혹시 한번도 안 쓰신 분들을 위해서 간단하게 설명드리면 

 

 Network통신입니다.

 

 우리는 앱을 사용하면서 다양한 데이터를 서버에서 받아옵니다.

 

 

 대표적으로 서버에서 데이터를 받아올 때도 있고

 

 

 그리고 localDB에서 가져올 때도 있습니다.

 

 서버와 통신은 Retrofit으로, LocalDB사용은 ROOM으로 실습을 해보겠습니다.

 

 저희는 ViewModel과 LiveData를 배웠기 때문에, ViewModel과 LiveData도 함께 사용해볼텐데

 

 이번에는 코루틴 Coroutine이라는 친구도 함께 배워볼겁니다.

 

 간단하게 코루틴(Coroutine)에 대해서 알아보고 가겠습니다.

 

 뒤에서 좀 더 자세하게 알아보기 전에 간단하게만 알아보고 가겠습니다.

 

 코루틴을 처음 들어보시는 분들은

 

 코루틴 / 루틴 이름이 비슷하니깐 뭔가 얘랑 관련이 있는건가 라고 생각이 듭니다.

 

 그런데 코루틴은 Koroutine 이 아니라 Coroutine입니다. Kotlin이란 이름과는 별 상관이 없습니다.

 

 아래 처럼 여러 언어에서 사용한다고 하네요.

https://ko.wikipedia.org/wiki/%EC%BD%94%EB%A3%A8%ED%8B%B4

 

다른 언어를 한번 살펴볼까요? 파이썬 문서를 보니 파이썬에도 Coroutine이라는 설명이 있습니다.

 

https://docs.python.org/3/library/asyncio-task.html

 

 

 위키피디아를 보면

 

 위키피디아에서는 코루틴을 아래와 같이 설명해고 있습니다.

 

코루틴(coroutine)은 루틴의 일종으로서, 협동 루틴이라 할 수 있다(코루틴의 "Co"는 with 또는 togather를 뜻한다). 상호 연계 프로그램을 일컫는다고도 표현가능하다. 루틴과 서브 루틴은 서로 비대칭적인 관계이지만, 코루틴들은 완전히 대칭적인, 즉 서로가 서로를 호출하는 관계이다. 코루틴들에서는 무엇이 무엇의 서브루틴인지를 구분하는 것이 불가능하다. 코루틴 A와 B가 있다고 할 때, A를 프로그래밍 할 때는 B를 A의 서브루틴으로 생각한다. 그러나 B를 프로그래밍할 때는 A가 B의 서브루틴이라고 생각한다. 어떠한 코루틴이 발동될 때마다 해당 코루틴은 이전에 자신의 실행이 마지막으로 중단되었던 지점 다음의 장소에서 실행을 재개한다.[1]

 

 여기까지 보면, 전혀 이해가 가지 않게 쓰여져 있습니다. 간단하게 제가 설명드리면 비동기 작업을 할 때 편리하게 쓸 수 있습니다. 예제를 보면 이해가 잘 가실텐데, 일단 구글 공식문서에는 어떻게 쓰여져 있나 보면 아래와 같이 적혀져 있습니다.

 

코루틴은 Android의 비동기 프로그래밍에 권장되는 솔루션입니다. 주목할 만한 기능은 다음과 같습니다.

  • 경량: 코루틴을 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있습니다. 정지는 많은 동시 작업을 지원하면서도 차단보다 메모리를 절약합니다.
  • 메모리 누수 감소: 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행합니다.
  • 기본으로 제공되는 취소 지원: 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달됩니다.
  • Jetpack 통합: 많은 Jetpack 라이브러리에 코루틴을 완전히 지원하는 확장 프로그램이 포함되어 있습니다. 일부 라이브러리는 구조화된 동시 실행에 사용할 수 있는 자체 코루틴 범위도 제공합니다.

 여기에서 주목할 것 은 Jetpack 통합입니다.

 

 Jetpack에 항목들(AAC/WorkManager)에 코루틴을 이용해서 구현할 수 있습니다.

 

https://developer.android.com/kotlin/coroutines?hl=ko 

 

Android의 Kotlin 코루틴  |  Android 개발자  |  Android Developers

Android의 Kotlin 코루틴 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다. 코루틴은 Kotlin 버전 1.3에 추가되었으며 다른 언어에서 확

developer.android.com

 

 그리고 구글에서 설명하는 방식을 보면 callback hell을 해결할 수 있다고도 나옵니다.

 

https://www.youtube.com/watch?v=ZTDXo0-SKuU

 

 그럼 하나씩 해보도록 하겠습니다.

 

'Android Jetpack' 카테고리의 다른 글

Simple Coroutine / ViewModelScope  (0) 2022.04.16
ViewModelScope  (0) 2022.04.13
ViewModelScope  (0) 2022.04.11
Coroutine Simple Example  (0) 2022.04.11
What is Coroutine?  (0) 2022.04.10