
어제 아침 사내 슬랙에 "QPR3 Beta 떴는데 회귀 테스트 돌릴까요?" 가 올라왔습니다. 릴리스 노트를 끝까지 읽고 제가 남긴 답은 "이번엔 안 돌립니다" 였습니다.
릴리스 노트에 적히지 않은 변경, 그리고 캘린더에 박혀 있는 진짜 마감일. 지금 볼 건 이 두 개입니다. (2026-10-06 기준)
Android 17 QPR3 Beta 1에서 실제로 풀린 것들
2026년 10월 2일 공개됐습니다. 빌드는 DP11.260918.006, 픽셀 11 계열만 DP11.260918.005 이고 보안 패치는 2026년 8월 5일, Play services는 26.32.34 입니다. 대상 기기는 픽셀 6a부터 11 계열까지인데 전체 목록은 공식 노트를 직접 확인하시는 게 정확합니다. 그리고 안정판은 2027년 3월 Feature Drop 입니다. 12월로 적어둔 글이 돌아다니던데 아닙니다.
API 레벨은 37 그대로입니다. 38 아닙니다. 공식 노트에도 앱에 영향을 주는 API 변경은 없다고 적혀 있어서, targetSdk나 컴파일 SDK를 손댈 일이 없습니다.
체감 변경은 전부 UI 쪽이더라고요. Notes 퀵세팅 타일(초기엔 픽셀 11 중심), 상태바 VPN 인디케이터 강조, 무음 아이콘을 볼륨 UI와 통일, 블루투스·기내모드 아이콘 소폭 확대. 코드는 그대로인데 스크린샷은 달라지는, 전형적인 QPR 입니다.
미활성 플래그는 기대 접으시는 게 좋아요. Proactive Assistance 토글이 비활성 상태로 다시 보였고, 게임 컨트롤러를 마우스로 쓰는 기능이나 근처 기기 잠금해제 얘기가 돌지만 전부 코드 분석·플래그 기반이라 출시 보장이 없습니다. 기획서에 올리지 말고 메모만 해두는 쪽이 낫습니다.

버그 픽스 목록을 역추적 회귀 테스트 체크리스트로 쓰는 법
픽스가 20건 이상 들어갔는데, 목록을 보다가 등골이 좀 서늘했어요. 지문 멈춤, Face Unlock·biometric 크래시, eSIM, 셀룰러, Wi-Fi 재접속 실패, NFC, 블루투스 오디오, 배터리 드레인. 지난 분기에 "로그인이 안 돼요", "오프라인에서 복구가 안 돼요" 로 들어온 CS를 앱 버그로 분류해 닫았다면, 그 티켓들은 다시 열어볼 값어치가 있어요.
1순위는 생체인증 쓰는 앱입니다. BiometricPrompt 를 쓰는 금융·헬스 앱이라면, QPR2 때 급하게 넣은 재시도·폴백 땜질이 플랫폼 픽스 이후 역효과를 내는지 봐야 해요. 이중 프롬프트나 무한 재시도가 그렇게 생깁니다. 플랫폼이 고쳤으면 이제 우리 워크어라운드가 버그입니다.
연결성은 복구 경로가 핵심입니다. Wi-Fi 재접속 픽스가 들어갔으니 네트워크 콜백 순서와 오프라인 큐 플러시 타이밍을 같이 봐야 하는데, 저는 이럴 때 비행기 모드를 열 번쯤 거칠게 토글하면서 업로드 재시도가 중복 전송으로 번지는지 확인합니다. 깔끔한 시나리오로는 안 잡히는 것들이 여기서 튀어나옵니다.
하나 더. 생체·셀룰러 콜백을 메인 스레드에서 기다리는 코드가 있으면 플랫폼 지연이 ANR로 보입니다. StrictMode와 ApplicationExitInfo 수집을 아예 안 하고 있었다면 거기부터 켜는 게 순서입니다.

