비동기 작업에서는 실행 위치나 스레드를 제어할 필요가 자주 생긴다. UI앱의 경우 UI업데이트는 메인 스레드에서만 가능하고, 서버 앱에서는 무거운 연산은 별도 스레드 풀로 분리하는 경우를 예로 들 수 있다. 이를 가능하게 해주는 도구가 바로 ContinuationInterceptor 이다. Coroutine 을 처음 배울때는 Interceptor 의 구현체인 Dispatcher 만 알게 되는데, Dispatcher 가 바로 Interceptor 의 구체클래스인 것을 알면 Continuation 을 "가로채서" 별개의 스레드에 실행하는 역할을 맡은 클래스인것이 좀더 와닿는다. 인터페이스 정의 interface ContinuationInterceptor : CoroutineContext.Element { ..