목표

알기 쉽게 코루틴 개념을 설명하고, 실제로 업무에서 자주 하는 실수들과 상황별 코드 작성법을 공유합니다.

여기서는 Dispatcher에 대한 자세한 설명을 하지 않습니다.

바쁘신 분은 하기 쉬운 실수들과 그래서 코루틴 어떻게 써? 만 보셔도 좋습니다.

출처

책 한권만 읽은 사람이 가장 위험하다 해서 두 권 읽었습니다.

코루틴이란?

coroutine → co(cooperative 협력) routine(루틴) 서로 협력하는 루틴이라는 의미입니다.

함수와 자원을 공유하면서도 동시에 실행될 수 있는 비동기 작업을 지원하기 위해 사용됩니다. 코루틴은 협력적 멀티태스킹을 통해, 실행 중인 루틴이 자발적으로 실행을 일시 중지하고 다른 루틴에 실행(스레드)을 양도할 수 있습니다. 이는 프로그램의 다른 부분이 필요할 때 실행을 계속할 수 있게 하여 자원 사용의 효율성을 높입니다

코루틴 왜 써야하는가?

코틀린을 위한 강력한 비동기 솔루션으로, 아래와 같은 장점이 있습니다.

  1. 간단하게 비동기 로직을 구현할 수 있고,
  2. 예측이 어려운 비동기 작업을 구조화된 동시성원칙을 적용해 비동기 작업을 구조화 → 비동기 작업을 어느정드 예측하여 코드 작성 가능
  3. 코루틴이 동작하는 범위를 한정해 관리하여 안정성을 높일 수 있습니다.
  4. 코루틴은 스레드 생성보다 훨신 가벼워서, 비동기에 대한 비용이 적습니다.