앱 배포 파일 확장자로 iOS 앱에는 .ipa가, 안드로이드 앱에는 .apk가 붙는다.
작년 2020년 11월, 구글은 2021년 8월부터 ‘구글 플레이에 새로 올라오는 모든 안드로이드 앱은 AAB 형식이어야 한다’며 스토어 정책을 바꿨다
기존 앱들은 똑같이 APK로 배포되어도 상관없지만 새로 업로드되는 앱들은 모두 AAB 형식으로 스토어에 올라와야 한다는 내용이다.
이번 글에서는 AAB가 정확히 무엇인지, 구글의 새 정책이 어떤 변화를 가져올지 살펴보자.

AAB는 뭘까?

APK(Android Package)는 이미 완성된 안드로이드 앱 파일이고,
AAB(Android App Bundle)는 APK를 완성해주는 요소를 담은 패키지다.
출처 : https://android-developers.googleblog.com/  안드로이드 개발자 블로그.

각 언어별 values, 디바이스 해상도 별 이미지 등을 기존처럼 모든 기기에 대응할 수 있는 하나의 APK를 전달하는 것이 아니라,
개발자가 스토어에 AAB 패키지를 올려놓으면, 스토어가 사용자 기기에 어떤 내용이 필요한지 확인 후 그에 맞춘 APK 파일을 만들어 배포하는 방식이다.

출처 : https://android-developers.googleblog.com/  안드로이드 개발자 블로그.

AAB장점?

구글 AAB 장점 앱의 크기가 줄어든다는 것이 가장 큰 장점이다.
개발자가 각 사용자들에게 맞는 APK 파일 버전을 여러 개 만들어 배포하는 것이 가장 좋다.
하지만 그러기엔 세상에 안드로이드 기기의 종류와 언어가 너무 많다.
그리고 업데이트가 있을 때마다 그 모든 버전을 최신화한다는 것은 물리적으로 불가능하다.

스토어 측에서 각 사용자에게 맞는 블록만 모아서 조립 후 배포하는 식이다.
이러면 개발자 입장에서는 일일이 맞춤형으로 제작하지 않아도 되고,
사용자 입장에서는 필요 없는 기능은 받지 않아도 된다.
참고로 AAB 형태로 배포하면 앱 크기가 평균 15% 줄어든다고 한다.

무조건 좋아 보이는데, 단점은 없나?

구글 AAB 단점 보안에 대한 우려가 있다.
모든 안드로이드 앱에는 개발자의 서명 파일이 들어간다.
서명을 하여 ‘이 앱을 만든 사람은 나’라는 증거를 남기는 것이다.
서명 파일은 개발자가 APK 파일에 직접 첨부한다.
따라서 누군가가 앱을 멋대로 변형해 배포하려고 해도, 원래 개발자의 서명이 없기 때문에 공식 앱이 아님을 확인할 수 있다.

하지만 AAB 파일은 완성된 앱이 아니라 완성품으로 태어날 수 있는 블록의 모음이다.
그리고 사용자를 위해 블록을 끼워 맞추는 것은 개발자가 아니라 구글 플레이다.
따라서 서명은 개발자가 아닌 구글 플레이가 대신하게 된다.
마치 부동산 계약할 때 대리인이 서명할 수 있는 것처럼,

AAB로 배포되면 필연적으로 구글 플레이가 대리 서명을 하게 되는 것이다.

구글 AAB 강제

‘사용자들에게 딱 필요한 코드만 제공해 앱 용량을 줄이고, 개발자들은 여러 개의 빌드를 준비할 필요가 없다’라는 것이 명분이지만, 안드로이드 앱은 iOS 앱과는 다르게 스토어 종류가 굉장히 많다.
반드시 구글 플레이를 통해 다운로드할 필요가 없다.

이렇게 되면 구글이 스토어 수수료를 떼 가기 힘들어진다.
어떻게든 구글 플레이 스토어를 통해 설치가 되어야 구글이 인앱 결제 수수료를 가져갈 수 있다.
AAB 형식을 강제하면 최종 파일은 구글 플레이 서버에서 만들어지고 서명되어 배포되기 때문에, 배포를 컨트롤하는 힘이 구글 쪽으로 쏠릴 수밖에 없다.

결론

안드로이드 앱의 AAB 형식은 2018년에 처음 등장하였고, 업데이트 대상 앱도 2021년 11월부터 강제화 되었습니다.

구글 플레이에 올라오는 앱은 무조건 AAB 형식으로 올려야 하는 것이다.

‘AAB로 하니 더 좋은 걸?’이라고 느낄 만큼 구글이 많은 지원과 업데이트를 약속해주었으면 하는 바람이다.
개발자들이 개발하기 좋은 환경일수록 앱의 퀄리티도 올라갈 것이기 때문이다.

kapjong's profile image

kapjong

2021-11-15 10:00

kapjong 님이 작성하신 글 더 보기