본문 바로가기
Android/Android Core

[Android/Kotlin] API Key 숨기기: buildConfigField 활용법

by quessr 2024. 12. 2.

 

안드로이드 앱 개발에서는 API Key와 같은 민감한 정보를 소스 코드에 하드코딩하면 보안상 위험합니다.

이러한 문제를 방지하기 위해 **buildConfigField**를 사용하여 API Key를 안전하게 관리해야 하지만, 매번 구현할 때마다 세부적인 과정을 잊어버리곤 했습니다. 그래서 이번 기회에 정리해 두고 필요할 때 빠르게 참고할 수 있도록 내용을 남깁니다.

 

1. 프로젝트 설정: local.properties에 API Key 저장하기

프로젝트 루트 디렉토리의 local.properties 파일에 API Key를 추가합니다. 이 파일은 기본적으로 .gitignore에 포함되어 있어 Git 저장소에 업로드되지 않습니다.

예시: local.properties

KAKAO_NATIVE_APP_KEY=your_kakao_native_app_key

 

여기서 your_kakao_native_app_key는 실제 Kakao Native App Key로 대체하세요.

 

2. build.gradle 파일에서 설정하기

app 모듈의 build.gradle 파일에서 buildConfigField를 사용하여 API Key를 안전하게 관리합니다.

build.gradle

android {
    ...
    val properties = Properties()
    properties.load(FileInputStream(rootProject.file("local.properties")))

    defaultConfig {
        applicationId = "kr.co.project"
        minSdk = 23
        targetSdk = 34
        versionCode = 1
        versionName = "0.0.1"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

        // BuildConfig에 API Key 추가
        buildConfigField("String", "KAKAO_NATIVE_APP_KEY", properties.getProperty("KAKAO_NATIVE_APP_KEY"))
    }
}

설명

  • buildConfigField
    BuildConfig 클래스에 KAKAO_NATIVE_APP_KEY라는 이름으로 API Key를 추가합니다.
    앱 실행 시 BuildConfig.KAKAO_NATIVE_APP_KEY를 통해 API Key에 접근할 수 있습니다.

3. 코드에서 BuildConfig로 API Key 사용하기

코드에서는 BuildConfig를 사용해 API Key를 참조합니다. 이를 통해 민감한 정보를 소스 코드에 직접 노출하지 않고 안전하게 사용할 수 있습니다.

예시 코드

@HiltAndroidApp
class Application : Application() {
    override fun onCreate() {
        super.onCreate()

        // BuildConfig를 통해 API Key를 안전하게 가져와 Kakao SDK 초기화
        KakaoSdk.init(this, BuildConfig.kakaoNativeAppKey)
    }
}

 

요약

  1. local.properties에 API Key를 저장합니다.
  2. build.gradle의 buildConfigField를 사용해 API Key를 관리합니다.
  3. 코드에서는 BuildConfig를 사용해 API Key를 참조합니다.
반응형