코틀린(Kotlin)/TIL

[코틀린(Kotlin)] API Key 숨기기

초보왕보초 2024. 2. 2. 21:31
728x90

API Key를 이용하여 카카오 API를 받아 이미지 검색을 하는 개인과제를 진행 중에, 이걸 제출할 때 깃허브에 올릴 텐데,

API Key가 노출된 채로 올려도 되나?라는 생각이 들었다.

 

그래서 API Key를 숨기는 방법을 검색해서 알아봤다

 

우선, 대략적인 순서는 아래와 같다

  1. local.properties 파일에 값 저장
  2. build.gradle.kts(:app) 수정
  3. 프로젝트 빌드
  4. BuildConfig로 호출

 

1. local.properties 파일에 값을 저장

// local.properties

sdk.dir = sdk 경로
API_KEY = "API_Key 값"
  • local.properties 파일을 열고 sdk 경로 밑에 사용할 API Key값을 정의한다
  • local.properties는 기본적으로 gitignore로 설정되어 있으므로 깃허브에 올라가지 않는다

 

2. build.gradle.kts(:app) 수정

android {
    ...
    defaultConfig {
        ...
        buildConfigField("String", "API_KEY", getAPIKey("API_KEY"))
    }
}
    
fun getApiKey(propertyKey: String): String {
    return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
  • getApiKey 함수를 생성해서 local.properties의 변수를 불러오도록 한다 

 

3. 프로젝트 빌드

  • 빌드 후에 Project → java(generated) → BuildConfig생성 확인

 

4. BuildConfig에서 값 호출

// BuildConfig
public static final String API_KEY = "API Key 값";

 

5. 값을 호출하여 사용

// 키를 사용해야 할 곳에서
BuildConfig.API_KEY
// 또는 BuildConfig.API_KEY 임포트 후
API_KEY

 

 

 

[참고 사이트]

728x90