APK vs AAB 완벽 비교 가이드 – Android 앱 형식 차이 완전 해부
Android 앱 세계에서 "APK"와 "AAB"라는 두 용어를 들어보셨을 것입니다. 2021년 이후 Google은 신규 앱의 공개 형식으로 AAB(Android App Bundle)를 의무화했지만, 많은 사용자가 아직 두 형식의 차이를 정확히 이해하지 못하고 있습니다. 이 글에서는 APK와 AAB의 구조, 작동 원리, 사용자에게 미치는 영향을 철저히 비교합니다.
APK(Android Package Kit)란?
APK는 Android 초창기부터 사용된 앱 배포 형식입니다. 기본적으로 ZIP 아카이브 형식이며, 앱 실행에 필요한 모든 요소가 하나의 파일에 패키징되어 있습니다.
app.apk/
├── AndroidManifest.xml // 앱 기본 정보 (권한, 액티비티, 서비스)
├── classes.dex // Java/Kotlin으로 작성된 프로그램 코드
├── classes2.dex // 멀티 DEX 구성 시 추가 코드
├── res/ // 이미지, 레이아웃 XML, 문자열 리소스
├── assets/ // 폰트, 사운드, 데이터베이스 등 원시 데이터
├── lib/ // 네이티브 라이브러리 (C/C++ 코드)
│ ├── arm64-v8a/
│ ├── armeabi-v7a/
│ └── x86_64/
├── META-INF/ // 디지털 서명과 인증서 (변조 확인에 필수)
└── resources.arsc // 컴파일된 리소스 테이블APK의 특징은 모든 아키텍처와 화면 크기용 리소스를 포함한다는 점입니다. 어떤 기기에서든 동일한 APK가 동작하지만, 파일 크기가 커지기 쉽습니다.
AAB(Android App Bundle)란?
AAB는 2021년 Google이 도입한 새로운 공개 형식입니다. 기존 APK와 달리 AAB는 직접 설치 가능한 파일이 아니라, Google Play가 각 기기에 최적화된 APK를 생성하기 위한 "설계도"입니다. 개발자는 AAB 파일을 Google Play에 업로드하고, Google Play가 기기 특성에 맞춰 필요한 부분만 포함한 APK를 생성하여 배포합니다.
AAB 구조에는 "기능 모듈"이라는 개념이 있어, 앱의 일부를 필요할 때만 다운로드할 수 있도록 설계되었습니다. 이를 통해 게임 스테이지나 추가 기능을 사용자가 필요할 때만 다운로드하는 "온디맨드 배포"가 가능합니다.
APK와 AAB의 핵심 차이점
| 항목 | APK | AAB |
|---|---|---|
| 설명 | 직접 설치 가능한 패키지 | Google Play가 APK를 생성하는 공개용 포맷 |
| 설치 | 직접 사이드로딩 가능 | 단독 설치 불가, Google Play 경유 필요 |
| 파일 크기 | 모든 리소스를 포함해 큼 | 소스는 작지만 APK 생성 후 최적화 |
| 사용자 전송 크기 | 모든 사용자에게 동일 | 기기별 최적화로 15~30% 감소 |
| 지원 Android 버전 | 모든 버전 지원 | Android 5.0(API 21) 이상 |
| 모듈 배포 | 불가 | 가능 (온디맨드 기능 배포) |
사용자에게 미치는 영향
AAB 전환은 최종 사용자에게는 기본적으로 투명합니다. Google Play에서 앱을 설치할 때 기존과 동일한 경험을 얻을 수 있습니다. 오히려 파일 크기가 최적화되어 다운로드가 빨라지고 저장 공간이 절약되는 장점이 있습니다.
다만 AAB는 직접 설치가 불가능하므로, APK 파일을 사이드로딩하려는 경우 주의가 필요합니다. gptoapk.com 같은 도구를 사용하면 AAB에서 자동으로 호환 가능한 APK를 생성하여 다운로드할 수 있어 이 제한을 쉽게 우회할 수 있습니다.
bundletool로 AAB를 APK로 변환하는 방법
개발자나 고급 사용자를 위한 Google 공식 bundletool 사용법을 소개합니다:
// bundletool 다운로드
wget https://github.com/google/bundletool/releases/latest/download/bundletool-all.jar
// AAB에서 APK 세트 생성
java -jar bundletool-all.jar build-apks \
--bundle=app.aab \
--output=app.apks \
--mode=universal
// 생성된 APK 세트를 ZIP으로 압축 해제
unzip app.apks -d app-apks/
// universal.apk가 압축 해제 폴더에 생성됩니다이 방법으로 생성된 APK는 Google Play가 배포하는 것과 동일한 서명된 APK 파일입니다.
자주 묻는 질문 (FAQ)
APK가 더 이상 사용되지 않게 되나요?
아니요. AAB는 공개용 포맷이며, 최종적으로 사용자가 설치하는 것은 APK 파일입니다. APK 형식 자체는 계속 사용됩니다.
AAB를 APK로 변환하는 것은 합법인가요?
네. 개인 용도로 변환하는 것은 합법입니다.
AAB와 APK 중 무엇이 더 안전한가요?
둘 다 적절히 서명되어 있으면 동일한 수준의 안전성을 가집니다.
어떤 APK 다운로더가 AAB를 지원하나요?
gptoapk.com은 AAB에서 자동으로 호환 APK를 생성하여 다운로드할 수 있습니다.
AAB도 APK도, gptoapk.com으로 해결하세요
gptoapk.com에서 AAB도 자동으로 APK로 변환합니다. Google Play 링크만 붙여넣으면 언제든 APK를 다운로드할 수 있습니다.
APK 다운로더로 이동