웹 개발
Play Console 앱이 갑자기 느려지면 먼저 볼 것
Google Play Console에 올린 앱의 성능이 저하됐을 때, 배포 전에 확인해야 할 체크리스트를 정리했다.
Play Console에 배포한 앱이 이전 버전보다 느리다는 피드백이 오면, 먼저 로컬에서 같은 증상이 재현되는지 확인해야 한다. 운영 환경과 로컬의 차이가 큰 경우가 많기 때문이다.
기본 정보부터 수집한다
- 느린 증상이 정확히 어디서 나타나는가? (앱 시작, 특정 화면, 데이터 로드)
- 이전 버전에서는 정상이었는가?
- 특정 기기나 네트워크 환경에서만 그런가?
실제로 Play Console의 성능 대시보드를 보면, ANR(응답 없음) 비율이나 크래시 데이터가 있다. 이걸 보고 문제의 범위를 좁혀야 한다.
빌드 설정 확인
Release 빌드를 제대로 하지 않으면 성능이 크게 달라진다:
flutter build apk --release
# 또는
flutter build appbundle --release
Debug 빌드는 최적화가 없어서 느릴 수밖에 없다. 항상 --release 플래그로 빌드한 파일을 실제 기기에서 테스트하자.
이전 버전과 현재 버전의 APK 크기 비교
Play Console에 업로드하기 전에 APK나 App Bundle의 크기를 확인한다. 크기가 대폭 증가했다면, 새로 추가된 라이브러리나 리소스가 있을 가능성이 높다:
adb shell pm dump <package_name> | grep versionCode
# 또는 Play Console의 "출시" 탭에서 버전 크기 비교
네트워크 요청 추적
앱이 느린 이유가 서버 응답 때문일 수도 있다. Android Studio의 Network Profiler로 어떤 요청이 지연되는지 확인하자:
flutter run --profile
Profile 모드에서 앱을 실행한 뒤 Android Studio의 Profiler 탭을 보면 네트워크 활동을 시각화할 수 있다.
메모리 누수 확인
화면을 반복해서 진입/탈출하면서 메모리가 증가하는지 확인한다. 메모리 누수가 있으면 앱이 시간이 지날수록 느려진다:
adb shell dumpsys meminfo <package_name>
또는 Android Studio의 Profiler에서 Memory 탭을 열어 힙 메모리 상태를 직접 본다.
프레임 드롭 확인 (UI 성능)
UI가 버벅거린다면 Jank 문제일 가능성이 있다. Show fps 옵션을 켜고 프레임 레이트를 확인하자:
flutter run --profile
# 또는 개발 중 flutter run 상태에서 'p' 키를 누르면 성능 오버레이 표시
무엇을 바꿨는지 기록하고 테스트
이전 버전과 현재 버전의 주요 차이점을 나열한다:
- 새 라이브러리 추가?
- 알고리즘 변경?
- API 호출 방식 변경?
하나씩 되돌려보면서 어느 변경이 성능을 저하시켰는지 찾는 게 가장 확실하다. 다만 한 번에 여러 개를 수정하면 어느 게 원인인지 알 수 없다.
배포 전에 이 체크리스트를 한 번씩 돌려보면, 사용자 피드백을 받은 후에야 문제를 찾는 상황을 줄일 수 있다.