개발을 진행하게 되면 여러 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
와 같은 형식으로 사용이 가능합니다.
사용 예시
위와 같이 사용하여 엑티비티의 화면이 나타날 때 해당 값들을 로그에 출력하도록 해보았습니다.
결과
로그창에 정상적으로 값이 출력되는 것을 확인할 수 있습니다.
최근댓글