Kotlin Coroutine(코루틴) - 개념과 사용법
프로그램에서 태스크를 수행할 때 운영체제를 사용할 수 있게 하고 특정한 작업에 작업 시간을 할당하는 것을 선점한다라고 합니다. 선점형 멀티태스킹(Preemptive Multitasking)은 운영체제가 강제로 태스크의 실행을 바꾸는 개념이고 협력형 멀티태스킹은 태스크들이 자발적으로 양보하며 실행을 바꿀 수 있는 개념입니다. 코루틴은 이러한 협력형 멀티태스킹을 이용하여 동시성 프로그래밍을 지원하는데, 해당 루틴을 일시 중단(Suspended)하는 방식으로 Context-Switching을 없애고, 최적화된 비동기 함수를 통해 비선점형으로 작동하기 때문에 복잡한 넌블로킹 코드를 간결하게 해주며 더 나은 성능을 지원합니다. launch와 async 코루틴에서 사용되는 함수는 suspend()로 선언된 지연 함..