1. 코루틴의 개념과 배경
- 코틀린 코루틴(Coroutine)은 비동기 프로그래밍을 간소화하기 위해 설계된 강력한 도구입니다.
- 비동기 작업을 마치 동기 코드처럼 작성할 수 있게 해주어, 복잡한 콜백 구조나 스레드 관리로부터 개발자를 해방시켜 줍니다.
- 하지만 코루틴을 제대로 이해하기 위해서는 먼저 기본적인 개념부터 살펴볼 필요가 있습니다.
1.1 루틴, 서브루틴, 코루틴의 관계
- 루틴
- 루틴은 컴퓨터 프로그램의 일부로, 특정한 일을 실행하기 위한 일련의 명령입니다. 이를 함수 또는 프로시저라고도 합니다.
- 루틴은 프로그램의 흐름을 구성하는 기본 단위로, 메인 루틴과 서브 루틴으로 나뉩니다.
- 메인 루틴은 프로그램의 주 흐름을 담당하며, 서브 루틴은 메인 루틴 내에서 호출되어 특정 작업을 수행합니다
- 서브루틴
- 서브루틴은 메인 루틴 내에서 호출되는 함수로, 프로그램의 특정 부분을 처리합니다.
- 서브루틴은 호출 시점에 실행이 시작되고, 종료 시점에 호출한 루틴으로 돌아갑니다
- 서브루틴은 항상 호출한 지점에서 시작하여 완료될 때까지 제어권을 가지며, 호출한 루틴은 서브루틴이 완료될 때까지 다른 작업을 수행할 수 없습니다.
- 서브루틴은 한 번 호출되면 실행이 완료될 때까지 다른 작업을 수행할 수 없습니다.
- 즉, 서브루틴이 실행 중일 때는 다른 서브루틴이나 메인 루틴의 실행이 중단됩니다
- 코루틴(Coroutine)
- 여기서 코루틴은 협력적(Co-operative)으로 실행되는 루틴을 의미합니다.
- 코루틴은 실행 중간에 중단되었다가 나중에 중단된 지점에서 다시 실행을 재개할 수 있는 특별한 형태의 루틴입니다.
용어의 기원
'코루틴(Coroutine)'