반응형

개발을 진행하게 되면 여러 API를 사용하게 되는데 API를 호출하는 과정에서 key, token 등 보안상 유출되면 안되는 값들이 있습니다. 만약 gitHub와 같은 곳에 public으로 프로젝트를 그대로 올린다면 이 key, token과 같은 유출되면 안되는 값들이 그대로 유출되어 악용될 우려가 있습니다.
local.properties를 활용하여 token, key등의 중요한 값들을 숨기고 깃에 프로젝트를 공유할 수 있습니다.

ps. local.properties는 기본적으로 .gitIgnore에 포함되어 있습니다.

local.properties 설정

local.properties는 위와 같은 경로에 존재하고 있습니다.

토큰의 값이 "1234", 사용하는 api의 key값이 "qwer1234"라고 가정하고 설명을 해보겠습니다.

# token
token = "1234"

# api key
api_key = "qwer1234"

 

local.properties의 파일을 열어 토큰과 api의 값을 명시해줍니다.

sdk.dir은 기본적으로 존재하고 있으면 sdk의 경로를 알려줍니다.

build.gradle(Module:)

앱 수준의 build.gradle인 build.gradle(Moudle: 프로젝트명.app)에서 plugin과 android 사이에 아래와 같은 코드를 작성하여줍니다.

// For local.properties 
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

local.properties 사용을 위한 코드를 작성하였다면, android 내부의 defaultConfig에서 local.properties파일에 적어놓은 key, token을 연결시켜주어야 합니다.

// token  지정
buildConfigField "String", "token", properties["token"]
// api의 key 지정
buildConfigField "String", "key", properties["api_key"]

이와 같은 형식으로 지정할 수 있습니다.

이처럼 local.properties사용을 위한 설정을 마쳤다면 sync를 해준 후 프로젝트를 Rebuild 해줍니다.

코드 사용

위에서 token, key로 키를 지정해놓았기 때문에

// local.properites에 있는 token
BuildConfig.token
// local.properites에 있는 api_key
BuildConfig.key

와 같은 형식으로 사용이 가능합니다.

사용 예시

위와 같이 사용하여 엑티비티의 화면이 나타날 때 해당 값들을 로그에 출력하도록 해보았습니다.

결과

로그창에 정상적으로 값이 출력되는 것을 확인할 수 있습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기