반응형

 

  • 오픈 소스 빌드 도구
  • DSL(Domain Specific Language) 기반 빌드 스크립트 사용: Groovy 또는 Kotlin
  • 의존성 관리, 멀티 프로젝트 지원, 캐싱, 병렬 처리 고급 기능 제공
  • Android Studio공식 빌드 시스템

🔁 다른 빌드 도구와의 비교

특징 bazel Gradle Maven Ant
출시 시기 2015 2012 2004 2000
스크립트 언어 Starlark (Python 유사) Groovy / Kotlin DSL XML XML
특징 Google 개발. 대규모 프로젝트에 최적화 빠르고 유연함. Android 공식 빌드 도구 Ant보다 구조화됨. 의존성 관리 도입 최초의 자바 빌드 도구. 절차적(명령형) 방식
의존성 관리 별도 WORKSPACE 설정 필요 지원 (Maven repository 사용) 지원 부분적 (외부 도구 필요)
생산성 (정적 분석 기반 캐시), 
뛰어난 병렬 빌드,
고급 원격 캐시 지원, 
매우 빠른 속도
캐싱, 병렬 빌드로 빠름 느림 (모든 작업 재실행) 사용자가 다 수동으로 정의해야 함
구성 방식 선언형, 정형화된 규칙, 
코드 재사용성 높음(규칙과 매크로)
선언적 + 명령형
코드 재사용성 높음(스크립트 로직)
선언적 명령형
플러그인 시스템 제한적 (JetBrains IDE 플러그인 필요) 매우 유연함 제한적 제한적
사용 예 Google 내부, TensorFlow, 대규모 모노레포 Android, Java, Kotlin, Spring Boot Java, Spring Boot 구버전 Java 프로젝트, 빌드 자동화
요약 빠르고 강력하나 진입 장벽이 높음 현대적이고 유연하며 성능도 우수. JVM 기반 프로젝트에 거의 최적. 표준화된 구조, 배우기 쉬움. 단, 유연성이 떨어짐. 너무 구식, 거의 사용되지 않음. 학습 용도로는 괜찮지만 실전에서는 비추천.

 

 

💡 Gradle장점

  • 속도: 증분 빌드, 데몬 프로세스, 병렬 빌드 등으로 빠름
  • 확장성: 플러그인을 쉽게 추가 가능 (application, java, android 등)
  • 유연한 빌드 스크립트: Groovy 또는 Kotlin활용하여 복잡한 로직도 작성 가능
  • IDE 통합성: IntelliJ, Android Studio 등과 완벽한 통합

📂 예시 (Gradle build.gradle 파일 - Groovy)

plugins {
    id 'java'
}

group = 'com.example'
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'junit:junit:4.13.2'
}

 

🤔 언제 Gradle선택해야 할까?

 

  • Android 개발을 한다면 무조건 Gradle
  • 복잡한 멀티 모듈 프로젝트가 있다면 Gradle유리
  • 유연한 빌드 로직이 필요할 Gradle 추천
  • 단순하고 정적인 빌드 구조를 원한다면 Maven괜찮음

 

 

반응형

+ Recent posts