| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프리코스
- 최상단
- 이미지 로딩
- activity
- onscrollstatechanged
- buildSrc
- serialization
- 안드로이드 스튜디오
- 우테코
- 우테코 6기
- compose
- 코틀린
- moshi
- layoutinflater
- 안드로이드 키보드
- coil
- 안드로이드
- broadcast reciver
- GSON
- recyclerview
- 컴포즈
- EditText Button
- constraint
- android studio
- Glide
- 멀티모듈
- 4대 컴포넌트
- 우아한테크코스
- 로또 미션
- Android
- Today
- Total
정답보다 해답을
[Android] Android 프로젝트에서 buildSrc를 활용해 모듈 구성 관리하기 본문
공통 Android 설정을 매번 build.gradle.kts 파일마다 복붙하고 계신가요?
모듈이 많아질수록 비효율은 커지고, 유지보수는 어려워집니다.
이럴 때 buildSrc 디렉토리를 활용하면 공통 설정을 코드로 재사용할 수 있어 더욱 효율적인 프로젝트 구성이 가능합니다.
1. buildSrc란?
buildSrc는 Gradle이 자동으로 인식하는 특별한 디렉토리입니다.
이 디렉토리 안에서 Kotlin 코드로 빌드 설정을 작성하면, 모든 모듈에서 해당 설정을 재사용할 수 있습니다.
왜 써야 할까?
- 중복 제거: compileSdk, jvmTarget 등 반복되는 설정 제거
- 일관성 확보: 모든 모듈의 빌드 환경을 하나로 통합
- 코틀린 기반 설정: 타입 안정성 + IDE 자동완성 지원
2. Version Catalog 연동 (libs.versions.toml)
라이브러리 버전 정보는 libs.versions.toml 파일에 선언적으로 정리할 수 있습니다.
[versions]
kotlin = "2.0.21"
agp = "8.9.2"
[libraries]
gradle = { module = "com.android.tools.build:gradle", version.ref = "agp" }
kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
ksp.plugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version = "1.0.21" }
※ 앱 설정 값(compileSdk, targetSdk, jvmTarget 등)은 일반적으로 Config.kt에서 상수로 관리합니다.
3. Config 객체 정의
object Config {
const val compileSdk = 35
const val minSdk = 26
const val targetSdk = 35
const val versionCode = 1
const val versionName = "1.0"
const val jvmTarget = "21"
const val applicationId = "com.stopstone.practice"
}
4. VersionCatalog 확장 함수 (buildSrc)
import org.gradle.api.artifacts.VersionCatalog
fun VersionCatalog.getLibrary(library: String) = findLibrary(library).get()
라이브러리 참조 시 편리하게 불러올 수 있도록 VersionCatalog를 확장합니다.
5. 앱 모듈 설정 (build.gradle.kts:app)
plugins {
id("android-application-module")
alias(libs.plugins.compose.compiler)
}
android {
namespace = "com.stopstone.practice"
}
dependencies {
/*
여기에 필요한 라이브러리를 Version Catalog 기준으로 추가하세요.
예시:
implementation(libs.androidx.core.ktx)
*/
}
앱 모듈에서 공통 설정 플러그인과 Compose 컴파일러를 적용하고, Version Catalog로 선언된 의존성을 불러옵니다.
6. 공통 모듈 설정을 어떻게 사용할까?
buildSrc에 정의한 설정 파일은 플러그인처럼 각 모듈에서 다음과 같이 적용할 수 있습니다.
plugins {
id("android-application-module")
}
공통화된 Android Application 설정을 적용합니다.
이를 통해 compileSdk, minSdk, targetSdk 등 반복되는 설정을 줄일 수 있습니다.
이렇게 하면 android-application-module.gradle.kts에 정의된 모든 설정이 해당 모듈에 자동으로 적용됩니다.
이 방식을 통해 app, core, feature 모듈 등 여러 모듈 간의 설정을 공통화할 수 있습니다.
'Android' 카테고리의 다른 글
| Firebase와 Supabase, 비교 분석 (0) | 2025.04.22 |
|---|---|
| [Android] 안드로이드 스튜디오에서 벡터 이미지 추가하기 (0) | 2025.04.18 |
| Jetpack Compose에서 스크롤바 직접 만들어쓰기 (0) | 2025.04.15 |
| 서버와 대화하는 방법, REST API (0) | 2025.04.10 |
| [Android] local.properties 활용하여 API 정보 은닉하기 (0) | 2025.04.09 |