안드로이드 17 베타 앱 점검에서 생략해도 되는 항목
"QPR 베타 떴다 = 전체 회귀" 는 반사신경 오류입니다. 실제로 코드를 고쳐야 했던 건 메이저 릴리스(API 37)와 minor SDK 릴리스(37.1 → 37.2)였습니다. API diff가 0이고 안정판까지 5개월이 남은 지금, 인력 적은 팀이면 Beta 2~3 또는 Platform Stability 시점에 한 번 돌리는 게 합리적입니다.
다만 보안 섹션은 직접 읽으시는 걸 권합니다. 직전 QPR2를 보면, 처음 공지만 훑고 "minor니까 무변화" 로 넘긴 팀이 놓친 변경이 베타 중간에 들어왔습니다. sendUssdRequest() 로 착신전환을 거는 경로가 막힌 건이고, CALL_PHONE 권한만으로는 안 되게 바뀐 겁니다. 사기 방지 목적이라고 해요. 통신·금융 앱에서 이 API를 쓴다면 이제 USSD_ERROR_NOT_ALLOWED 콜백이 떨어지니, 실패 분기를 조용히 삼키지 말고 사용자에게 다이얼러로 유도하는 경로를 만들어 두는 게 안전합니다. 공지 한 줄을 건너뛴 결과가 장애 리포트로 번지는 전형적인 경로입니다.
ForegroundServiceStartNotAllowedException 때문에 QPR3를 의심하는 분들도 보이는데요, 이건 QPR3 신규 규칙이 아니라 안드로이드 12 이후 누적된 제약입니다. 볼 거라면 startForegroundService 호출 경로가 전부 허용 트리거(유저 상호작용, 적절한 포그라운드 서비스 타입)를 타는지, 그리고 캐치 블록이 예외를 조용히 삼키고 있지 않은지만 확인하시면 됩니다.
그리고 QPR 베타는 픽셀 전용 트랙입니다. One UI나 HyperOS에 그대로 내려오지 않으니까, QPR3 통과가 시장 호환성 검증은 아니라는 점도 같이 보시면 됩니다.
상태바 아이콘 몇 px가 인셋 처리를 드러내는 순간
가장 조용하면서 위험한 게 UI 변경입니다. 아이콘 확대와 VPN 인디케이터 강조는 공식 behavior change가 아니지만 상태바 높이에 영향을 줍니다. 그런데 이 바닥은 이미 edge-to-edge로 다져져 있어요. targetSdk 35 앱은 안드로이드 15부터 화면 끝까지 그리는 방식이 강제됐고, 그때는 windowOptOutEdgeToEdgeEnforcement 로 빠져나갈 길이 있었습니다. targetSdk 36으로 올리면 안드로이드 16 기기에서 그 속성이 무시되면서 빠져나갈 길도 사라집니다. 그래서 상태바 높이를 24dp로 박아둔 화면이 제일 먼저 깨집니다.
탐지기는 스크린샷 비교밖에 없습니다. 스펙에 안 적힌 변경은 유닛 테스트로 안 잡히니까요. 커스텀 상태바 오버레이, 전체화면 비디오 플레이어, 카메라 프리뷰 세 화면만 캡처해서 겹쳐보세요. 여기서 깨진다면 QPR3가 원인이 아니라, 원래 틀려 있던 인셋 처리가 드러난 겁니다.
버전 분기도 함정입니다. 같은 QPR3인데 픽셀 6a와 픽셀 11의 기능 집합이 다릅니다. Notes 타일은 픽셀 11 계열, Gemini 부트 애니메이션은 일부 최신 픽셀에 한정이라서, Build.VERSION 으로 분기하면 틀립니다. PackageManager.hasSystemFeature() 나 서버 플래그로 가는 게 맞아요.
개인적으로는 메인폰에 베타를 올리는 것보다 에뮬레이터 시스템 이미지를 먼저 띄우는 쪽을 추천합니다. 베타에서 되돌릴 때 데이터가 초기화되고, 메인폰이면 결제·생체·업무 앱이 같이 흔들려서 하루가 날아가더라고요. 실기는 16KB 페이지 사이즈 검증처럼 꼭 필요한 항목에만 쓰시면 됩니다. 네이티브 .so 를 포함한 앱이라면 앱 정보 > 고급(16KB 모드 동작 시에만 표시)의 "Run app with page size compat mode" 를 켠 상태와 끈 상태 양쪽 다 봐야 합니다.

2027년 3월 정식 전에 캘린더에 박아둘 날짜
진짜 마감일은 Play 정책 쪽입니다. 2026년 8월 31일부터 신규·업데이트 앱은 API 36 이상(연장 승인 시 11월 1일), 기존 앱이 신규 노출을 유지하려면 API 35 이상이고, 2027년 8월(예년 패턴상 8월 말)부터 API 37 요구 예정입니다. Wear·Automotive는 API 35 이상, TV·XR은 API 34 이상. 이 표가 QPR3보다 먼저 스프린트에 들어가야 합니다.
안드로이드 18은 트랙이 별개입니다. QPR 베타는 안드로이드 18 미리보기가 아니고, Developer Preview 자리는 Canary 채널로 대체됐습니다. 첫 베타가 2027년 2월, Platform Stability가 2027년 3월, 스테이블은 2027년 2분기로 점쳐지는 정도입니다. 3주 뒤인 10월 28~29일 Android Dev Summit에서 안드로이드 18 그래픽 기능이 예고된다고 하니, QPR3를 볼 실질 여유는 딱 3주 정도겠네요.
산출물은 세 개로 정리했습니다.
- QPR2 시기 CS 티켓 재분류 — 지문·Wi-Fi·블루투스 키워드로 검색해서 재오픈 후보 추리기
- 세 화면 스크린샷 비교 — 상태바 오버레이, 비디오 플레이어, 카메라 프리뷰
- API 37 대응 백로그 티켓 생성 — 기한은 2027년 8월 말 가정으로 역산
이 중 1번과 3번은 베타를 깔지 않고도 오늘 할 수 있습니다.
지원 기기 전체 목록, Beta 2 예정일, QPR3 전용 보안 변경 유무는 제가 확인 못 한 부분이라 developer.android.com 원문을 한 번 보시는 게 안전합니다.
저도 작년 QPR 때 폰 밀고 하루를 날려본 적이 있어요. 그날 찾아낸 버그는 두 건이었는데, 두 건 다 나중에 보니 CS 티켓에 이미 적혀 있던 내용이었습니다. 플래시 명령을 치기 전에 지난 분기 티켓부터 열어보는 쪽이 훨씬 빠른 길이었던 겁니다.

'Android 개발 > 트러블슈팅' 카테고리의 다른 글
| 6년차도 커서만 깜빡였다: 낯선 레거시 코드 읽는 순서 (0) | 2026.10.11 |
|---|---|
| 에뮬레이터 3분 부팅을 90밀리초로: Robolectric로 JVM에서 UI 테스트 돌린 일지 (0) | 2026.10.09 |
| 안드로이드 메모리 누수, LeakCanary와 프로파일러로 20회 재현 실측 일지 (0) | 2026.10.05 |
| 지하철에서 요청이 죽던 자리, 지수 백오프로 안드로이드 네트워크 재시도 다시 짠 일지 (0) | 2026.09.27 |
| KMP SwiftPM 의존성 한 줄 선언, 빌드는 됐는데 심볼이 안 뜬 이유 (0) | 2026.09.23 |