코루틴

· Android
코루틴 비동기 경량 스레드 - "Co: 함께" + "routine: 작업 처리단위" = "Coroutine: 어떤 작업을 함께 처리한다." - 예전에는 ANR 오류를 해결하기 위해 스레드-핸들러나 AsyncTask를 이용했음. 하지만 API 30에서 deprecated되었고 코루틴 이용을 권장하고 있음 - 일반적인 스레드는 자유로운 제어가 힘들고 구현도 복잡하지만, 코루틴은 가볍고 많은 기능을 제공함 CoroutineContext 코루틴 처리를 어떻게 할 것인지에 대한 요소들의 집합 - Dispatcher : 코루틴을 처리할 스레드를 셋팅하고 할당하는 역할 - Job : 생성된 코루틴을 컨트롤 (생명 주기, 부모 자식 관계 정리 및 관리) Coroutine Dispatcher - 코루틴을 스레드에 배분하..
· Android
코루틴(Coroutine) CoroutineScope [ 코루틴이 실행되는 범위. 코루틴을 실행하고 싶은 Lifecycle에 따라 원하는 Scope를 생성하여 코루틴이 실행될 작업 범위를 지정할 수 있음 ] 1. 사용자 지정 CoroutineScope : CoroutineScope(CoroutineContext) // 메인 쓰레드에서 실행될 사용자 정의 Scope val scope = CoroutineScope(Dispatchers.Main) scope.launch { // 메인 쓰레드 작업 } // 백그라운드에서 실행될 사용자 정의 Scope CoroutineScope(Dispatchers.IO).launch { // 백그라운드 작업 } 2. GlobalScope : 앱이 실행될 때부터 종료될 때까지 ..
· Android
ANR (Activity Not Response) 액티비티가 응답하지 않는 오류 상황 액티비티를 작성할 때 ANR을 고려하지 않으면 앱이 수시로 종료될 수 있다 액티비티로 구성한 앱화면은 사용자 이벤트에 빠르게 반응해야 한다. 그런데 액티비티가 사용자 이벤트에 5초 이내에 반응하지 않으면 ANR 오류가 발생한다. 시스템에서 액티비티를 수행하는 수행 흐름을 메인 스레드 또는 UI 스레드라고 한다. 메인 스레드가 오래 걸리는 작업을 실행한다고 해서 그 자체로 오류가 발생하지는 않는다. 아무리 오래 걸려도 사용자가 액티비티 화면을 터치하지 않는 등 이벤트가 없다면 오류가 발생하지 않는다. 그러나 사용자가 언제 화면을 터치할 지 모르므로 액티비티를 작성할 때는 항상 ANR 오류를 고려해야 한다. 액티비티에서 시..
YOONJELLY
'코루틴' 태그의 글 목록