계발자 블로그
[JetPack] WorkManager 본문
안드로이드에는 백그라운드 작업을 수행할 수 있게 해주는 여러가지 방법들이 있습니다.
AlarmManager, JobScheduler, Firebase JobDispatcher 등등
하지만 구글은 계속 백그라운드 작업을 제한 하는 정책을 제안하게 됩니다.
그러다 2018년 구글 I/O에서 새롭게 백그라운드 작업을 도와줄 WorkManager가 공개 되었습니다.
WorkManager란
안드로이드의 백그라운드 작업을 처리하는 방법 중 하나로 Android Jetpack 아키텍처의 구성 요소 중 하나입니다.
앱이 종료 되거나 기기가 다시 시작 되어도 실행 예정인 지연 가능한 비동기 작업을 쉽게 예약할 수 있게 해줍니다.
WorkManager 특징
- 실행이 보장되며 제약조건을 붙일 수 있습니다. 예를 들면 네트워크 연결 시에만 작업이 처리 되도록 할 수 있습니다.
- 장치의 상태를 존중합니다. 예를 들면 앱이 도즈모드일 경우 작업 처리를 위해 기기를 깨우지 않습니다.
- 구글 플레이 서비스와 관계 없이 동작합니다.
- 작업이 실행/대기중인지 성공/실패 했는지 등의 상태 조회를 할 수 있습니다.
- 작업 A, B 결과에 따라 처리 되는 작업 C를 만들고, 다시 C의 결과에 의존하는 작업 D를 만들 수 있습니다. (체이닝)
- 사용자를 간섭하지 않아도 제약 조건이 만족 되면 작업이 즉시 실행 됩니다.
WorkManager라고 해서 항상 최선의 방법은 아닙니다.
WorkManager는 앱의 프로세스 수명과 별도로 수행 되어야 하는 작업에 알맞습니다.
예를 들어 이미지를 서버에 업로드 해야 하거나, 데이터를 분석하고 이를 데이터 베이스에 저장해야 하는 작업에는
WorkManager를 사용하는 것이 좋습니다.
그러나 사용자가 현재 보고 있는 UI를 빠르게 변경해야 하는 작업이나 물건 구입 과정에서의 결제 진행 등 즉시 처리해야 하는 작업은 WorkManager를 사용하지 않는 것이 좋습니다.
WorkManager의 작업은 반드시 실행 되지만 상황에 따라 지연될 수 있고 다시 실행될 수 있다는 점을 기억해야 합니다.
인프런 냉동코더의 알기 쉬운 Modern Android Development 입문
'Android' 카테고리의 다른 글
[DI] Dependency Injection과 Dagger-Hilt (0) | 2024.01.07 |
---|---|
[JetPack] Navigation (JAVA) (0) | 2022.12.04 |
[JetPack] DataBinding (0) | 2022.08.16 |
[JetPack] ViewBinding (0) | 2022.07.27 |
[Android] Bottom Navigation View (0) | 2022.07.19 |