Android 개발을 시작 했을 때, 저는 rxJava를 이용해 서버 통신 등 비동기 프로그래밍을 수행했었습니다. 그런데, 이제는 명백히 flow와 Coroutine이 대세가 된 것을 느낄 수 있습니다 (공식 문서, 컨퍼런스 등등). 이처럼 안드로이드 개발과 Kotlin이 떨어질 수 없게 되면서 Coroutine 또한 당연하게 사용법을 알아야만 했습니다. 그런데, 정작 Coroutine의 Android에서 사용법 (viewModelScope, lifecycleScope.launch 와 같이...)만 알 뿐, Coroutine의 원리는 무엇인지에 대해 깊이 고민해 볼 시간을 가지지 않았습니다. 이에 반성하여, 자세하게 코루틴이 어떻게 동작하는지도 공부해보았습니다. ---------- 장점? 먼저 Corou..