💡 개발을 하면서 민감한 정보들에 대해서 사용을 하신적이 있을겁니다. 예를들어 구글 API 사용을 위한 Client_id 등등이 있습니다. 우리는 깃을 통해 프로젝트를 관리하지만, 이러한 민감한 정보의 경우 숨겨줄 필요가 있습니다.
처음 프로젝트를 생성했을 때, Project 단의 gitignore 파일을 확인할 수 있습니다.
여기서 우리는 깃에 업로드가 안되는 항목들을 확인할 수 있습니다. (필요의 경우 추가하여 깃에 업로드를 막을 수 있습니다.)
local.properties, /build 의 경우 무시하는 것을 볼 수 있습니다.
project 단의 local.properties를 확인하면 sdk.dir 말고는 아무 정보도 있지 않습니다.
우리는 여기에 데이터를 담고 사용할 것입니다.
이렇게 작성을 완료했으면, local.properties에서의 작업은 완료되었습니다.
app단의 build.gradle에 정보를 추가해줍시다.
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
그리고 android 내부의 defaultConfig에
buildConfigField "String", "API_KEY", properties['api_key']
를 추가해주었습니다.
이렇게 추가를 해준 후, 상단의 Sync now
를 눌러주시면, Build가 진행되는 것을 확인할 수 있습니다.
그리고 프로젝트를 한번 실행시켜줍니다.
그렇게 되면 build.gradle에 있는 정보를 토대로 실행하게 되고, local.properties를 바탕으로 BuildConfig 내에 정보를 기록하게 됩니다.
😵 방금 기록하면서 알게된 내용인데, 한글은 깨집니다!!
어차피 저장할 api_key들의 경우 영어로 되어 있을 것이기에 편의를 위한 사진이라고 생각해주세요.
이렇게 BuildConfig 내에 잘 위치한 모습을 볼 수 있습니다.
자 이렇게 저장한 key들을 사용하는 법은 간단합니다.
val api_key = "$BuildConfig.API_KEY}"
이런 식으로 사용하면 됩니다.
이렇게 숨기고 싶은 항목을 가리는 방법에 대해서 알아보았습니다.
협업을 할 때, 깃을 통해 프로젝트를 관리하는 경우, 깃에는 업로드 되지 않는 내용들이기에 따로 key들을 전달해줄 필요가 있습니다!!