이노베이팅 컨설팅 신청하기 (클릭)
logo
|
Blog

    앱 MVP Android 포그라운드 서비스: 선언·시작·권한 예외를 나누는 5가지 기준

    Android 앱 MVP에서 포그라운드 서비스의 사용자 작업, 유형 선언, 백그라운드 시작, 사용 중 권한을 나누어 점검하는 기준입니다.
    Sep 20, 2026
    앱 MVP Android 포그라운드 서비스: 선언·시작·권한 예외를 나누는 5가지 기준

    앱이 화면 밖에서도 사용자가 알아야 하는 작업을 계속해야 한다면, 단순히 “백그라운드에서 실행한다”는 문장만으로 범위를 정하기 어렵습니다. Android의 포그라운드 서비스는 사용자에게 보이는 알림과 함께 실행되는 서비스이지만, 선언 방식·시작 시점·서비스 유형·권한 상태에 따라 가능한 동작이 달라집니다. MVP에서는 모든 장기 작업을 포그라운드 서비스로 옮기기보다, 이 기능이 정말 사용자에게 지금 보이는 작업인지부터 구분하는 편이 안전합니다.

    이 글은 Android MVP에서 포그라운드 서비스 사용 여부를 정할 때 확인할 기록을 정리합니다. 특정 앱의 정책 준수, 스토어 승인, 배터리 사용량 또는 출시 결과를 보장하지 않습니다. 실제 대상 SDK, 사용 서비스 유형, 기기와 사용자 흐름은 팀의 빌드와 테스트로 별도 확인해야 합니다.

    먼저 정할 것: 사용자가 지금 알아야 하는 작업인가

    포그라운드 서비스는 일반적인 예약 작업의 동의어가 아닙니다. 사용자가 재생 중인 오디오, 현재 위치를 사용하는 탐색, 진행 중인 데이터 전송처럼 현재 진행을 인지할 필요가 있는 작업인지 먼저 적습니다. “언젠가 동기화한다” 또는 “앱이 꺼져도 해 둔다”만으로는 선택 근거가 되지 않습니다.

    기능 설명에는 작업을 시작한 사람과 계기, 화면을 떠난 뒤에도 남아야 하는 사용자 약속, 알림에서 사용자가 이해할 수 있는 상태, 작업이 끝나거나 멈췄을 때의 다음 행동을 분리해 적어 두세요. 사용자 작업과 직접 연결되지 않는 지연 가능 작업이라면 Android의 작업 스케줄링 도구가 더 맞는지 검토할 여지가 있습니다. 이 판단은 구현 난이도보다 사용자가 현재 진행을 알 필요가 있는지에 초점을 둡니다.

    기준 1: 서비스 유형과 매니페스트 선언을 따로 확인합니다

    Android Developers는 각 포그라운드 서비스를 매니페스트의 service 요소로 선언하고, 어떤 일을 하는지 android:foregroundServiceType으로 표시하도록 안내합니다(C001). 한 서비스에 여러 유형이 실제로 해당하면 |로 구분해 선언할 수 있지만, 편의를 위해 관련 없는 유형을 넓게 넣는 방식은 기능 설명을 흐립니다.

    Android 14(API 34) 이상을 대상으로 하는 앱에서는 서비스 유형에 맞는 권한도 확인 대상입니다(C002). 따라서 MVP 기록에는 서비스 이름만 두지 말고 “사용자에게 보이는 작업”, “선택한 유형”, “그 유형에서 실제로 쓰는 자원”, “매니페스트 선언과 권한 파일의 위치”를 한 줄씩 대응시키는 편이 좋습니다. 선언이 빠졌을 때의 예외 처리와, 앱이 실제로 해당 자원을 쓰는 구간도 같은 QA 항목으로 남깁니다.

    기준 2: 앱이 화면 밖일 때의 시작 계기를 분리합니다

    Android 12(API 31) 이상을 대상으로 하는 앱은 원칙적으로 앱이 백그라운드일 때 포그라운드 서비스를 시작할 수 없고, 제한된 예외가 적용됩니다(C003). 예외가 있다는 사실만으로 어떤 푸시나 브로드캐스트에서도 시작할 수 있다고 정하면 안 됩니다. 사용자에게 보이는 화면 전환, 앱 관련 UI 동작, 특정 고우선순위 메시지처럼 각 계기마다 조건이 다릅니다.

    설계 문서에는 “앱이 보이는 상태에서 시작”과 “앱이 보이지 않는 상태에서 시작을 시도”를 별도 흐름으로 그리세요. 후자의 경우에는 예외 근거, 실패 시 사용자에게 보일 안내, 다시 앱을 열어 재개할 경로를 기록합니다. 고우선순위 메시지는 시스템이 일반 우선순위로 낮출 수 있으므로, 메시지 수신만을 실행 보장 신호로 취급하지 않는 편이 낫습니다(C004).

    기준 3: 카메라·마이크·위치처럼 사용 중 권한이 필요한가

    카메라, 마이크, 위치처럼 사용 중에만 허용되는 권한을 쓰는 서비스는 시작 시점 검토가 특히 중요합니다. Android 14 이상에서 앱이 백그라운드인 상태로 해당 유형의 서비스를 만들면, 일반적인 백그라운드 시작 예외가 있더라도 필요한 권한이 현재 유효하지 않아 SecurityException이 발생할 수 있다고 Android Developers는 설명합니다(C005).

    여기서 “권한을 이미 받았다”와 “지금 이 시작 시점에 사용할 수 있다”는 같은 문장이 아닙니다. 권한 화면의 선택 결과, 서비스 생성 순간의 앱 상태, 사용자가 기능을 직접 시작한 흐름, 거부·해제 뒤 대체 동작을 나눠 시험하세요. checkSelfPermission()의 반환값 하나만으로 백그라운드 서비스 생성 가능 여부를 결론내리지 않는 것이 좋습니다(C006).

    기준 4: 버전별 변화와 서비스 종료 조건을 함께 적습니다

    포그라운드 서비스 제약은 Android 버전과 target SDK에 따라 달라집니다. Android 15(API 35)를 대상으로 하는 앱에는 dataSync 유형의 실행 시간 제약이 있고, Android 16에서는 포그라운드 서비스에서 시작한 백그라운드 작업도 각 작업의 런타임 할당량을 따라야 한다고 문서화돼 있습니다(C007). 이는 모든 앱이 같은 시간에 종료된다는 뜻이 아니라, 선택한 유형과 연결된 후속 작업을 별도로 검토해야 한다는 신호입니다.

    MVP QA 표에는 최소한 대상 SDK, 사용 기기/Android 버전, 서비스 유형, 시작 계기, 실제 종료 또는 중단 관찰, 실패 뒤 사용자 경로를 남깁니다. 이 기록은 플랫폼 변화가 생겼을 때 “서비스가 있다”는 사실보다 무엇을 다시 확인할지 빠르게 찾게 해 줍니다.

    기준 5: 알림·중단·재개를 기능 완료와 섞지 않습니다

    포그라운드 서비스가 시작됐다고 사용자의 핵심 작업이 완료된 것은 아닙니다. 알림이 보이는지, 실제 작업이 진행되는지, 네트워크·권한·시스템 제약으로 중단됐는지, 앱 화면으로 돌아왔을 때 어떤 상태를 보여 줄지는 별도 상태입니다. 알림을 눌렀을 때의 목적지와 작업 취소 또는 재시도 동작도 실제 제품 흐름에서 확인하세요.

    출시 전에는 한 가지 대표 흐름을 선택해 앱이 보이는 상태에서 시작하고, 화면 전환 또는 잠금 뒤 상태를 관찰한 다음, 실패 조건에서 사용자가 무엇을 할 수 있는지 점검합니다. 앱마다 필요한 서비스 유형과 사용자 약속은 다르므로, 이 글의 체크리스트를 그대로 승인 기준으로 사용하기보다 팀의 기능 설명과 빌드 결과에 연결해야 합니다.

    우리 앱 MVP의 출시 전 기술 범위를 함께 정리해 보세요

    출시 전 기록 체크리스트

    1. 사용자가 지금 알아야 하는 작업과, 지연 가능한 작업을 구분했는가 2. 서비스 유형·매니페스트 선언·필요 권한이 실제 기능 설명과 대응하는가 3. 화면 밖 시작이 필요한 경우, 정확한 예외 근거와 실패 대안을 적었는가 4. 사용 중 권한이 필요한 자원은 시작 순간의 앱 상태까지 시험했는가 5. 대상 SDK와 Android 버전별 관찰, 중단·재개·종료 결과를 남겼는가

    자주 묻는 질문

    포그라운드 서비스는 앱이 종료돼도 언제나 시작할 수 있나요?

    아닙니다. Android 12 이상을 대상으로 하는 앱은 백그라운드에서의 포그라운드 서비스 시작이 제한되며, 문서에 열거된 예외 조건을 충족하는 경우만 별도로 검토할 수 있습니다. 앱의 실제 상태와 시작 계기를 함께 확인해야 합니다.

    매니페스트에 서비스만 선언하면 충분한가요?

    아닙니다. Android Developers는 서비스 유형 선언과 필요한 권한을 함께 안내합니다. 특히 Android 14 이상을 대상으로 하는 앱은 유형에 맞는 권한과 실제 사용 자원을 확인해야 합니다.

    이미 허용된 카메라 권한이 있으면 백그라운드에서 바로 시작해도 되나요?

    그렇게 단정할 수 없습니다. 사용 중 권한이 필요한 유형은 앱이 백그라운드일 때 서비스 생성 단계에서 예외가 발생할 수 있습니다. 기능을 사용자가 직접 시작한 흐름과 대체 경로를 실제 기기에서 검증하세요.

    MVP 기능 범위와 출시 전 확인 항목을 유인어스와 점검하기

    공식 출처

    Android Developers: Declare foreground services and request permissions

    Android Developers: Restrictions on starting a foreground service from the background

    Android Developers: Changes to foreground services

    관련 글: 앱 MVP 배터리 사용: 갱신·조건·중단·관찰을 나누는 기준

    Share article
    유인어스 정책자금·혁신기업 전환 컨설팅

    유인어스는 주식회사 넥스트빌더가 운영하는 정책자금 및 혁신기업 전환 컨설팅 브랜드입니다. 기업의 업종·업력·재무상태를 진단해 적합한 정책금융기관과 준비 절차를 안내합니다.

    유인어스 홈 컨설팅 신청 RSS