반응형

Android/platform 7

[Android] 백그라운드 작업 처리 : Coroutines 와 WorkManager 비교

Coroutines 과 WorkManager는 모두 백그라운드 작업 처리와 관련이 있지만, 그 사용 목적과 동작 방식이 다릅니다. 두 기술의 차이를 비교하면서 각 기술이 어떤 상황에서 적합한지 설명하겠습니다. Coroutines 란?코루틴은 비동기 작업 처리를 위한 Kotlin 언어의 기능으로 경량화된 스레드를 이용하여 병렬 작업을 수행할 수 있도록 해줍니다.특히 UI 스레드와 분리하여 백그라운드에서 비동기 작업을 효율적으로 처리할 수 있습니다. UI 스레드와 분리: 코루틴은 기본적으로 UI 스레드와 분리된 작업을 할 수 있어 UI 스레드를 차단하지 않음경량 스레드: 기존의 스레드에 비해 훨씬 더 경량화된 작업 처리 방식으로 많은 양의 비동기 작업을 효율적으로 처리 가능지속성 없음: 코루틴은 앱이 종료..

Android/platform 2025.04.16

[Android] WorkManager로 백그라운드 작업 처리

WorkManager 란?WorkManager 는 Android Jetpack의 백그라운드 작업 처리 라이브러리로,앱이 꺼지거나 기기가 재부팅되어도 작업을 보장할 수 있는 API네트워크 업로드로그 정리이미지 백업주기적인 데이터 동기화 Worker 클래스 정의Work 를 사용하면 WorkManager 는 자동으로 백그라운드 스레드에서 Worker.doWork() 를 호출합니다. 백그라운드 스레드의 출처는 WorkManager 의 Configuration 에 명시된 Executor 입니다.기본적으로 WorkManager 에서 개발자를 위해 Executor 를 설정하지만, 개발자가 직접 맞춤 설정할 수 있습니다.class IntroImageWorker( context: Context, params..

Android/platform 2025.04.16

[Android] 백그라운드 서비스 (Background Service) 란? 포그라운드 서비스와의 차이점

백그라운드 서비스란?백그라운드 서비스는 사용자가 앱을 사용하지 않을 때에도 실행되는 작업을 의미합니다.즉, 앱이 화면에 표시되지 않거나 사용자와 상호작용하지 않는 상태에서도 실행됩니다.이런 서비스는 주로 백그라운드 작업, 장시간 실행되는 비시각적 작업에 사용됩니다. 주요 예시클라우드 동기화: 서버와 데이터를 주기적으로 동기화로컬 데이터베이스 유지 관리로그 데이터 저장 및 전송특정 조건에서 알림 전달  백그라운드 서비스의 실행 방식백그라운드 작업을 수행하기 위한 주요 메커니즘은 다음과 같습니다. 1) WorkManager장기간 실행되거나 연기될 수 있는 작업을 처리하는 데 적합시스템 리소스(배터리, 네트워크 상태 등)에 따라 작업 실행을 최적화데이터 동기화, 주기적인 배치 작업에 권장2) JobSchedu..

Android/platform 2024.12.02

[Android] 바인딩 서비스 (Bound Service) 란? 포그라운드 서비스와의 차이점

바인딩 서비스 (Bound Service) 는 안드로이드 앱에서 클라이언트와 서비스 간에 상호작용이 필요할 때 사용하는 서비스의 한 종류입니다.  서비스는 기본적으로 UI 없이 백그라운드 작업을 수행하지만, 바인딩 서비스를 통해 클라이언트(액티비티 또는 다른 구성요소)와 서비스 간에 데이터를 주고받거나 메서드를 호출할 수 있습니다.  바인딩 서비스의 주요 특징클라이언트-서비스 간 상호작용: 클라이언트는 바인딩 서비스를 통해 서비스의 공개 메서드에 접근할 수 있습니다.생명주기 관리: 바인딩 서비스는 클라이언트가 연결되어 있는 동안에만 실행되며, 모든 클라이언트가 연결을 끊으면 서비스가 종료됩니다.클라이언트-서비스 연결: bindService() 를 호출하여 클라이언트와 서비스를 연결하며, 서비스는 onBi..

Android/platform 2024.12.02

[Android] 포그라운드 서비스(Foreground Service) 개요 및 구현 방법

포그라운드 서비스(Foreground Service)포그라운드 서비스는 사용자가 인식할 수 있는 중요한 작업을 수행하는 서비스입니다. 이 서비스는 백그라운드에서 실행되지만, 사용자에게 알림(Notification)을 통해 실행 중임을 지속적으로 알려야 합니다. 시스템 자원을 효율적으로 관리하면서 중요한 작업을 처리할 때 사용됩니다.  포그라운드 서비스의 특징알림 표시포그라운드 서비스는 알림을 반드시 표시해야 합니다. 알림은 사용자가 서비스를 인식할 수 있게 도와줍니다. 알림은 상태 바나 알림 영역에 표시되며, 서비스가 실행되는 동안 계속 표시됩니다.시스템 종료 방지일반적인 백그라운드 서비스는 자원 부족 시 시스템에 의해 종료될 수 있지만, 포그라운드 서비스는 시스템에 의해 종료되지 않습니다. 따라서 장시..

Android/platform 2024.11.29

[Android] startActivityForResult() 대신 registerForActivityResult() 사용하는 방법

startActivityForResult()와 onActivityResult()는 Android에서 Activity 간 데이터를 주고받기 위해 사용되었지만, AndroidX Activity와 Fragment 1.2.0 이상에서는 더 간편하고 안전한 registerForActivityResult() API를 사용하는 것이 권장됩니다.  이 API는 코드 구조를 더 깔끔하고 유지보수 가능하게 만듭니다.  주요 변경 사항Deprecated된 메서드: startActivityForResult()와 onActivityResult()대체 API: ActivityResultLauncher와 registerForActivityResult()  사용법예시: 다른 Activity로 이동하여 결과 받기 ActivityRes..

Android/platform 2024.11.27

[Android] FCM 메시지 동작의 이해 : Notification과 Data 차이점 정리

Firebase Cloud Messaging(FCM) 은 모바일 앱과 서버 간에 메시지를 전송하는 강력한 도구입니다. FCM에서 메시지는 크게 Notification 와 Data Payload 로 나뉩니다. 이 두 가지는 각각 다른 방식으로 동작하고, 앱에서 호출되는 메소드도 다릅니다.  이를 이해하려면 먼저 각 메시지의 특성과 동작 방식을 파악해야 합니다.  NotificationNotification 은 주로 사용자에게 표시되는 푸시 알림을 위해 설계되었습니다. 메시지가 FCM 서버에서 클라이언트 앱으로 전송될 때 FCM이 자동으로 메시지를 처리하여 알림을 표시합니다. 이 메시지는 백그라운드 상태 또는 포그라운드 상태에서 다르게 동작합니다. 백그라운드 상태앱이 백그라운드에 있거나 종료된 경우, 메시지..

Android/platform 2024.11.25
반응형