기업 및 기업 직원은 관리 Google Play를 사용하여 방대한 업무 및 생산성 앱에 액세스할 수 있습니다. 관리 Google Play를 사용하면 기업에서 직원들에게 무료 앱을 일괄적으로 안전하게 배포할 수 있습니다.
IT 관리자는 Android에 내장된 관리 기능을 사용하여 업무용으로만 사용되는 기기를 완벽하게 관리할 수 있습니다. 개인 기기 및 개인이 사용하는 업무용 기기의 경우 관리자가 별도의 직장 프로필을 만들고 관리하면 됩니다. 관리 Google Play의 앱은 직장 프로필에 설치되므로 관리자가 앱과 앱 데이터를 전적으로 제어할 수 있습니다. 직장 프로필에 설치되지 않은 앱이나 데이터는 사용자 개인 소유입니다.
관리 Google Play 및 Android의 엔터프라이즈 기능은 다음과 같이 다양한 분야의 개발자에게 큰 기회를 제공합니다.
소프트웨어 공급업체 및 ISV : 기업에 판매 또는 배포되는 소프트웨어 제품이나 서비스를 개발하는 독립 회사
: 기업에 판매 또는 배포되는 소프트웨어 제품이나 서비스를 개발하는 독립 회사 대행사 개발자 및 시스템 통합업체(SI) : 기업이 제공하는 요구사항에 따라 맞춤형 또는 준 맞춤형 소프트웨어, 서비스, 솔루션을 개발하는 회사
: 기업이 제공하는 요구사항에 따라 맞춤형 또는 준 맞춤형 소프트웨어, 서비스, 솔루션을 개발하는 회사 기업 사내 개발자: 기업 내에서 내부 배포용 소프트웨어와 솔루션을 개발하는 개발자
Google Play — 안전한 앱 배포 플랫폼
Google Play는 Android 기기에 잠재적으로 위험한 애플리케이션(PHA)이 설치되는 위험을 최소화할 수 있음을 입증해 왔습니다. Google 보안 블로그에 게시된 연간 Android 결산 보고서를 보면 Google Play에서만 앱을 설치하는 기기가 다른 출처에서 알 수 없는 앱을 사이드로드하는 기기보다 훨씬 더 안전한 것으로 나타났습니다.
Google Play와 Android를 함께 사용하면 Google Play에 게시된 모든 앱에 멀웨어 및 취약점이 있는지 검사하여 Android에서 더욱 안전한 사용자 환경을 제공합니다. 또한 Google Play는 앱 업데이트에 항상 원래 개발자가 서명하도록 함으로써 앱 도용을 방지합니다.
Managed Google Play 권장사항
모든 개발자
보안
보안은 모바일 앱 및 기기를 관리하는 기업의 주요 관심사입니다. 직장에서 사용할 앱을 개발하는 경우, 기업이 그 어느 때보다도 데이터 보안을 의식하고 있으며 특히 다른 서비스와 정보를 공유하는 기능에 있어서 보안이 중요하다는 점을 기억해야 합니다. 앱 데이터를 안전하게 유지하려면 보안 및 개인정보 보호 권장사항을 따르세요. 특히 다음 항목이 중요합니다.
보안 네트워크 프로토콜만 사용합니다.
공유 또는 외부 저장소가 아닌 Android의 기본 로컬 저장소를 사용합니다.
악용 우려가 있거나 민감한 정보를 보유하고 있는 경우 SafetyNet Attestation API를 사용하여 앱에서 앱을 실행하는 기기가 신뢰할 수 있고 손상되지 않았음을 확인합니다.
직장 프로필 호환성
직장 프로필은 Android 기기에 제공되는 논리적인 공간으로, 직장 데이터와 개인 정보를 별도로 보관합니다. 직장 프로필이 있는 기기에서 기능이 제대로 작동하도록 앱을 수정해야 할 수도 있습니다(자세한 권장사항은 관리 프로필 설정 참고). 많은 앱이 이미 호환되고 있지만, 항상 BasicManagedProfile 샘플 앱을 사용하여 앱을 테스트하세요.
관리 구성
앱에서 관리 구성을 지원해야 IT 관리자가 모든 사용자나 개별 사용자용으로 앱 설정을 원격 구성할 수 있습니다. 이러한 설정의 예는 다음과 같습니다.
서버 주소 및 프로토콜 설정: 예를 들어, VPN 클라이언트 앱은 사용자가 수동으로 구성하기에는 복잡할 수 있습니다. IT 관리자가 사용자의 기기로 전체 구성 번들을 직접 보낼 수 있도록 허용하세요. 그러면 사용자가 앱을 즉시 사용할 수 있습니다.
기능 사용 또는 사용 중지: 예를 들어, 앱에 여러 개의 클라우드 스토리지 백엔드를 제공하고 싶지만 기업에서는 자신들이 구입한 백엔드의 사용만을 허용하고자 할 수 있습니다. 기업에서 다른 백엔드를 차단할 수 있게 허용하세요.
SSO를 부트스트랩할 수 있는 로그인 힌트를 통해 사용자에게 최적의 로그인 환경을 제공하세요.
Android Enterprise I/O 프레젠테이션에서 이러한 예를 실제로 확인해 보세요.
앱에서 어떤 옵션을 구성할지 지정하고 이 정보를 관리 Google Play에 게시해야 합니다.
앱의 관리 구성 스키마를 업데이트하는 경우 이전 버전과의 호환성을 유지하는지 확인하시기 바랍니다. 다양한 사용자가 앱의 여러 가지 버전을 보유(최소한 일시적이라도)할 수 있으며 IT 관리자의 경우 효율적인 앱 관리를 위해 버전 간에 일관된 원격 구성 환경을 원하므로 이 호환성을 유지하는 것이 바람직합니다.
Google Play Console을 사용하여 앱을 업로드, 관리, 게시합니다. Play Console은 개발자가 사용자에게 최고의 앱을 제공할 수 있도록 다양한 설정 옵션과 테스트 기능을 제공합니다.
업데이트의 내부, 비공개, 공개 테스트를 실행하여 내부 사용자 또는 일부 외부 사용자로부터 의견을 수집한 후 더 광범위한 사용자를 대상으로 앱을 출시하기 전에 앱을 개선하거나 수정합니다.
단계적 출시를 사용하여 사용자층에 점진적으로 앱 업데이트를 출시합니다. 문제가 발생하면 언제든지 출시를 중단할 수 있습니다.
앱이 게시되면 실적 통계 및 다른 주요 보고서에 액세스하여 사용자층과 관련된 유용한 정보를 더 얻을 수 있습니다.
앱을 게시하고 배포하는 데 도움이 되는 Play Console 기능을 자세히 알아보세요.
소프트웨어 공급업체
Google Play 개발자의 무료 앱은 자동으로 IT 관리자가 발견하고 승인할 수 있는 상태가 됩니다. IT 관리자는 관리 Google Play를 사용해 직원들에게 이러한 앱을 배포할 수 있습니다. 유료 앱은 지원되지 않습니다.
사용자에게 앱 노출
비즈니스 관련 앱이 소비자 앱과 구분될 수 있도록 관리 Google Play 스토어에 표시하세요.
관리 Google Play는 IT 관리자가 휴대기기 및 앱 관리를 위해 일상적으로 많이 사용되는 다수의 엔터프라이즈 모바일 관리 시스템에도 포함되어 있는 경우가 많습니다.
Android 앱이 더 큰 엔드 투 엔드 서비스의 호환 앱인 경우 앱의 Play 스토어 등록정보에 전체 서비스를 설명해야 합니다. IT 관리자 및 사용자는 Android 앱뿐 아니라 전체 서비스를 선택하기 위해 앱 설명을 읽는다는 점을 기억하시기 바랍니다.
볼륨 확보
대량 배포를 통해 새로운 잠재고객에게 폭넓게 다가가세요. 기업에서는 관리 Google Play를 사용하여 관리 기기에 무료 앱을 일괄적으로 배포할 수 있습니다.
새로운 수익 창출 기회
기업은 비즈니스에 중요한 역할을 하는 앱을 대상으로 확장된 지원 기능을 구매하는 데 관심이 있으므로 새로운 수익 창출 기회가 열리게 됩니다. 제품 또는 서비스에 따라 기능 확장, 시간 확장, 실시간 문의, 사내 교육, 계층별 지원 수준과 관련된 가격 체계 도입을 고려해 볼 수 있습니다.
대행사 개발자
앱 맞춤설정용 관리 구성
관리 구성은 클라이언트에 맞게 앱을 맞춤설정하는 한편 여러 개의 APK를 유지하는 비용을 최소화하는 데 도움을 줍니다. 관리 구성을 사용하여 앱 맞춤설정 매개변수 집합(예: 색상 체계, UI 문자열, 클라이언트 로고, 여러 개의 모듈 사용 설정 또는 사용 중지 등)을 정의하면 개발자는 단일 APK를 유지하면서도 각 클라이언트는 완전히 다른 환경을 보유할 수 있습니다.
클라이언트의 Google Play 개발자 계정을 대상으로 한 액세스 위임
개발자가 클라이언트의 내부 앱을 게시하고 유지할 책임이 있는 경우 클라이언트가 Google Play 개발자 계정에 위임 게시 액세스를 구성할 수 있습니다. 그러면 클라이언트에게 게시할 APK를 전송하는 대신 새로운 앱이나 업데이트된 앱을 직접 게시할 수 있습니다. 이 개발자 계정 액세스는 특정 역할이나 특정 앱에 제한될 수 있으므로 클라이언트도 계속 앱을 제어할 수 있습니다.
또한 게시 API를 사용하면 게시자가 자신의 게시 파이프라인을 클라이언트용 Play 게시 흐름에 직접 연결하여 사용할 수 있습니다.
기업 사내 개발자
비공개 앱
비공개 앱은 조직에만 배포되는 앱이며 공개 Play 스토어에는 표시되지 않습니다. 비공개 앱은 기업에서 내부 앱을 안전하고 비공개로 배포하기 위해 Google Play의 모든 기능과 확장성을 활용할 수 있는 좋은 방법입니다.
기업에 비공개 앱을 게시하기 위한 API도 있습니다. 자세한 내용은 비공개 앱 게시를 참고하세요.
비공개 엔터프라이즈 앱은 Android App Bundle로 게시할 필요가 없으며 배포에 APK를 계속 사용할 수 있습니다.
Google에서 호스팅한 APK와 자체 호스팅 APK 비교
앱 APK 호스팅에는 두 가지 옵션이 있습니다. APK를 Google Play에 업로드하여 안전하게 사용자에게 배포할 수 있습니다. 또는 서버에서 APK를 호스팅할 수도 있습니다. 본인의 방화벽을 사용해 본인의 소재지에서 APK를 호스팅하고 싶은 경우 이 방법을 사용해도 좋습니다.
하지만 Google Play에서 APK를 호스팅하면 다음과 같은 여러 가지 이점이 있습니다.
Google의 앱 취약점 스캔: 개발자가 내부용 앱을 빌드할 때 어떤 SDK 및 라이브러리를 사용했는지 알기 힘든 경우가 많습니다. 또한 개발자가 보안 관련 권장사항을 항상 지키지는 않습니다. Google의 취약점 스캔 엔진은 잘 알려진 여러 보안 취약점을 확인해주기 때문에 앱 보안의 신뢰도가 높아집니다. 앱 업데이트 패치: Google은 차이점만을 전송하고 모든 데이터를 압축함으로써 기기에 제공하는 앱 업데이트를 최적화합니다. 즉, 데이터 소비는 줄이고 업데이트를 빠르게 전달할 수 있습니다. 글로벌 서버: Google Play의 에지 캐시를 통해 직원의 위치와 관계없이 가장 가까운 서버에서 서비스를 받습니다. 따라서 최고의 다운로드 성능을 누릴 수 있습니다. 사전 출시 보고서: 기본 비공개 테스트 트랙 또는 공개 테스트 트랙에 앱을 업로드하고 게시하면 Firebase Test Lab의 다양한 테스트 기기가 자동으로 실행되어 몇 분 동안 앱을 크롤링합니다. 크롤링 시 앱에서 몇 초마다 입력, 탭, 스와이프 등의 기본 작업을 실행합니다. 이를 통해 가장 많이 사용되는 다양한 Android 기기에서 앱의 비정상 종료 문제를 확인할 수 있습니다.
두 경우 모두 관리 기기나 직장 프로필에서 Play 스토어 앱을 통해 사용자에게 표시되는 앱 메타데이터는 Google Play에 저장됩니다.
Google Play를 사용하면 앱 업데이트를 손쉽게 배포할 수 있습니다. 자동 업데이트는 Google Play가 설치된 모든 Android 기기에서 기본적으로 사용 설정되어 있습니다. Google Play Console을 통해 앱 업데이트를 게시하면 나머지 작업은 Google Play에서 자동으로 이루어집니다.
모든 기기에서 앱을 업데이트하는 데 며칠이 걸릴 수 있습니다. 이는 Google Play에서 기기가 충전될 때 및 Wi-Fi를 사용할 때와 같이 앱을 업데이트하기에 가장 적절한 시간을 기다리기 때문입니다.
파일 이름에는 .pptx .mp4 같이 파일 형식을 나타내는 확장자가 붙는다. 스마트폰 앱에도 이런 확장자가 붙는다(화면에 표시되지 않을 뿐이다). iOS 앱에는 .ipa가, 안드로이드 앱에는 .apk가 붙는다. 작년 11월, 구글은 2021년 8월부터 ‘구글 플레이에 새로 올라오는 모든 안드로이드 앱은 AAB 형식이어야 한다’며 스토어 정책을 바꿨다 (링크). 기존 앱들은 똑같이 APK로 배포되어도 상관없지만 새로 업로드되는 앱들은 모두 AAB 형식으로 스토어에 올라와야 한다는 내용이다.
AAB는 구글이 2018년에 새로 소개한 안드로이드 앱 형식인데, 이번 글에서는 AAB가 정확히 무엇인지, 구글의 새 정책이 어떤 변화를 가져올지 살펴보자.
1. APK는 뭔지 알겠는데 AAB는 뭘까?
APK(Android Package)는 이미 완성된 안드로이드 앱 파일이고, AAB(Android App Bundle)는 APK를 완성해주는 요소를 담은 패키지다.
예를 들어 어떤 앱을 설치할 때, 한국어 기반의 갤럭시 S21과 독일어 기반의 갤럭시 S10 두 경우 모두 똑같은 APK 파일이 설치되는 것이 지금까지의 방법이었다. 하지만 AAB 형식으로 배포될 경우 사용자 기기에 필요한 파일만으로 구성된, 군더더기가 제거된 APK 파일을 설치할 수 있는 것이다. (예: 한국어 기기에 독일어 파일은 필요 없고 최신 모델에서만 쓸 수 있는 기능은 갤럭시 S10에서는 필요 없을 것이다)
기존처럼 모든 기기에 대응할 수 있는 하나의 APK를 전달하는 것이 아니라, 개발자가 스토어에 AAB 패키지를 올려놓으면, 스토어가 사용자 기기에 어떤 내용이 필요한지 확인 후 그에 맞춘 APK 파일을 만들어 배포하는 식이다.
2. AAB를 쓰면 뭐가 좋은데?
앱의 크기가 줄어든다는 것이 가장 큰 장점이다. 이론적으로만 생각하면 개발자가 각 사용자들에게 맞는 APK 파일 버전을 여러 개 만들어 배포하는 것이 가장 좋다. 하지만 그러기엔 세상에 안드로이드 기기의 종류와 언어가 너무 많다. 그리고 업데이트가 있을 때마다 그 모든 버전을 최신화한다는 것은 물리적으로 불가능하다.
그러니 개발자는 앱을 구성하는 요소들을 레고 블록처럼 잘 나누어놓은 다음, 그 블록들을 구글 플레이 스토어에 올려놓는 것이다. 그러면 스토어 측에서 각 사용자에게 맞는 레고 블록만 모아서 조립 후 배포하는 식이다. 이러면 개발자 입장에서는 일일이 맞춤형으로 제작하지 않아도 되고, 사용자 입장에서는 필요 없는 기능은 받지 않아도 된다. 참고로 AAB 형태로 배포하면 앱 크기가 평균 15% 줄어든다고 한다. 특히 경제적인 이유로 용량이 넉넉한 최신 폰을 사용하기 힘든 사용자들에겐 정말 좋은 소식이다.
3. 무조건 좋아 보이는데, 단점은 없나?
보안에 대한 우려가 있다. 모든 안드로이드 앱에는 개발자의 서명 파일이 들어간다. 서명을 하여 ‘이 앱을 만든 사람은 나’라는 증거를 남기는 것이다. 서명 파일은 개발자가 APK 파일에 직접 첨부한다. 따라서 누군가가 앱을 멋대로 변형해 배포하려고 해도, 원래 개발자의 서명이 없기 때문에 공식 앱이 아님을 확인할 수 있다.
하지만 AAB 파일은 위에서 짚었듯이 완성된 앱이 아니라 완성품으로 태어날 수 있는 레고 블록의 모음이다. 그리고 사용자를 위해 레고 블록을 끼워 맞추는 것은 개발자가 아니라 구글 플레이다. 따라서 서명은 개발자가 아닌 구글 플레이가 대신하게 된다. 마치 부동산 계약할 때 대리인이 서명할 수 있는 것처럼, AAB로 배포되면 필연적으로 구글 플레이가 대리 서명을 하게 되는 것이다.
다른 이가 나 대신 서명하는 것은 (아무리 철저하게 진행된다고 해도) 찝찝함이 있을 수밖에 없다. 구글은 대리 서명에 있어 최고의 보안을 약속했지만, 만에 하나 구글이 레고 블록을 엉성하게 조립하거나, 없던 코드를 집어넣는 일이 생기면 그에 대한 사용자들의 불만은 개발자가 고스란히 떠안아야 한다. 사용자 입장에서는 APK건 AAB건 알 바 아니기 때문이다. 개발자 자신의 컨트롤 범위를 벗어난다는 점에서 우려하는 이가 많다.
4. 구글은 왜 AAB를 강제하는 걸까?
‘사용자들에게 딱 필요한 코드만 제공해 앱 용량을 줄이고, 개발자들은 여러 개의 빌드를 준비할 필요가 없다’라는 것이 명분이지만, 사업적인 측면에서도 강제 AAB 정책은 구글에게 이득이다. 안드로이드 앱은 iOS 앱과는 다르게 스토어 종류가 굉장히 많다. 반드시 구글 플레이를 통해 다운로드할 필요가 없다. 삼성이 운영하는 갤럭시 스토어, 통신사들이 운영하는 원스토어, 아마존 앱스토어도 있고, 인터넷에 돌아다니는 APK 파일을 직접 복사해 설치하는 것도 가능하다.
이렇게 되면 구글이 스토어 수수료를 떼 가기 힘들어진다. 어떻게든 구글 플레이 스토어를 통해 설치가 되어야 구글이 인앱 결제 수수료를 가져갈 수 있다. AAB 형식을 강제하면 최종 파일은 구글 플레이 서버에서 만들어지고 서명되어 배포되기 때문에, 배포를 컨트롤하는 힘이 구글 쪽으로 쏠릴 수밖에 없다.
결론
안드로이드 앱의 AAB 형식은 2018년에 처음 등장하였고, 올해 8월부터 강제화 될 예정이다. 기존 앱들은 (원한다면) 계속 APK 형식으로 올려도 되지만, 구글 플레이에 새롭게 올라오는 앱은 무조건 AAB 형식으로 올려야 하는 것이다. 안드로이드 진영에서 구글 플레이만큼의 점유율을 가진 스토어가 없기 때문에(중국 제외), 일정이 미뤄지지 않는 이상 다들 AAB 방식으로 옮겨갈 것으로 보인다.
사용자 입장에서는 (앱이 더 가벼워진다고 하니) 장점으로 다가오지만, 부디 개발자들도 ‘AAB로 하니 더 좋은 걸?’이라고 느낄 만큼 구글이 많은 지원과 업데이트를 약속해주었으면 하는 바람이다. 결국 개발자들이 개발하기 좋은 환경일수록 앱의 퀄리티도 올라갈 것이기 때문이다.
<참고 자료>
글에 사용된 이미지 일부는 안드로이드 개발자 공식 홈페이지에서 캡처한 것입니다.