방대한 문서보다 동작하는 소프트웨어

개발

[안드로이드] 프로가드를 설정하는 세 가지 방법(Kotlin DSL)

꽃게장세트 2022. 1. 9. 18:20

안드로이드 프로젝트의 앱 수준 build.gradle 에서 프로가드를 적용하는 방법에는 대략 세 가지가 있다.

첫번째:

proguardFile(file("proguard-rules.pro"))

proguard-rules.pro 파일에 모든 라이브러리의 proguard rule 을 작성한다. 간편하다.

두번째:

proguardFiles(
    files(
      "proguard-rules-retrofit.pro",
      "proguard-rules-glide.pro",
      "...",
    )
)

라이브러리 별로 파일을 다르게 하여 작성한다. 라이브러리 하나에 대한 가독성이 높아진다. 다만 결국 여러 라인을 작성하게 된다.

세번째:

// 아래 두 줄은 생략해도 무방하다.
proguardFile(getDefaultProguardFile("proguard-android.txt"))
proguardFile(file("proguard-rules.pro"))

val files = rootProject.file("proguard")
    .listFiles()
    ?.filter { it.name.startsWith("proguard") }
    ?.toTypedArray() ?: arrayOf()

proguardFiles(*files) // * 는 빼도 된다.

프로젝트 최상위 폴더에 proguard 폴더를 만들고 그 안에 접미사가 proguard인 파일을 모두 찾아 프로가드를 설정하는 코드다.

결론

필자의 경우 세번째로 방법으로 프로가드 룰을 적용한다. 이 방법으로 한다면 우리 개발자들은 단지 라이브러리에 맞는 프로가드 룰 파일을 작성하여 추가하기만 하면된다. 두번째 방법처럼, 라이브러리 파일을 여러개 만드는 것은 각 라이브러리에 대해 작성한 프로가드 룰의 가독성을 위해 필요하다.