본문 바로가기
Spring

Gradle vs Maven

by 꽃도련 2022. 5. 11.

Gradle과 Manven은 빌드, 프로젝트 구성/관리, 테스트, 배포 도구로 최근에는 Gradle을 많이 사용한다고 함.

 

 

Gradle이 Maven보다 좋은점

  • Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.
    • 설정 내용이 길어지고 가독성 떨어짐
    • 의존관계가 복잡한 프로젝트 설정하기에 부적절
    • 상속구조를 이용한 멀티 모듈 구현
    • 특정 설정을 소수의 모듈에서 공유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야 함 (상속의 단점 생김)
  • Gradle은 Groovy를 사용하기 때문에, 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 작성하면 된다.
    • Configuration Injection(설정 주입) 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버했다.
    • 설정 주입 시 프로젝트의 조건을 체크할 수 있어서 프로젝트별로 주입되는 설정을 다르게 할 수 있다.
  • Gradle은 concurrent에 안전한 캐시를 허용한다.
    • 2개 이상의 프로젝트에서 동일한 캐시를 사용할 경우, 서로 overwrite되지 않도록 checksum 기반의 캐시를 사용하고, 캐시를 repository와 동기화시킬 수 있다.

 

Gradle vs Maven: 성능 비교

  • 600명의 엔지니어가 1년동안 1분걸리는 빌드를 매주 42번 빌드를 진행할 때 들어가는 비용은
    600명의 엔지니어 * 1.42달러/분 * 42개의 빌드/주 * 44주/연간 = 1,600,000달러/연간
    이때 빌드 속도가 90% 빨라진다면?
  • Gradle은 메이븐 보다 최대 100배 빠르다. 

 

Gradle이 Maven보다 빌드속도가 빠른 이유

  • Gradle은 작업 의존성 그래프를 기반으로하는 반면 Maven은 고정적이고 선형적인 단계의 모델을 기반으로 한다.
  • 성능 측면에서는 둘 다 다중 모듈 빌드를 병렬로 실행할 수 있지만, Gradle은 어떤 task가 업데이트되었고 안되었는지를 체크하기 때문에 incremental build를 허용한다. 이미 업데이트된 테스크에 대해서는 작업이 실행되지 않으므로 빌드 시간이 훨씬 단축된다. 

 

 

* 참고자료

- https://jisooo.tistory.com/entry/Spring-%EB%B9%8C%EB%93%9C-%EA%B4%80%EB%A6%AC-%EB%8F%84%EA%B5%AC-Maven%EA%B3%BC-Gradle-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0

 

[Spring] 빌드 관리 도구 Maven과 Gradle 비교하기.

spring에서 초기에 프로젝트를 생성할 때, 빌드 도구를 Maven으로 선택할지, Gradle로 선택할지에 대한 결정이 필요하다. ​ 그냥 나는 항상 익숙한데로, 의심의 여지 없이 spring boot 프로젝트를 진행

jisooo.tistory.com

- https://bkim.tistory.com/13

 

Maven vs Gradle

Maven vs Gradle 스프링 기반의 프로젝트를 시작하면서 Maven을 처음 접했다. Ant를 사용한적도 없었고 의존성 관리와 빌드 스크립트에 대한 지식도 없었기에 이런게 있나보다 하고 사용했었다. Maven

bkim.tistory.com

 

'Spring' 카테고리의 다른 글

Gradle 라이브러리 의존성 설정  (0) 2022.05.24
Spring Boot 자동 환경설정 Annotation  (0) 2022.05.11