Android Jetpack

Simple Coroutine - 1 (코루틴이란?)

개복치 개발자 2022. 2. 12. 03:03

 개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.

 

개복치개발자 | Linktree

uyalae@naver.com

linktr.ee

 

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

 

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

 

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

 

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

 

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

 

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

 

다른 언어를 한번 살펴볼까요? 파이썬 문서를 보니 파이썬에도 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://ko.wikipedia.org/wiki/%EC%BD%94%EB%A3%A8%ED%8B%B4

 

코루틴 - 위키백과, 우리 모두의 백과사전

코루틴(coroutine)은 루틴의 일종으로서, 협동 루틴이라 할 수 있다(코루틴의 "Co"는 with 또는 togather를 뜻한다). 상호 연계 프로그램을 일컫는다고도 표현가능하다. 루틴과 서브 루틴은 서로 비대칭

ko.wikipedia.org

 

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

 

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

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

developer.android.com