- 빌드(Build)는 소스 코드를 배포 가능한 형태로 만드는 과정이며, Gradle은 이 과정을 자동화하는 빌드 도구입니다. 🛠️
- Gradle의 증분 빌드(Incremental Build)는 변경된 파일만 재컴파일하여 빌드 효율을 높이며, Maven보다 세밀하게 변경 사항을 관리합니다. 🚀
- Gradle의 빌드 캐시(Build Cache)는 이전 빌드 결과물을 저장하고 재사용하여 빌드 시간을 단축하며, 캐시된 결과물은 특정 폴더에 키와 함께 저장됩니다. 💾
- 증분 빌드와 빌드 캐시는 상호 보완적으로 작동하여 빌드 성능을 극대화합니다. 🤝
build.gradle은 Gradle에게 빌드에 필요한 정보, 특히 의존성을 정의하는 스크립트 파일입니다. 📝
- 의존성(Dependency)은 프로젝트가 사용하는 외부 라이브러리나 프레임워크를 의미하며,
build.gradle에 추가하여 관리합니다. 🔗
- 전이 의존성(Transitive Dependency)은 내가 의존하는 대상이 또 다른 대상을 의존할 때 발생하는 간접적인 의존성으로, Gradle이 자동으로 함께 다운로드합니다. 🕸️
- 의존성은
configuration(범위), groupID(그룹 식별자), artifactId(의존성 식별자), version(버전)으로 구성됩니다. 🧩
- Dependency Configuration 종류:
compileOnly는 컴파일 시점에만, runtimeOnly는 런타임 시점에만 의존성을 제공합니다. 💡
implementation은 컴파일 및 런타임 모두에 의존성을 제공하며, 내부 구현에 사용되는 의존성을 외부에 노출하지 않습니다. 📦
api (및 compileOnlyApi)는 모듈 개발 시 사용되며, 해당 모듈을 의존하는 클라이언트에게 전이 의존성을 노출하여 직접 사용할 수 있게 합니다. 🌐
데브허브 | DEVHUB | [10분 테코톡] 부기, 우가의 Gradle