1. 코루틴의 개념


1-1. 비동기 프로그래밍의 필요성

비동기 프로그래밍은 다음과 같은 이유로 필요하다.

  1. 효율성 : I/O 작업 동안 CPU가 대기하지 않고 다른 작업을 수행할 수 있음
  2. 사용자 경험 개선 : UI 프로그램에 비동기를 사용하면 화면이 멈추지 않고 유연하게 작동
  3. 리소스 관리 최적화 : 스레드를 많이 생성하지 않고도 많은 작업 처리 가능

1-2 코루틴이란?

코루틴이란 협력적 멀티태스킹을 가능하게 하는 경량 스레드이다. 주요 특징은 다음과 같다.

코루틴 vs 스레드

항목 코루틴 스레드
생성 비용 경량 (적은 리소스 소모) 무겁다 (스택 메모리 필요)
동시성 협력적 멀티태스킹 선점형 멀티태스킹
개수 제한 수천 ~ 수백만 개 가능 개수 제한적

1-3 코루틴의 주요 특징

  1. Suspend Function
  2. 경량성
  3. 동시성 제공