withContext는 정말 항상 스레드를 바꿀까? Dispatcher vs. Thread Context Switching — 운영체제 관점에서 코루틴을 다시 본다 Kotlin에서 코루틴을 쓸 때 가장 자주 마주하는 함수 중 하나가 withContext()입니다.많은 개발자들이 withContext(Dispatchers.IO)를 이렇게 이해하곤 합니다: “이 코드는 반드시 IO 전용 스레드에서 실행되겠지?” 하지만 이 생각은 정확히 맞지 않습니다.실제로는 Dispatcher 변경이 항상 OS-level 스레드 전환(Thread context switching)을 의미하지 않으며, 코루틴 실행 컨텍스트 전환은 매우 다르게 동작합니다. 이 글에서는 다음 세 가지 관점을 중심으로 이 오해를 바로잡고자 합니다:..