[Kotlin] Coroutine - 코루틴의 내부 구현

코루틴은 디컴파일되면 일반 코드일 뿐이다. Continuation Passing Style(CPS, 연속 전달 방식) 이라는 형태로 동작하며, 결과를 호출자에게 직접 반환하는 대신 Continuation으로 결과를 전달한다. Continuation이라는 객체가 있고, 매 번 함수를 호출할 때마다 continuation을 넘겨준다. continuation은 Callback 인터페이스 같은 것으로, 재개를 해주는 인터페이스를 가진 객체인 것이다.
자세히 보기

[Kotlin] Coroutine - Cancellation and Timeouts

코루틴이 취소되기 위해서 협조적인 방식을 취하는데 크게 2가지 방법이 있다. 첫 번째, 주기적으로 suspend function을 호출하기 (suspend 되었다가 다시 재개될 때 cancel 되었는지를 확인해서 Exception을 던져주는 방식). 두 번째, 명시적으로 취소 상태를 확인하기 (isActive 상태를 확인하여 false일 때 해당 코루틴을 종료시키는 방식)
자세히 보기

[Kotlin] Coroutine - Basics

코루틴 Coroutine은 비동기 콜백 처리를 순차적인 코드로 작성할 수 있게 해주는 코틀린 기능이자, 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴(concurrency design pattern)이다.
자세히 보기