Android 앱은 흔히 백그라운드 작업 — 데이터 동기화, 업로드, 주기적 작업처럼 즉각적인 UI 밖에서 실행되는 작업 — 을 해야 합니다. Android는 서로 다른 사용 사례를 위한 여러 메커니즘(WorkManager, Service, coroutine)과 OS의 중요한 제약을 제공합니다.
백그라운드 작업 옵션
COROUTINE (ViewModel scope에서) → UI/화면에 묶인 비동기 작업 (네트워크 호출,
데이터 로딩) — 화면이 활성일 때 실행
WORKMANAGER → 완료되어야 하는 연기 가능하고 보장된 백그라운드 작업 (앱이 닫히거나
기기가 재부팅되어도): 동기화, 업로드, 주기적 작업, 재시도
→ 대부분의 지속적 백그라운드 작업을 위한 권장 솔루션
FOREGROUND SERVICE → 진행 중이며 사용자에게 보이는 백그라운드 작업 (음악 재생, 내비게이션,
활성 추적) — 지속적 알림을 표시
SERVICE → 일반 백그라운드 구성 요소 (대부분의 경우 WorkManager/coroutine으로
대체됨)
