끄적이는 개발노트
React Native - 빌드 시 앱 사이즈 줄이기 (최적화하기) 본문
728x90
앱 용량을 최대한 줄이기 위한 방법을 찾기 위해 구글링하고 적용한 방법을 정리한다.
기본적으로 살펴봐야 하는 작업들을 정리하자면 다음과 같다.
- 불필요한 라이브러리와 불필요한 종속성 제거
- 이미지와 같은 파일 용량 줄이기
- lazy loading 활용
1. enableSeparateBuildPerCPUArchitecture
- 기존에는 모든 안드로이드 기기의 ABI를 지원하는 하나의 apk 파일이 생성되는데, 이를 특정 ABI (Android Binary Interface) 에 맞춰서 apk 파일을 생성한다.
- 다만, assembleRelease가 아닌 bundleRelease를 사용하여 aab 파일을 생성할 경우, 즉 구글 스토어에 업로드할 경우에는 자동으로 사용자 기기에 적합한 ABI로 다운되기 때문에 사용할 필요가 없다.
2. shrinkResources
사용하지 않는 리소스 축소
3. minifyEnabled
코드 난독화, 최적화
4. enableProguardInReleaseBuilds
코드 난독화에 필요한 proguard를 활성화하는 동시에 코드 사이즈를 축소
- proguard-android.txt 를 통해 Android Gradle 플러그인과 함께 패키지 된 기본 proguard 규칙 파일 포함
- proguard-rules.pro 를 통해 프로젝트 레벨의 룰을 생성
- 난독화 제외가 필요한 라이브러리의 경우 공식 문서에 설명되어 있다.
적용방법은 아래 문서를 확인하여 적용하면 된다. (본인은 아직 적용하지 않았지만, 이후를 위해 기록)
https://www.guardsquare.com/manual/configuration/usage
ProGuard Manual: Usage | Guardsquare
ProGuard documentation about usage, configuration and options.
www.guardsquare.com
공식문서에서 난독화 설정 이후에는 모든 작업의 경우의 수를 테스트 해보는 것이 매우 중요하다고 설명하고 있다.
5. 설정 방법
android/app/build.gradle 파일에서 아래와 같이 수정하면 된다.
// android/app/build.gradle
...
def enableSeparateBuildPerCPUArchitecture = true
...
def enableProguardInReleaseBuilds = true
...
buildTypes {
...
release {
...
minifyEnabled true
shrinkResources true
...
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
728x90
'React Native' 카테고리의 다른 글
React Native - 출시한 어플 버전 업데이트 (Google Play Store) (0) | 2025.07.16 |
---|---|
React Native - 무한스크롤 (with. React-Query & FlatList) (0) | 2025.04.16 |
React Native - Firebase (storage) (0) | 2025.04.02 |
React Native - Firebase (Realtime Database & Firestore) (0) | 2025.03.25 |
React Native - 어플 버전 체크 (0) | 2025.03.21 |