패스잇
모바일 개발 · 중급

코틀린 코루틴에서 Dispatchers.Main, Dispatchers.IO, Dispatchers.Default의 역할과 각각 어떤 종류의 작업에 적합한지 구체적인 사용 사례와 함께 설명해주세요.

힌트 · Main은 UI 작업, IO는 네트워크/디스크 I/O, Default는 CPU-intensive 작업에 사용됩니다. 적절한 Dispatcher 선택이 성능에 미치는 영향을 설명하세요.

Dispatchers.MainDispatchers.IODispatchers.DefaultUI 스레드블로킹 I/O

모범답안

코틀린 코루틴에서 Dispatchers는 코루틴이 실행될 스레드를 지정하는 역할을 합니다.

  • Dispatchers.Main은 UI 스레드에서 코루틴을 실행합니다. UI 업데이트와 같이 UI와 관련된 작업에 사용해야 합니다. 예를 들어, LiveData 값을 변경하거나, 뷰의 속성을 변경하는 경우 Main Dispatcher를 사용합니다.

  • Dispatchers.IO는 네트워크 작업이나 디스크 I/O와 같은 블로킹 I/O 작업에 최적화되어 있습니다. 데이터베이스 쿼리, 파일 읽기/쓰기, 네트워크 요청 등에 사용하면 됩니다.

  • Dispatchers.Default는 CPU를 많이 사용하는 작업에 적합합니다. 이미지 처리, 복잡한 계산 등 시간이 오래 걸리는 작업에 사용하면 UI 스레드를 막지 않고 백그라운드에서 처리할 수 있습니다.

적절한 Dispatcher를 선택하는 것은 앱 성능에 매우 중요합니다. UI 스레드에서 CPU를 많이 사용하는 작업을 실행하면 앱이 멈추거나 응답하지 않을 수 있습니다. 반대로, I/O 작업을 Default Dispatcher에서 실행하면 스레드 풀이 효율적으로 사용되지 않아 성능 저하가 발생할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Android / Kotlin 면접 질문

← Android / Kotlin 면접 질문 전체 보기