Monzo는 1,500만 명의 고객을 보유하고 있으며 계속 성장하고 있는 영국의 디지털 은행입니다. 앱의 규모가 커짐에 따라 엔지니어링팀은 앱 시작 시간을 개선이 필요한 중요한 영역으로 파악했지만 코드베이스를 크게 변경해야 할까 봐 걱정했습니다.
Monzo는 R8 최적화를 완전히 사용 설정하여 애플리케이션 응답 없음 (ANR) 발생률을 35% 나 크게 줄였습니다. 이 간단한 변경사항은 영향력 있는 최적화에 항상 복잡한 엔지니어링 노력이 필요한 것은 아님을 보여주었습니다.
R8 전체 모드로 광범위한 성능 개선
Monzo는 R8 전체 모드를 시도해 볼 만한 간단한 해결 방법으로 파악했습니다. 실제로 R8 전체 모드는 전반적인 성능을 개선했습니다.
- 시작 안정성: 콜드 스타트가 30%, 웜 스타트가 24%, 핫 스타트가 14% 개선되었습니다.
- 실행 속도: P50 실행 시간이 11%, P90 실행 시간이 12% 개선되었습니다.
- 효율성: 전반적인 앱 크기가 9% 감소했습니다.
- 안정성: ANR이 35% 감소했습니다.
단일 변경으로 최적화 사용 설정
많은 Android 앱은 R8 최적화 도구의 대부분의 기능을 사용 중지하는 오래된 기본 구성 파일을 사용합니다. Monzo가 이러한 성능 개선을 위해 변경한 주요 사항은 proguard-android.txt 기본 파일을 proguard-android-optimize.txt로 바꾸는 것이었습니다. 이 변경사항은 -dontoptimize 명령어를 삭제하고 R8이 작업을 제대로 수행하도록 합니다.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}이 변경사항을 적용한 후에는 Keep 구성 파일을 살펴보는 것이 좋습니다. 이러한 파일은 R8에 코드를 그대로 두어야 하는 부분을 알려줍니다 (일반적으로 동적으로 또는 외부 라이브러리에 의해 호출되기 때문). 불필요한 Keep 규칙을 정리하면 R8이 더 많은 작업을 수행할 수 있습니다.
기준 프로필로 스크롤 성능 개선
사용자 경험을 더욱 개선하기 위해 Monzo는 기준 프로필을 구현하여 특히 기본 피드의 스크롤 및 렌더링 성능을 타겟팅했습니다. 이 전략을 통해 가장 일반적인 사용자 여정인 앱 열기 및 피드 스크롤이 완전히 최적화되었습니다. 렌더링에 미치는 영향은 상당했습니다. P90 스크롤 성능이 71% 빨라졌고 P95 스크롤 성능이 87% 개선되었습니다. 이제 앱 스크롤이 이전보다 더 원활합니다.
Monzo는 이러한 개선사항을 시간이 지남에 따라 유지하기 위해 출시 프로세스에 이를 통합했습니다. Neumayer는 '매주 평일 (야간 빌드를 실행하기 전)에 기준 프로필 생성을 트리거하고 완료되면 최신 변경사항을 커밋합니다'라고 설명합니다.
최신 Android 개발 유지
Monzo의 경험은 Android 빌드 도구 권장사항을 최신 상태로 유지할 때 가능한 것을 보여줍니다. 기존 앱은 복잡한 리플렉션 사용으로 어려움을 겪는 경우가 많지만 Monzo는 Keep 규칙을 올바르게 문서화하여 전환이 간단하다는 것을 알았습니다. Neumayer는 'Keep 규칙이 적용된 이유를 설명하는 주석을 항상 추가하므로 규칙을 안전하게 삭제할 수 있는 시점을 알 수 있습니다'라고 말합니다.
다른 팀을 위한 Neumayer의 조언은 무엇일까요? 현재 표준에 따라 관행을 정기적으로 확인하세요. '앱 성능에 관한 Google의 최신 권장사항을 살펴보고 최신 권장사항을 모두 따르고 있는지 확인하세요.'
시작하고 R8에 관해 자세히 알아보려면 https://d.android.com/r8을 방문하세요.
계속 읽기
-
우수사례
Reddit의 엔지니어링팀은 Android 개발자 관계팀과 협력하는 동안 앱 성능 점수를 사용하여 앱을 평가했습니다.
Ben Weiss • 4분 읽기
-
우수사례
TikTok은 방대한 사용자층과 혁신적인 기능으로 유명한 글로벌 쇼트 동영상 플랫폼입니다.
Ben Trengrove, Ajesh Pai • 2분 읽기
-
우수사례
소셜 미디어의 역동적인 세계에서 사용자의 관심은 빠르게 얻거나 잃을 수 있습니다. Meta 앱 (Facebook 및 Instagram)은 세계 최대 규모의 소셜 플랫폼 중 하나이며 전 세계 수십억 명의 사용자에게 서비스를 제공합니다.
Mayuri Khinvasara Khabya • 4분 읽기
소식 받아 보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주