본문 바로가기
Language/Spring

Maven 과 Gradle의 차이 [JAVA, SPRING, GRADLE, ECLIPSE]

by tyrannojung 2020. 12. 11.
반응형

 

빌드? 빌드 툴?

 먼저 빌드란 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 과정을 말합니다. 실생활로 예를 들면 '윈도 95'를 개발하는 것까지가 '개발'이며, 이것이 개인의 컴퓨터에 설치되어서 실행되기까지의 단계 (window를 포장 -> 배송 -> 설치 -> 우리가 실행)를 모두 '빌드(Build)'라고 생각하시면 됩니다.

(빌드의 단계 중 컴파일이 포함되어 있는데 컴파일은 빌드의 부분집합이라고 생각하시면 된다.)

 

 그리고 빌드 툴이란 빠른 시간 속에 기술의 발전하여 계속해서 늘어나는 라이브러리의 추가, 프로젝트를 진행하면서 라이브러리의 버전 동기화의 어려움을 해소하고자 등장된 도구입니다. 대표적으로 메이크, 엔트, 메이븐, 그레이들이 있습니다.

 

 

 

Maven이란?

 메이븐은 자바용 프로젝트 관리 도구입니다. 아파치 앤트를 사용하던 개발자들의 불편함을 해소시키며 부가기능을 추가하여 세상에 등장했습니다. 메이븐은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운로드하여줍니다. 이러한 기능으로 빌드 툴 세계에 혁명을 가져왔다고 평가받고 있었습니다.

 

 

Gradle은 안드로이드 앱을 만들때 필요한 공식 빌드시스템이기도 하며, JAVA, C/C++, Python등을 지원한다.

 

 

Gradle의 등장

  Gradle은 빌드 툴의 역사를 봤을때 가장 마지막에 등장했습니다. 그러므로 지금까지의 빌드툴 (메이크, 엔트, 메이븐)의 장점을 모아서 만든 프로젝트 관리 도구입니다. 엔트와 메이븐의 XML 정적 코딩도 아니며, 메이크와 같은 동적 스크립트 형식이며 JVM언어인 Groovy를 사용하여 자바 문법과 거의 동일하게 사용 가능합니다. 그렇기 때문에 변수 선언, IF, ELSE, FOR 등의 로직 구현이 가능하죠. 그렇지만 소스 코드를 컴파일할 필요는 없습니다. 이러한 Groovy를 사용하여 빌드 처리를 작성하고, 실행하는 것이 Gradle입니다.

 

 

 

Maven vs Gradle

 Maven에서는 Gradle과 비교 문서가 없지만 Gradle에서는 비교 문서가 존재합니다! 그만큼 Gradle은 가장 최신인 만큼 사용성, 성능이 Maven보다 뛰어난 스펙을 가지고 있죠. 해당 사이트의 그래프를 보면 Gradle은 Maven보다 100배 빠르다는 결론으로 이르게 됩니다. Gradle은 간결한 코드로 가독성이 좋으며, 캐시를 사용하기 때문에 빌드 속도가 빠릅니다.

 

 

 

정리

 지금도 Maven의 사용률은 Gradle을 앞서고 있으며, 구글 트렌드 지수는 아직도 Maven이 높습니다. 협업의 편리성과, 러닝 커브를 고려했을 때도 역시 Maven을 사용하는 팀이 많습니다. 맨 처음 Gradle이 출시되었을 때는 Maven이 지원하는 것조차 지원되지 않았으며, 성능 또한 Maven이 우수했다면, 지금은 메이크, 엔트, 메이븐의 구조적 장점과 편리한 의존성 관리 기능까지 합쳐지면서 Gradle은 점차 대세가 되고 있습니다. 빌드 타임이 비용 문제로 이어지지 않더라도, pom.xml이 보기도 싫을 정도로 아직까지 길지 않더라도 100배 빠른 Gradle을 한번 적용해보는 것은 어떨까?  

 

 

 

출처

gradle.org/

 

Gradle Build Tool

Accelerate developer productivity. Gradle helps teams build, automate and deliver better software, faster.

gradle.org

bkim.tistory.com/13

web2eye.tistory.com/31

hyojun123.github.io/2019/04/18/gradleAndMaven/

반응형

댓글