24.02.26 ProGuard

KSang·2024년 2월 26일
1

TIL

목록 보기
72/101
post-thumbnail

Proguard는 Java 바이트코드를 최적화, 난독화, 축소하는 데 사용되는 도구다.

앱 개발에서 주로 앱의 APK 크기를 줄이고, 리버스 엔지니어링을 어렵게 해 앱의 소스 코드를 보호하는데 사용된다.

제공하는 기능은

1. 난독화

클래스, 필드, 메서드의 이름을 짧고 의미 없는 이름으로 변경하여, 소스 코드의 구조와 로직을 파악하기 어렵게 한다.
리버스 엔지니어링을 어렵게 해 앱의 보안을 강화한다.

2. 축소

사용되지 않는 클래스, 필드, 메서드, 속성 등을 제거해 앱의 크기를 줄인다.
앱의 전체적인 크기를 최소화하고, 다운로드 시간과 실행 시간을 개선한다.

3. 최적화

바이트코드를 분석하여 더 효율적으로 실행될 수 있도록 개선한다.
예를 들면, 불필요한 연산을 제거하거나 반복문을 간소화 한다.

ProGuard 설정

프로가드를 사용하기 위해서는 proguard-rules.pro파일에서 앱에 적용할 규칙을 정의해야 한다.
이 파일에서는 난독화할 항목, 제외할 항목 등을 세밀하게 지정할 수 있다.
예를 들어, 일부 라이브러리가 리플렉션을 사용하는 경우 해당 클래스나 메서드를 난독화에서 제외해야 할 수 있다.

안드로이드 스튜디오 프로젝트에서는 build.gradle파일에서 ProGuard를 활성화 하고, 사용할 규칙 파일을 지정할 수 있다.

android {
    ...
    buildTypes {
        release {
            minifyEnabled true // ProGuard 활성화
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

0개의 댓글