๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด: ๋ค, ๊ฐ๋ฐ์๊ฐ minSdk์ targetSdk๋ ์ง์ ์ค์ ํ ์ ์์ด์!
๊ทธ๋ฐ๋ฐ… ๋ฌด์กฐ๊ฑด ๋ฎ๊ฒ ์ค์ ํ๋ค๊ณ ํด์ ๋ชจ๋ ์๋๋ก์ด๋ ๋ฒ์ ์์ ์ฑ์ด ์ ๋์๊ฐ๋ ๊ฑด ์ ๋ ์๋๋๋ค.
์ ๊ทธ๋ฐ์ง ์์ธํ ์ค๋ช ํด๋๋ฆด๊ฒ์.
๐ ๏ธ minSdk์ targetSdk๋ ๊ฐ๋ฐ์๊ฐ ์ค์ ๊ฐ๋ฅํด์!
์๋๋ก์ด๋ ์ฑ์ ๋ง๋ค ๋, ์๋์ฒ๋ผ build.gradle ํ์ผ์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ์ ๋ฃ์ต๋๋ค:
android {
compileSdk 35
defaultConfig {
minSdk 21 // ์ต์ ์ง์ ๋ฒ์ (Android 5.0)
targetSdk 35 // ์ต์ ํ ๋์ ๋ฒ์ (Android 15)
}
}
โ ๊ฐ๋ฐ์๊ฐ ๊ฒฐ์ ํ๋ ์ด์ ?
- ์ด๋ค ๊ธฐ๋ฅ์ ์ธ ์ ์๋๋
- ์ด๋ค ๊ธฐ๊ธฐ์์ ์คํํ ์ ์๋๋
- ์ผ๋ง๋ ๋ง์ ์ฌ์ฉ์์ธต์ ์ปค๋ฒํ ๊ฒ์ด๋
์ด๋ฐ ์ ๋ต์ ๋ฐ๋ผ ์ค์ ํฉ๋๋ค.
โ ๊ทธ๋ผ minSdk๋ฅผ ๋ง ๋ฎ๊ฒ 14, 15๋ก ์ค์ ํ๋ฉด ๋ค ๋๋ ๊ฑฐ ์๋?
๐ค ์ด๋ก ์ ์ผ๋ก๋ ์, ์คํ์ ๊ฐ๋ฅํ ์ ์์ด์.
ํ์ง๋ง ์ค์ ๋ก๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๋งค์ฐ ์ํํฉ๋๋ค.
์๋ํ๋ฉด…
- ์ต์ ๊ธฐ๋ฅ ์ฌ์ฉ ๋ถ๊ฐ
- Android 5.0 ์ด์ ์ ์ค๋๋ API๋ง ์ ๊ณต → ์ต์ UI ์ปดํฌ๋ํธ, ๋ณด์ ๊ธฐ๋ฅ, Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ด ์์ ์๋ ์ ํจ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถฉ๋
- ๋๋ถ๋ถ์ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ต์ minSdk 21 ์ด์์ ์๊ตฌ
- ๋ฎ๊ฒ ์ค์ ํ๋ฉด ๋น๋ ์๋ฌ ๋ฐ์ํ๊ธฐ ์ฌ์
- ํ
์คํธ ๋ถ๊ฐ๋ฅ
- ๋๋ฌด ์ค๋๋ Android ๋ฒ์ ์ ์๋ฎฌ๋ ์ดํฐ๋ ์๊ณ , ์ค์ ๊ธฐ๊ธฐ๋ ๊ฑฐ์ ์์
- ์ค๋ฅ๊ฐ ๋๋ ์ก์๋ผ ๋ฐฉ๋ฒ์ด ์์ด์
- ์ฌ์ฉ์ ์ ์ ์จ ๊ฑฐ์ ์์
- Android 5.0 ์ดํ ๊ธฐ๊ธฐ ์ฐ๋ ์ฌ๋์ ์ ์ธ๊ณ์ ์ผ๋ก 1%๋ ์ ๋จ
๐ ํ์ค์ ์ธ ์ ํ์?
| ๋์ค์ ์ธ ์ผ๋ฐ ์ฑ | minSdk = 21~24 (Android 5.0~7.0) |
| ์ต์ ๊ธฐ๋ฅ์ ์ ๊ทน ์ฌ์ฉํ๊ณ ์ถ์ ์ฑ | minSdk = 26~29 (Android 8.0~10) |
| ๋๊ธฐ์ ์๋น์ค ์์ค | minSdk = 23, targetSdk = ์ต์ ๋ฒ์ |
๋ณดํต ์์ฆ ์ฑ์ minSdk 24~26 (Android 7.0~8.0) ์ ๋๊ฐ ๊ธฐ๋ณธ์ด์์.
๐ฌ ์ ๋ฆฌํ์๋ฉด
- โ๏ธ minSdk์ targetSdk๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ค์ ๊ฐ๋ฅ
- โ ๏ธ ํ์ง๋ง ๋๋ฌด ๋ฎ๊ฒ ์ค์ ํ๋ฉด ๊ธฐ๋ฅ ์ ํ, ์๋ฌ, ํธํ์ฑ ๋ฌธ์ ๋ฐ์
- ๐ฑ ๊ธฐ๊ธฐ ์ ์ ์จ + ๊ธฐ๋ฅ ์ง์ ๋ฒ์๋ฅผ ๊ณ ๋ คํด์ ํ์ค์ ์ธ ๋ฒ์๋ก ์ค์ ํด์ผ ํด์!
โ minSdk ์ค์ ์ด ์ค์ ๋ก ํ์ฉ๋๋ ๊ณณ๋ค
1. ๐ฒ ์ฑ ์ค์น ๊ฐ๋ฅ ์ฌ๋ถ ํ๋จ (Play Store & ๊ธฐ๊ธฐ์์)
๊ฐ์ฅ ๋์ ๋๋ ํจ๊ณผ๋ ๋ฐ๋ก ์ด๊ฑฐ์์:
๐ minSdk๋ณด๋ค ๋ฎ์ Android ๋ฒ์ ์ด ์ค์น๋ ๊ธฐ๊ธฐ์์๋ ์ฑ ์ค์น ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค!
- ์ฌ์ฉ์๊ฐ Google Play์์ ์ฑ์ ๊ฒ์ํด๋ ๋ณด์ด์ง ์์
- APK๋ฅผ ์ง์ ์ค์นํ๋ ค๊ณ ํด๋ "์ฑ์ด ์ค์น๋์ง ์์" ์ค๋ฅ ๋ฐ์
์์:
- minSdk = 26 (Android 8.0)์ผ๋ก ์ค์ ๋ ์ฑ
- Android 7.0 ํฐ์์๋ ์ค์น โ
2. ๐งฑ ์ฝ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ API ๋ฒ์ ์ ํ
minSdk๋ ๋ค์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ Android API ์์ค์ ๊ฒฐ์ ํฉ๋๋ค.
์์:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Android 8.0๋ถํฐ ์๊ธด ๊ธฐ๋ฅ ์ฌ์ฉ
startForegroundService(...)
}
- minSdk 26 ์ด์์ด๋ฉด ์กฐ๊ฑด ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- minSdk 21์ด๋ผ๋ฉด ๋ฐ๋์ if ์ฒดํฌํด์ผ ์์ ํจ → ์๋๋ฉด ๋ฐํ์ ์ค๋ฅ ๋ฐ์!
3. ๐งช ์ฑ ๋น๋ ์ ์ปดํ์ผ๋ฌ ๊ฒ์ฆ ๊ธฐ์ค
Android Studio๋ minSdk๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์์ ๊ฒ์ฌํด์:
- "์ด ํจ์๋ ํด๋์ค๋ minSdk๋ณด๋ค ๋์ ๋ฒ์ ์์๋ง ์ง์๋๋๋ฐ, ์จ๋ ๋๊ฒ ์ด?"
- minSdk๋ณด๋ค ๋์ ๋ฒ์ ์ ์ฉ API๋ฅผ ์ฐ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ๊ฒฝ๊ณ ๋๋ ์ค๋ฅ๋ฅผ ๋์
4. ๐ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธํ์ฑ ๊ฒฐ์
๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ ์ ์ต์ ์๊ตฌ SDK๋ฅผ ๋ช ์ํด๋ก๋๋ค.
implementation 'androidx.camera:camera-core:1.1.0' // requires minSdk 21
- ํ๋ก์ ํธ์ minSdk๊ฐ 19๋ผ๋ฉด → ๋น๋ ์๋ฌ ๋ฐ์
- ์ด ๋๋ฌธ์ ์ต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ์ minSdk๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ฌ๋ ค์ผ ํ ์๋ ์์ด์
5. ๐ ์ฑ ํฌ๊ธฐ ์ต์ ํ (๋ฆฌ์์ค ๋ถ๊ธฐ ์ฒ๋ฆฌ)
์๋๋ก์ด๋์์๋ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ ์ ์์ด์.
res/
โโ drawable/
โโ drawable-v26/ ← Android 8.0 ์ด์์์๋ง ์ฌ์ฉ๋จ
minSdk๊ฐ ๋์์๋ก ํ์ ๋ฒ์ ๋์ ๋ฆฌ์์ค๋ฅผ ๋ ํฌํจํ๊ฒ ๋์ด ์ฑ ํฌ๊ธฐ๋ ์์์ง๋ ํจ๊ณผ๊ฐ ์์.
๐ฌ ์ ๋ฆฌํ๋ฉด
| ์ฑ ์ค์น | ํน์ Android ๋ฒ์ ์ดํ์์๋ ์ค์น ๋ถ๊ฐ |
| ์ฝ๋ ์์ฑ | API ์ฌ์ฉ ์ ํ → ์กฐ๊ฑด๋ฌธ or ํธํ ์ฝ๋ ํ์ |
| ๋น๋ ๊ฒ์ฌ | SDK ์กฐ๊ฑด ์๋ฐ ์ ์๋ฌ ๋ฐ์ |
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ์ ์ ํ๋จ |
| ๋ฆฌ์์ค/์ฑ ์ฉ๋ | ๊ณ ๋ฒ์ ๋ง ํ๊นํ๋ฉด ๋ ๊ฐ๋จํด์ง๊ณ ์ฑ์ด ๊ฐ๋ฒผ์์ง |
'๊ฐ๋ฐ ์ผ์ง ๐ฉโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Jackson์ด๋? (0) | 2025.06.23 |
|---|---|
| static ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ํญ์ ์ฌ๋ผ๊ฐ ์๋์? (2) | 2025.06.23 |
| ๐ฑ ์๋๋ก์ด๋ SDK๋ ํฐ ๊ธฐ์ข ์ด ๋ฌด์จ ์๊ด์ด์ผ? (2) | 2025.06.18 |
| spring boot) ํน์ SQL ๋ก๊ทธ ๊ฐ์ถ๊ธฐ (1) | 2025.06.18 |
| Java CopyOnWriteArrayList ์๋ฒฝ ์ ๋ฆฌ (1) | 2025.06.12 |