firststep.kr
10주차 마일스톤약 8시간 소요난이도: 중급

백그라운드 비동기 추론 & WorkManager 배터리 최적화

안드로이드 백그라운드 실행 제한, WorkManager 기반 충전 중 배치 인퍼런스 및 배터리 절전 아키텍처

#WorkManager#BackgroundTasks#BatteryOptimization#DozeMode

이번 주 핵심 학습 목표

  • 1
    Android Doze 모드와 App Standby 버킷이 백그라운드 작업에 미치는 영향을 파악한다.
  • 2
    WorkManager의 제약조건(Constraints - 배터리 충전 중, 기기 유휴 상태)을 설정한다.
  • 3
    대용량 사진 자동 분류 등 고부하 AI 작업을 야간 충전 시 백그라운드로 안전하게 스케줄링한다.

실전 학습 가이드 & 코드 워크스루

1. 안드로이드 백그라운드 정책과 AI의 충돌

AI 모델 추론은 CPU/GPU를 100% 점유할 수 있으므로, 사용자가 앱을 닫은 상태에서 무분별하게 실행되면 배터리 광탈 경고와 함께 OS에 의해 강제 종료(Kill)됩니다.

따라서 다음과 같은 상황에서만 배치 인퍼런스를 허용해야 합니다:

  1. 기기가 충전기에 연결되어 있는가? (setRequiresCharging(true))
  2. 사용자가 기기를 조작하지 않는 유휴 상태인가? (setRequiresDeviceIdle(true))
  3. 배터리 잔량이 위험 수준이 아닌가? (setRequiresBatteryNotLow(true))

2. CoroutineWorker 실전 구현

kotlin
class GalleryAiTaggingWorker(
    appContext: Context,
    params: WorkerParameters
) : CoroutineWorker(appContext, params) {

    override suspend fun doWork(): Result = withContext(Dispatchers.Default) {
        try {
            val unclassifiedPhotos = fetchUnclassifiedPhotos()
            for (photo in unclassifiedPhotos) {
                if (isStopped) return@withContext Result.retry()
                classifyPhoto(photo)
            }
            Result.success()
        } catch (e: Exception) {
            Result.retry()
        }
    }
}

📂 이번 주차 학습 자료 & 실습 파일 다운로드

2개 파일 제공

강의 교안 PDF, 실습 스타터 코드, 치트시트 등 학습에 필요한 자료를 별도로 열람하거나 다운로드하여 학습하세요.

10주차_핵심요약_치트시트.pdf

PDF•1.8 MB

10주차 핵심 이론 및 아키텍처 다이어그램 치트시트

10주차_실전_스타터코드.zip

ZIP•3.4 MB

Android Studio 프로젝트 템플릿 및 실습 코드 예제

실전 체크리스트 & 셀프 점검

0 / 4 완료

직접 코드를 구현하고 테스트를 완료할 때마다 체크해 보세요. 브라우저에 자동 보관됩니다.

WorkManager Kotlin CoroutineWorker 상속 및 doWork() 구현
Constraints.Builder()로 setRequiresCharging(true) 제약조건 추가
OneTimeWorkRequestBuilder 및 PeriodicWorkRequest 등록
WorkInfo 상태 관찰(Observer)을 통한 UI 진행률 동기화
ADVERTISEMENTfirststep.kr ad
1st

firststep.kr 12주 완성 실전 커리어 로드맵

파이썬, 소프트웨어설계, DB, 데이터과학, 딥러닝, LLM 9종 코스 100% 무료

로드맵 둘러보기