작성자: Dom Elliott & Yafit Becher, Google Play 제품 관리자 원문은 여기서 확인 가능하며 블로그 포스트 번역에는 양찬석(Google)님이 참여해주셨습니다.
지난 2년이 조금 넘는 기간 동안 Android App Bundle은 Google Play에서 가장 권장되는 게시 형식으로 자리매김했습니다. 600,000개 이상의 앱과 게임이 현재 제작 과정에 App Bundle을 사용하고 있으며, 이 수치는 Google Play에 출시되는 모든 앱과 게임의 40% 이상을 차지합니다. Google Play의 주요 개발사 중 50%가 App Bundle을 사용하고 있으며, 이 중 Adobe는 App Bundle로 Adobe Acrobat Reader의 크기를 20% 줄이기도 했습니다. Google은 최근 App Bundle의 장점을 게임에 적용하는 Play Asset Delivery(PAD)를 출시했으며, 덕분에 개발자는 전송 비용을 절감하고 게임의 크기는 줄이면서 동시에 사용자 환경을 개선할 수 있게 되었습니다. Gameloft는 PAD로 사용자 유지를 개선한 결과, 기존 에셋 전송 시스템을 사용했을 때보다 신규 플레이어가 10% 증가했습니다.App Bundle로 전환할 예정인 개발자를 위해 App Bundle에 필수인 Play 앱 서명 관련 FAQ와 App Bundle 테스트 방법 관련 안내를 게시해 두었습니다. 내용을 읽고 App Bundle의 개발과 테스트, 게시에 관한 최신 업데이트 내역을 자세히 알아보세요.
Play 기능 전송App Bundle은 다양하게 마련된 사용자 설정 전송 옵션으로 동적 기능 모듈(Dynamic feature module)을 사용하는 모듈식 앱 개발을 지원합니다. 이제 기본 모듈뿐만 아니라 동적 기능 모듈의 리소스를 축소할 수 있습니다. 오랜 요청 끝에 도입된 이 기능을 사용하면 앱 크기가 크게 줄어듭니다. 이 기능은 현재 Canary 버전의 Android 스튜디오 4.2에서 다음과 같은 실험용 플래그로 사용할 수 있습니다. android.experimental.enableNewResourceShrinker=true이제 Install-time 모듈은 App Bundle이 배포 APK(bundletool 1.0.0부터)로 처리될 때 기본적으로 자동 통합됩니다. 즉, 각 기기에 배포되는 APK의 수는 줄이면서 개발 중에 앱을 모듈로 분리할 수 있어서 앱 다운로드 및 설치 속도가 빨라집니다. Install-time 모듈에 '삭제 가능한 플래그'를 설정하여 통합을 방지할 수 있습니다. 이렇게 되면, 모듈을 사용 후 기기에서 제거할 수 있습니다. 더 이상 사용되지 않는 모듈은 삭제해도 좋습니다. 설치된 앱의 크기가 작아지면 사용자가 앱을 제거할 가능성이 줄어듭니다.기능 간 종속성(Feature-to-feature dependency)이 Android 스튜디오 4.0에서 정식 지원됩니다. 동적 기능 모듈이 다른 기능 모듈에 갖고있는 종속성을 지정할 수 있습니다. 종속성을 정의해두면, 동적 기능 모듈이 설치될 때, 해당 모듈에 필요한 다른 모듈도 함께 설치됩니다. 결과적으로 앱이 모듈 설치를 요청하는 경우가 적어지고 앱의 모듈화도 더 용이해집니다.아시다시피 실제 사용자가 경험하는 것과 동일한 환경에서 앱 배포를 테스트하는 작업은 필수적입니다. 내부 앱 공유를 사용하면 테스트 빌드를 Play에 업로드하고 공유 가능한 링크로 앱을 다운로드할 수 있습니다. 이 링크에서 앱을 다운로드하면 앱이 Play에 출시된 후 사용자에게 제공되는 것과 동일한 바이너리를 받게 됩니다.
Play Asset DeliveryPlay Asset Delivery는 App Bundle 형식을 확장하여 최대 2GB의 게임 에셋을 바이너리와 함께 Google Play에 게시된 하나의 아티팩트로 패키징할 수 있습니다. PAD는 기존 150MB 이상인 게임이 사용하던 확장 파일(OBB)을 대체합니다. 추가로 Play를 통해 게임 바이너리처럼 에셋을 최신 상태로 유지할 수 있게 됩니다. 압축과 델타 패칭도 처리해 주므로 다운로드의 크기가 최소화되고 게임 업데이트도 빨라집니다.
언제 사용자에게 에셋을 전달할지에 따라 세 가지 제공 모드 중 하나를 선택할 수 있습니다. 초기 게임 설치 시 함께 전달되는 Install-time, 앱에서 에셋을 요청하는 경우에만 제공되는 On-demand, 사용자가 앱을 실행하는 것과 관계없이, 게임 설치가 완료된 직후 추가 다운로드가 시작되는 Fast-follow의 세 가지 모드가 제공됩니다. Fast-follow를 사용하면 에셋을 사용자에게 최대한 빠르게 전달하고 첫 상호작용까지 걸리는 시간을 최소화할 수 있습니다. 향후 몇 달 내에 Google은 텍스처 압축 포맷 타겟팅(Texture compression format targeting)을 출시할 예정이며, 여러분은 복수의 텍스처 압축 포맷 에셋을 에셋 안에 포함할 수 있게 됩니다. 이 후, Play는 요청된 기기에서 지원되는 가장 고급 사양의 텍스처 포맷 에셋을 선택해 제공하게 될 것 입니다. Game Developer Summit에서 진행된 ‘Google Play Asset Delivery’ 세션을 확인하여 자세한 내용을 알아보고 '동적 Asset Delivery 정보' 문서를 통해 Unity, Unreal Engine, Gradle, Native, 자바 지원을 위한 통합 옵션을 살펴보시기 바랍니다.
업계 최고 수준의 Google Play 배포Google Play는 수천 가지 유형의 기기를 활용하는 전 세계의 Android 사용자를 대상으로 매달 수십억 개의 앱, 게임, 업데이트, 동적 기능 모듈을 제공합니다. Google은 사용자 환경 뒤에 숨은 복잡성(complexity)은 드러내지 않으면서 원활하고 효율적인 방식으로 개발자의 콘텐츠를 사용자에게 전달하기 위해 많은 시간과 노력을 기울이고 있습니다.한 가지 예로, 최근에는 Google Play에서 사용하는 다운로드 서비스를 업그레이드했습니다. 이 변화만으로도 App Bundle 앱 설치가 평균 6% 빨라지고 전 세계적으로 설치 성공(install success) 또한 1% 증가하여, 결과적으로 매주 수백만 건의 신규 설치가 추가적으로 발생했습니다.또한 Google은 앱이 사용자에게 보여지는(VISIBLE) 상태인 경우에도 기능 모듈을 설치할 수 있도록 허용하고 저장용량 부족 오류가 트리거되는 여유 공간 기준을 낮추며 Wi-Fi를 통해 대용량 동적 기능 사용 시 사용자 확인을 제거하는 등 동적 기능 모듈 배포(Dynamic feature module distribution)의 다양한 개선사항을 출시할 예정입니다. 이러한 개선만으로도 지연된 모듈 다운로드의 성공률이 12% 증가했습니다. 동적 기능을 사용하는 앱은 이러한 변화의 이점을 자동으로 누릴 수 있습니다.
2021년 하반기의 신규 앱 대상 요구사항Google은 App Bundle을 Google Play의 APK보다 더 나은 게시 형식으로 만들기 위해 지속적으로 노력하고 있습니다. 한 곳에서 모든 App Bundle을 관리할 수 있게 해주는 새로운 App Bundle 탐색기를 예로 들 수 있습니다. 다른 배포 채널에서도 활용할 수 있는 서명된 범용 APK(지원 기기에 필요한 모든 코드 및 리소스가 포함된 설치형 단일 APK)뿐 아니라 Play에서 전송을 위해 생성하는 정확한 APK도 다운로드해서 증명할 수 있습니다.Google은 앱 및 게임 생태계에서 App Bundle이 널리 활용되고 있음을 기쁘게 생각하며 앞으로도 개선을 위해 최선을 다하겠습니다. Android 11 이벤트에서 발표한 바와 같이 향후 개선사항에 관한 투자를 지원하기 위해 2021년 하반기에는 Android App Bundle로 Google Play에 신규 앱과 게임을 게시하도록 의무화할 예정입니다. 이와 함께, 레거시 APK 확장 파일(OBB)을 지원 중단하고 크기가 150MB 이상인 게임을 게시할 때 Play Asset Delivery를 표준 옵션으로 지정할 계획입니다. 또한, 인스턴트 환경에서는 인스턴트 지원 App Bundle을 통해 게시하도록 의무화하고 기존의 인스턴트 앱 ZIP 형식은 지원 중단할 예정입니다.이미 Android App Bundle로 전환해 주신 모든 분께 감사드리며, 특히 의견을 공유해 주신 분들께도 감사의 말씀을 전합니다. 여러분의 의견은 App Bundle의 미래를 만들어 가고, 모두를 위해 기술을 개선하는 데 도움이 됩니다. 앞으로도 계속 여러분의 소중한 의견을 들려주세요.