Maven이 아닌 Gradle을 사용하자!

"Maven이 아닌 다른 빌드 도구를 찾다!"


그 동안 개발을 하면서 빌드 도구에 중요성을 인지하지 못했다. 하지만 담당하게 된 빅데이터 모니터링 웹 프로젝트의 빌드 속도가 5분 이상이 걸려 Java, xml(mybatis)를 수정하고 적용시키고 확인하는 데 너무 오래 걸려 작업 속도가 나오지 않았다. 레거시로 입력된 라이브러리들을 Maven에서 제거를 하면서 최적화를 진행하였고 속도는 3분으로 줄어들었다. 하지만 추가 기능을 개발하면서 다시 거의 5분에 빌드속도로 늘어나게 되었고, 배고픈 하이에나 처럼 방법을 찾아보게 되었다.

 

"캐싱은 언제나 옳다."


Maven은 이미 빌드된 파일들을 다시 빌드를 한다. 그렇기 때문에 느린 것이다. 반면에 Gradle은 이미 빌드된 파일들은 다시 빌드하지 않는다. 캐싱을 하기 때문이다. 이것만으로도  속도에 엄청난 차이를 보인다.

Gradle 공식 사이트에서 이미 Maven과의 성능 비교를 테스트한 자료를 올렸다. 일반적인 라이브러리 프로젝트 기준으로 테스트한 경우 테스트 실행 속도가 1.7배 더 빠르고, 빌드 캐시를 사용할 때 빌드 속도가 최대 30배 더 빠르다고 한다.



 

"Maven과 Gradle을 비교해보자!"


1. 소개

Maven: XML 기반의 빌드 도구.

Gradle: Groovy 또는 Kotlin DSL을 사용하는 그루비 기반의 빌드 도구.

2. 문법

Maven: XML 기반으로 간단하고 명시적. <groupId>, <artifactId>, <version> 등의 태그 사용.

Gradle: Groovy 또는 Kotlin을 사용하여 간결하고 가독성이 좋은 DSL. group, name, version 등의 속성 사용.

3. 유연성

Maven: 컨벤션을 따라야 하며, 일부 설정을 오버라이드하기 어려움. 표준 빌드 라이프사이클 제공.

Gradle: 설정이 자유롭고 유연하여 프로젝트에 특화된 빌드 가능. 필요한 만큼의 라이프사이클 정의 가능.

4. 성능

Maven: 빌드간 의존성 캐싱이 미비하여 성능이 안좋다.

Gradle: 빌드 스크립트를 통한 병렬 빌드와 증분 빌드를 지원하여 성능 향상되었고 빌드간 의존성 캐싱으로 성능이 좋다.

 

"마무리"


5년의 커리어 동안 전ㆍ현 직장에서 Gradle이 아닌 Maven을 사용하고 있었다. 2012년에 출시된 Gradle보다 Maven을 더 많이 사용하고 있는 걸까? 고민하고 내린 결론은 Maven이 익숙하기 때문이고 Gradle을 사용하려면 학습을 해야하며 큰 프로젝트인 경우 마이그레이션하는 데 적지 않은 비용이 들기 때문인 것 같다. 하지만 최대 100배까지 빠르다는데 변경하지 않는 것은 '기술 부채'라고 생각하며 이것을 해결하는 것이 개발자의 숙명이 아닐까?

 

Maven이 아닌 Gradle을 사용하자!

초급에서 고급까지

Maven이 아닌 Gradle을 사용하자!

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 11월 23일 오전 1:58

댓글 0

    함께 읽은 게시물

    리트코드 102. Binary Tree Level Order Traver

    ... 더 보기

    Binary Tree Level Order Traversal | 알고달레

    알고달레

    Binary Tree Level Order Traversal | 알고달레

    이력서에 쓰는 경험

    

    ... 더 보기

    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    www.youtube.com

    달레의 코딩 테스트

     • 

    댓글 1 • 저장 27 • 조회 3,907


    [필사노트] 헤르만 헤세, '데미안'

    ... 더 보기

    07화 헤르만 헤세, '데미안'

    Brunch Story

    07화 헤르만 헤세, '데미안'

    조회 674


    < '네이버 다녀요'라는 말에 아무도 무슨 일을 하는지는 묻지 않았다 >

    1

    ... 더 보기

    나는 가끔 조합형 한글의 아름다움에 대해 생각한다.


    그 아름다움은 단순히 예쁜 글꼴이나 정갈한 종이 위의 자소 배열에서 끝나지 않는다. 진짜 매력은, 정밀한 정보 구조와 이산 수학적 규칙성 속에 숨어 있다.


    ... 더 보기