ckgod.github Help

Q29) APK, AAB

APK 파일과 AAB 파일의 차이점은 무엇인가요?

Android 애플리케이션은 두 가지 주요 형식인 APK (Android Package)AAB (Android App Bundle)을 사용하여 배포되고 설치됩니다. 두 형식 모두 Android 앱을 제공하는 데 사용되지만, 목적, 구조, 그리고 설치 과정에서 처리되는 방식에 있어 상당한 차이가 있습니다.

APK (Android Package)

APK 파일은 Android 애플리케이션을 배포하고 설치하는 전통적인 형식입니다. 이는 앱이 기기에서 기능하는 데 필요한 모든 리소스, 코드 및 메타데이터를 포함하는 완전하고 즉시 설치 가능한 패키지입니다.

APK 파일은 자체 포함적입니다. 즉, 모든 기기 구성(예: 화면 밀도, CPU 아키텍처, 언어)에 대한 모든 리소스를 포함합니다. 이는 사용자의 기기와 관련이 없는 리소스를 포함할 수 있으므로 파일 크기가 더 커질 수 있습니다. APK 파일은 기기에 직접 설치되며 공식 앱 스토어 외부에서 공유하거나 사이드로딩할 수 있습니다. 그러나 다양한 기기에 대한 구성을 관리하는 것은 개발자의 책임이며, APK에는 특정 기기에 불필요한 리소스가 종종 포함됩니다.

AAB (Android App Bundle)

Google이 도입한 AAB 형식은 APK와 같은 설치 가능한 형식이 아니라 게시 형식입니다. 개발자는 AAB를 Google Play에 업로드하며, Google Play는 이를 개별 기기에 최적화된 APK로 처리합니다.

AAB 파일은 모듈형이며, 다양한 구성에 대한 리소스와 코드를 별도의 번들로 분리합니다. Google Play는 이 모듈형 구조를 사용하여 다운로드 시 기기별 APK를 생성합니다. 예를 들어, 특정 화면 크기, CPU 아키텍처 및 언어에 필요한 리소스와 코드만 전달하여 사용자 기기에서 앱 크기를 줄입니다. AAB 파일은 서버 측에서 처리되기 때문에 직접 설치할 수 없습니다. 개발자는 bundletool 유틸리티와 같은 추가 도구 없이는 AAB 파일을 사용자에게 직접 배포하여 사이드로딩할 수 없습니다.

APK와 AAB의 주요 차이점

  1. 목적 및 구조

    • APK: 모든 구성에 필요한 모든 리소스와 코드를 포함하는 완전한 패키지입니다.

    • AAB: 기기별 APK를 생성하는 모듈형 게시 형식입니다.

  2. 파일 크기

    • APK: 모든 기기에 대한 리소스를 포함하여 크기가 더 큽니다.

    • AAB: 더 작고 최적화된 APK 생성을 가능하게 하여 사용자에게 전달되는 앱의 크기를 줄입니다.

  3. 배포

    • APK: 기기에 직접 공유 및 사이드로딩할 수 있습니다.

    • AAB: Google Play에 업로드되어 최종 사용자를 위한 최적화된 APK를 생성합니다.

  4. 관리

    • APK: 개발자가 리소스 및 구성을 수동으로 관리해야 합니다.

    • AAB: 구성 관리를 Google Play에 위임하여 프로세스를 자동화합니다.

  5. 도구 및 호환성

    • APK: 모든 Android 기기 및 앱 스토어에서 지원됩니다.

    • AAB: 설치 가능한 APK를 생성하려면 Google Play 또는 bundletool이 필요하며, 기본적으로 비Google 앱 스토어와는 호환되지 않습니다.

요약

APK 파일은 독립적이며 직접 설치할 수 있는 반면, AAB 파일은 현대적인 배포를 위해 설계되어 더 작고 기기별로 최적화된 APK를 가능하게 합니다. 개발자는 AAB를 통해 앱 크기 축소 및 자동화된 구성 관리의 이점을 얻을 수 있으며, APK는 사이드로딩 및 비Google Play 배포에 여전히 필수적입니다. 이러한 차이점을 이해하면 개발자는 앱의 배포 전략에 따라 올바른 형식을 선택할 수 있습니다.

Q) AAB 형식은 다양한 기기 구성에 대한 앱 전송을 어떻게 최적화하며, 이는 기존 APK 배포 방식에 비해 어떤 이점을 제공하나요?

AAB는 다이나믹 딜리버리(Dynamic Delivery)라는 Google Play 기능을 통해 앱 전송을 최적화합니다.

핵심은 '모든 것을 한 번에 보내지 않고, 사용자 기기에 꼭 필요한 부분만 골라서 보낸다.' 는 것입니다.

기존 APK 방식은 모든 기기에서 필요할 수 있는 리소스(언어, 화면 밀도, CPU 아키텍처 지원)를 하나의 거대한 파일에 모두 담아 배포했습니다. 하지만 AAB는 앱을 기능별, 기기 구성별로 잘게 쪼갠 스플릿 APK를 생성하여 필요한 조각만 기기에 전송합니다.

AAB의 핵심 이점

  1. 획기적인 앱 크기 감소: 자신의 기기와 관련이 없는 리소스를 다운로드하지 않으므로, 설치 파일 크기가 평균 20~40%까지 감소합니다. 이는 사용자의 데이터 절약, 저장 공간 확보, 그리고 살치 완료율 증가로 이어집니다.

  2. 동적 기능 제공: AAB는 앱의 특정 기능(예: AR 카메라 필터, 게임의 추가 레벨, 결제 모듈)을 '동적 기능 모듈'로 분리할 수 있게 해줍니다. 이 기능들은 앱 설치 시 포함되지 않고, 사용자가 해당 기능을 실행하려 할 때만 다운로드됩니다. 이는 초기 설치 크기를 더욱 줄여주는 강력한 최적화 수단입니다.

  3. Google Play 스토어의 표준: 현재 Google Play 스토어는 신규 앱 등록 시 AAB 형식을 필수로 요구하고 있습니다. 이는 AAB가 제공하는 최적화와 보안(Google Play 앱 서명)의 이점을 모든 생태계에 적용하기 위함입니다.

26 January 2026