앱 MVP Android 알림 탭: 트램펄린·직접 이동·후속 처리를 나누는 5가지 기준
앱 MVP Android 알림 탭: 트램펄린·직접 이동·후속 처리를 나누는 5가지 기준
Android MVP에서 알림을 눌렀을 때 화면이 열리면, 흔히 ‘알림 딥링크가 끝났다’고 판단합니다. 그러나 알림 탭 뒤에 서비스나 BroadcastReceiver가 한 번 더 개입해 화면을 띄우는지, 사용자가 보게 될 Activity가 직접 연결돼 있는지, 화면이 열린 뒤 필요한 후속 처리는 무엇인지가 섞이면 Android 버전 변경이나 재진입 상황에서 문제가 남습니다.
Android Developers는 Android 12 이상을 타겟팅하는 앱에서 알림 탭 또는 액션 버튼 뒤 서비스·BroadcastReceiver가 `startActivity()`를 호출하는 알림 트램펄린을 제한한다고 설명합니다(C001). 권장 경로는 사용자가 보게 될 Activity와 연결된 `PendingIntent`를 알림 생성에 사용하는 것입니다(C002). 이 글은 특정 앱의 동작이나 출시 통과를 보장하지 않습니다. 팀이 알림 탭의 화면 이동과 후속 처리를 분리해 검수하는 기준을 제시합니다.
먼저 답하기: 알림 탭은 ‘한 번 열림’이 아니라 다섯 항목의 확인입니다
알림을 눌러 첫 화면이 보이는 것만으로 경로가 검증되지는 않습니다. 아래 다섯 질문은 알림 생성 코드, 사용자 화면, 백스택, 후속 작업, 실제 기기 관찰을 서로 다른 증거로 남기게 합니다.
구분 | 확인할 질문 | 완료로 오해하기 쉬운 신호 |
|---|---|---|
진입 대상 | 탭 뒤 사용자가 실제로 볼 Activity는 무엇인가 | 아무 화면 하나가 열림 |
연결 방식 | 알림의 PendingIntent가 그 Activity에 직접 연결되는가 | Receiver 로그가 남음 |
탐색 경로 | 이전 화면으로 돌아갈 때 어떤 백스택이 필요한가 | 뒤로가기 한 번이 동작함 |
후속 처리 | 로그·읽음 처리·데이터 갱신은 화면 전환과 분리됐는가 | 화면 진입 함수 안에서 모든 작업 수행 |
기기 검수 | 대상 OS·target SDK·중복 탭에서 결과를 기록했는가 | 개발 기기 한 대에서 성공 |
기준 1: 알림 탭의 최종 화면을 먼저 정합니다
알림은 사용자가 앱 안의 특정 맥락으로 이동하기 위해 누르는 진입점입니다. Android Developers의 알림 탐색 문서는 사용자가 알림을 선택했을 때 열 Activity와 그 Activity의 백스택을 별도로 구성하도록 안내합니다(C003). 따라서 기획 문서에는 ‘알림을 열면 상세로 이동’처럼 끝내지 말고, 어떤 상태의 상세 화면인지와 이전 화면으로 돌아갈 때 필요한 흐름을 적어야 합니다.
예를 들어 새 댓글 알림이라면 댓글이 붙은 항목을 여는 것과 댓글 목록을 열어 사용자가 항목을 선택하게 하는 것은 다른 결정입니다. 첫 번째는 도착 화면과 전달 데이터가 맞아야 하고, 두 번째는 목록의 필터·정렬·빈 상태가 맞아야 합니다. 둘 중 무엇을 택하든, 탭으로 화면을 띄웠다는 관찰은 콘텐츠가 로드됐거나 사용자가 내용을 읽었다는 증거가 아닙니다.
기준 2: 서비스·Receiver를 화면 전환의 중계로 쓰지 않습니다
알림 트램펄린은 알림 상호작용 뒤 앱 구성요소가 최종 Activity를 다시 시작하는 패턴입니다(C001). Android Developers는 Android 12 이상을 타겟팅하는 앱에서 이런 서비스·BroadcastReceiver 내부의 `startActivity()`를 제한하며, 시스템이 Activity 시작을 막을 수 있다고 설명합니다(C001). 이 제한은 화면 전환 경로의 성능과 사용자 경험을 위한 것입니다.
대신 사용자에게 보일 Activity와 연결된 `PendingIntent`를 만들고, 이를 알림을 구성할 때 사용합니다(C002). 이 말은 서비스나 Receiver가 전혀 필요 없다는 뜻이 아닙니다. 알림 수신, 상태 기록, 백그라운드 작업 같은 역할은 제품 요구에 따라 남을 수 있습니다. 다만 ‘사용자 탭 → 중계 구성요소 → startActivity’라는 화면 전환 경로와 그 밖의 처리를 같은 성공 신호로 묶지 않는 것이 핵심입니다.
알림을 탭한 뒤 출처를 남겨야 한다면 Android Developers는 extras를 이용하거나 `ActivityLifecycleCallbacks`, Jetpack lifecycle observer를 활용하는 방법을 제시합니다(C004). 따라서 분석 이벤트가 필요하다는 이유만으로 중계 Activity나 Receiver를 추가하기보다, 이벤트의 시작·완료 기준과 화면 생명주기 위치를 먼저 합의하세요.
기준 3: PendingIntent에는 화면 목적과 전달 데이터를 맞춥니다
`PendingIntent`는 시스템이 나중에 앱을 대신해 수행할 동작을 나타내므로, 알림마다 사용자가 기대할 화면 목적과 데이터가 일치해야 합니다. Android Developers는 Android 12 대상 앱이 생성하는 각 PendingIntent의 변경 가능성(mutability)을 명시하도록 요구한다고 설명합니다(C005). 이 요건은 ‘알림이 열렸다’는 테스트와 별도의 코드·보안 검토 대상입니다.
실무에서는 알림 종류, 대상 ID, 사용자가 볼 화면, 전달 데이터, PendingIntent 생성 지점, 변경 가능성 판단 근거를 한 줄씩 기록하면 좋습니다. 예를 들어 알림 ID와 서버 이벤트 ID를 같은 값으로 추정하지 말고, 실제로 전달한 값과 화면에서 해석한 값을 구분합니다. 민감한 값을 알림 extras에 넣지 않도록 데이터 최소화도 함께 점검하세요.
관련 글 앱 MVP Android 알림 탭: PendingIntent·중간 경유·도착 화면을 나누는 기준은 알림 탭의 일반적인 도착 경로를 다룹니다. 이 글은 그중 Android 12의 트램펄린 제한과 직접 PendingIntent 연결 검수에 집중합니다.
기준 4: 백스택과 후속 작업은 서로 다른 결과로 검수합니다
Android Developers의 알림 탐색 가이드는 일반 Activity와 특별한 Activity에서 백스택을 다르게 구성하는 예를 제공합니다(C003). 따라서 ‘알림에서 열었으니 뒤로가기는 앱을 종료해야 한다’ 또는 ‘항상 기존 목록으로 돌아가야 한다’처럼 하나의 규칙을 모든 알림에 적용하지 마세요. 사용자가 알림을 탭한 맥락과 앱의 실제 탐색 모델에 맞춰 각 흐름을 선택하고 기록해야 합니다.
또한 탭 후 읽음 처리, 원격 데이터 새로고침, 분석 이벤트 전송, 오류 복구는 화면 전환과 다른 완료 조건입니다. 예를 들어 화면이 먼저 열린 뒤 네트워크가 실패할 수 있고, 읽음 처리는 성공했지만 대상 콘텐츠가 삭제됐을 수 있습니다. 이때 화면 진입 성공, 데이터 표시 성공, 후속 처리 성공을 별도 로그와 QA 결과로 남겨야 원인을 섞지 않습니다.
기준 5: 실제 검수는 탭 횟수와 상태를 바꿔가며 기록합니다
Android Developers는 알림 트램펄린을 찾기 위해 알림을 탭한 뒤 SystemUI의 `NotifInteractionLog`를 확인하는 방법을 안내합니다(C006). 이 방법은 해당 환경에서 어떤 구성요소가 상호작용 결과로 시작됐는지 살펴보는 보조 진단입니다. 모든 기기·모든 버전에서 같은 결과를 보장하지 않으므로, 실제 QA 기록에는 기기, Android 버전, target SDK, 알림 종류, 앱의 실행 상태, 탭 횟수, 결과와 미확인 항목을 적으세요.
최소한 앱이 종료된 상태, 백그라운드 상태, 이미 대상 화면이 열린 상태에서 각각 한 번씩 시도해 보세요. 같은 알림을 빠르게 두 번 눌렀을 때 중복 화면이 쌓이는지, 대상 콘텐츠가 없을 때 어떤 안내가 보이는지, 뒤로가기가 제품 의도에 맞는지도 따로 확인합니다. 이 결과는 테스트한 빌드와 기기의 관찰일 뿐, 다른 배포 트랙이나 모든 사용자 환경의 결과로 확대하면 안 됩니다.
우리 서비스에 맞는 앱 MVP 진입·검수 기준 정리하기
자주 묻는 질문
알림 트램펄린이란 무엇인가요?
알림 탭 뒤 서비스나 BroadcastReceiver가 다시 Activity를 시작해 사용자가 보는 화면으로 보내는 중계 패턴입니다. Android 12 이상을 타겟팅하는 앱에서는 이 경로의 Activity 시작이 제한됩니다.
알림 탭에는 무엇을 연결해야 하나요?
사용자가 실제로 보게 될 Activity와 연결된 PendingIntent를 알림에 사용합니다. 어떤 화면으로 갈지, 백스택을 어떻게 구성할지, 추가 작업은 화면 전환과 별개로 기록합니다.
Receiver에서 startActivity를 하면 안 되나요?
알림 탭에 반응하는 서비스나 BroadcastReceiver가 Activity를 시작하는 방식은 Android 12 이상 대상 앱에서 제한됩니다. 현재 target SDK와 실제 알림 경로를 함께 확인해야 합니다.
알림을 눌러 화면이 열리면 검수가 끝난 건가요?
아닙니다. 정확한 대상 화면, 이전 화면으로의 복귀, 전달 데이터, 중복 탭, 오류·로그 처리까지 별도로 확인해야 합니다.
공식 출처
Android Developers: Behavior changes for apps targeting Android 12 — Notification trampoline restrictions — 2026-09-26 직접 확인
Android Developers: Start an Activity from a Notification — 2026-09-26 직접 확인
Android Developers: About notifications — 2026-09-26 직접 확인
발행일: 2026-09-26 · 작성: 유인어스 정책자금·정부지원사업 인사이트