Framework/Spring

[Spring] Java 프로젝트 빌드를 위한 Gradle과 Maven의 비교

JM Lee 2024. 4. 9. 17:53
728x90

파이썬에서는 pip, venv 등으로 프로젝트를 진행한다. 마찬가지로 자바에서도 이러한 프로젝트 빌드를 위한 도구들이 존재하는데, 대표적인 도구가 바로 Gradle과 Maven이다.

 

 

  1. Maven:
    • Apache Maven은 Java 프로젝트 관리 도구로, XML 기반의 프로젝트 객체 모델(POM)을 사용한다.
    • Maven은 중앙 저장소에서 의존성을 가져오고 라이브러리를 다운로드하여 빌드를 수행한다.
    • Maven의 빌드 라이프사이클은 사전 정의된 단계로 구성되어 있으며, 사용자는 특정 단계에 플러그인을 연결하여 확장할 수 있다.
    • Maven은 간단한 프로젝트 구조 및 관리 철학을 제공하며, 표준화된 디렉터리 구조를 권장한다.
  2. Gradle:
    • Gradle은 Apache Ant와 Apache Maven의 장점을 결합한 빌드 자동화 도구로, Groovy 또는 Kotlin DSL을 사용한다.
    • Gradle은 빌드 스크립트를 작성할 때 유연성과 강력한 기능을 제공한다. 이는 복잡한 빌드 작업을 수행하기에 특히 유용하다.
    • Gradle은 그루비(Groovy)나 코틀린(Kotlin)과 같은 동적 언어를 사용하여 빌드 스크립트를 작성할 수 있으므로, Maven의 XML보다 훨씬 가독성이 뛰어나고 유지보수하기 쉽다.
    • Maven과는 다르게, Gradle은 빌드 스크립트를 작성할 때 자바 코드를 작성하는 것과 같은 자유로운 형식을 제공하여 훨씬 더 유연하고 강력한 빌드를 가능하게 한다.

 

많은 강의에서는 Gradle을 주로 사용하는데, 그 이유가 위에 있는 것 같다. 복잡한 빌드 요구와 유연성이 필요한 경우가 실무에서 많기 때문에 Gradle에 먼저 익숙해야 한다는 점을 반영한 듯하다.