์ด๊ฑด ๋ชฐ๋ผ์ ์๋๋ ! ํ์์ ์ผ๋ก ์์์ผ ํ๋ ์์ !
api๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ ํ ๋ ์ฐ๋ฆฌ๋ API KEY๋ ๊ฐ๋ฐ์๋ง ์ฌ์ฉํ๊ณ ๋ค๋ฅธ์ด๋ ์ฌ์ฉ์๊ฐ ์์์๋ ์๋๊ธฐ ๋๋ฌธ์ ๊นํ์ commit์ api key๊ฐ ๋จ์์์ผ๋ฉด ์ ๋๋ก ์๋๋ค.
API KEY๋ ์ฐ๋ฆฌ์ ๊ฐ์ธ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ ์ค์ํ ๊ฒ
๋ง์ฝ ํ๋ก์ ํธ ๊ฐ๋ฐ์ ์ํ๋ ์ฌ๋๋ค ์ด์ธ์ ํ์ธ์ด ์๊ฒ ๋๋ค๋ฉด, api๋ฅผ ๋๊ตฌ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๊ณ ์ด๋ก ์ธํด ์ต์ ์ ๊ฒฝ์ฐ์๋ ์ฑ์ ์๋น์ค๋ฅผ ์ข ๋ฃํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๋ฐ์ํ๊ฒ ๋๋ค.
local properties์ ๋จผ์ api ํค๋ฅผ ๋ฑ๋กํด์ค๋ค.
sdk.dir=C\:\\Users\\ASUS\\AppData\\Local\\Android\\Sdk weather_api_key = "๋ฐ์์จ api ํค ์ ๋ ฅ"
gitignore์ local properties๋ฅผ ๋ฃ์ด์ ๊นํ์์ ์ด๋ฅผ ๋ฌด์ํ๋๋ก ์ค์ ํด์ค๋ค.
app gradle์์ ์๋ก ๋ฑ๋กํ ํค๊ฐ์ ๋ถ๋ฌ์์ฃผ๊ณ , ํ๋ก์ ํธ์์ ๋ฑ๋กํ api๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ํ์
- ํค - ์ฌ์ฉ
ํ์์ผ๋ก ์ ์ฅํด์ฃผ๊ณ buildConfigField์ ์ ์ฅ๋ api๋ฅผ ๋ถ๋ฌ์์ฃผ๋ฉด ๋๋ค.
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.gms.google-services' id 'kotlin-kapt' id 'kotlin-parcelize' } // ์ ์ธ ๋ฐ ํค ๊ฐ ๋ถ๋ฌ์ค๊ธฐ Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) ... // ์ดํ defaultConfig { applicationId "com.example.sansaninfo" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" // ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ ์ํ ( ํ์ - ํค - ์ฌ์ฉ ) ์ ์ฅ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "WEATHER_API_KEY", properties['weather_api_key']) }
BuildConfig์ ํ์
- ํค - ์ฌ์ฉ
๋๋ก ์ ์ฅ์ด ์ ๋์ด์๋์ง ํ์ธ๋ง ํด์ฃผ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด api๊ฐ ํ๋ก์ ํธ์ ์ ๋๋ก ๋ฑ๋ก์ด ๋ ๊ฒ์ด๋ค.