의존성과 플러그인
빌드를 구성합니다
의존성과 플러그인은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
의존성 구성
Gradle은 의존성을 구성별로 그룹화합니다. 구성은 의존성을 언제 어디서 사용할 수 있는지 제어합니다.
implementation— 컴파일 및 런타임에 사용되며 소비자에게 노출되지 않음api— 소비자에게도 노출됨testImplementation— 테스트에만 사용됨
implementation과 api 비교
implementation은 의존하는 모듈에 의존성을 숨겨 빌드 성능과 캡슐화를 개선합니다. 의존성이 공개 타입에 나타나는 경우에만 api를 사용합니다.
dependencies {
api("com.squareup.okio:okio:3.9.0") // leaks into public API
implementation("com.google.code.gson:gson:2.11.0") // internal only
}compileOnly와 runtimeOnly
일부 의존성은 한 단계에서만 필요합니다.
compileOnly— 컴파일 시점에 존재하지만 패키징되지 않음(예: 주석)runtimeOnly— 런타임에만 존재함(예: JDBC 드라이버)
dependencies {
compileOnly("org.projectlombok:lombok:1.18.32")
runtimeOnly("org.postgresql:postgresql:42.7.3")
}의존성 좌표
좌표는 group:name:version 형식입니다. 명확성을 위해 각 부분을 명시적으로 나눌 수도 있습니다.
dependencies {
implementation(group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version = "1.8.1")
}프로젝트 의존성
다중 모듈 빌드에서는 project(...)를 사용하여 한 모듈이 다른 모듈에 의존합니다.
dependencies {
implementation(project(":core"))
}핵심 플러그인 적용
내장 플러그인에는 버전이 필요하지 않습니다. 커뮤니티 플러그인은 ID와 버전을 지정하여 적용합니다.
plugins {
id("java-library")
kotlin("jvm") version "2.0.0"
id("com.github.johnrengelman.shadow") version "8.1.1"
}포털의 플러그인
대부분의 플러그인은 plugins { } 블록에서 ID로 적용하면 Gradle 플러그인 포털에서 자동으로 해결됩니다.
plugins {
id("org.jetbrains.kotlin.plugin.serialization") version "2.0.0"
}전이 의존성 제외
다른 라이브러리에 함께 포함되는 원치 않는 전이 의존성을 제외할 수 있습니다.
dependencies {
implementation("com.example:lib:1.0") {
exclude(group = "org.slf4j", module = "slf4j-api")
}
}버전 강제 지정
해결 전략을 통해 특정 버전을 강제 지정하여 충돌을 해결합니다.
configurations.all {
resolutionStrategy {
force("com.google.guava:guava:33.2.1-jre")
}
}의존성 트리 검사
dependencies 작업을 사용하여 해결된 그래프를 확인하고 충돌을 진단합니다.
// ./gradlew dependencies
// ./gradlew app:dependencies --configuration runtimeClasspath적절한 구성 선택
기본적으로 implementation을 사용합니다. api는 신중하게 사용하고, 테스트에는 testImplementation을, 단계별 요구 사항에는 compileOnly/runtimeOnly 조합을 사용합니다.
빠른 확인
로그 기록 라이브러리가 모듈 내부에서만 사용되고 공개 형식에는 전혀 나타나지 않습니다. 어떤 구성이 가장 적합합니까?
복습
빌드를 구성했습니다:
- 구성:
implementation,api,compileOnly,runtimeOnly,testImplementation - ID와 버전을 지정하거나 핵심 플러그인으로 플러그인 적용
- 버전을 제외하거나 강제 지정하고 트리 검사
다음: 사용자 지정 작업 작성
자주 묻는 질문
“의존성과 플러그인” 강의는 무료인가요?
네 — “의존성과 플러그인” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“의존성과 플러그인”에서 뭘 배우나요?
빌드를 구성합니다 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“의존성과 플러그인” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Gradle Kotlin DSL
- 의존성과 플러그인
- 사용자 지정 작업
- 버전 카탈로그