노트 AAB와 APK Android App Bundle and Android Package
프론트엔드 #tooling · 연결된 개념 2개
쉽게 말하면 APK는 다 조립된 완제품 가구고, AAB는 부품 상자예요. 구글 플레이가 상자에서 내 기기에 맞는 부품만 골라 조립해 보내 주니까 사용자가 받는 파일이 작아져요.
비유의 한계 부품 상자라서 기기에 바로 설치할 수는 없어요. 직접 테스트하려면 APK를 따로 만들고, 최종 APK는 Google이 보관하는 앱 서명 키로 서명돼요.
Android 앱을 배포하는 두 가지 패키지 형식이다.
APK (Android Package): 기기에 바로 설치되는 완성된 설치 파일. 하나의 APK에 모든 화면 밀도용 리소스와 모든 CPU(Central Processing Unit) 아키텍처용 코드를 담으면 파일이 커진다
AAB (Android App Bundle, .aab): 설치 파일이 아니라 재료 묶음 . Google Play에 올리면 Play가 사용자 기기의 화면 밀도, CPU, 언어에 맞는 부분만 골라 최적화된 APK를 만들어 내려보낸다. 그래서 사용자가 받는 크기가 작다
실무 포인트
Google Play는 2021년 8월부터 새 앱을 AAB로만 받는다(2026 기준)
AAB는 기기에 바로 설치할 수 없다. 기기에서 직접 테스트할 때는 APK를 만든다
./gradlew bundleRelease # Play 업로드용 AAB
./gradlew assembleRelease # 기기 설치용 APK (adb install)
AAB는 Play 앱 서명 (Play App Signing)과 한 묶음이다. 최종 APK는 Google이 보관하는 앱 서명 키로 서명되고, 개발자가 가진 키스토어는 업로드하는 AAB에 서명해 올린 사람이 맞는지 증명하는 업로드 키 (Upload Key) 역할을 한다. 업로드 키를 잃어버려도 재설정을 요청할 수 있다
iOS에서 App Store Connect에 올리는 .ipa가 Android의 AAB에 해당하는 위치다
번들을 작게 만드는 생각은 웹의 코드 스플리팅과 동적 임포트 , 번들 크기 줄이기 과 비슷하다. 필요한 부분만 골라 보낸다.
출처: Android 개발자 문서 - About Android App Bundles · Play App Signing
연결된 개념
이 노트를 가리키는 문서 아직 없습니다.
뜻이 가까운 노트 생성과 평가 분리 결과물을 만드는 에이전트와 판정하는 에이전트를 나눈다. 자기 결과를 스스로 채점하면 관대해지기 때문이다. 판정은 가능한 한 결정론적 검증기에 먼저 맡긴다.
웹뷰 브리지(웹↔네이티브 통신) 앱 안의 웹뷰에서 웹과 네이티브가 서로 말을 거는 길. User-Agent 표식, 메시지 핸들러, 스크립트 실행, URL(딥링크)이 있다.
모바일 네이티브 저장소 앱을 다시 실행해도 남도록 iOS·Android 앱이 네이티브 코드로 쓰는 저장소. 설정값, 구조화된 데이터, 비밀 값마다 쓰는 API가 다르고, 웹뷰의 localStorage와는 자동으로 공유되지 않는다.
Pages Router에서 App Router로 App Router는 Next.js 13에서 도입된 app/ 디렉터리 기반 라우터로, 서버 컴포넌트·중첩 레이아웃(Nested Layouts)·스트리밍을 기본으로 한다. pages/ 기반의 Pages Router에서 옮길 때 바뀌는 생각을 정리한다.
커넥션 드레이닝과 무중단 재시작 배포 중 서버를 재시작하는 몇 초 동안 로드밸런서가 그 서버로 요청을 보내면 502가 난다. 먼저 로드밸런서에서 빼고(드레이닝), 진행 중인 요청을 마친 뒤 재시작하고, 준비되면 다시 넣는다.