Spring을 처음 공부했을 때부터 사용한 빌드 관리 툴 Gradle
다들 Gradle을 사용하라고 했기 때문에 아무 생각 없이 사용했다.
이번 포스팅은 Gradle의 개념을 알아보고 Maven에 비해 어떤 장점이 있어서 많이 사용하는지 알아보자
Gradle Build Tool is a fast, dependable, and adaptable open-source build automation tool with an elegant and extensible declarative build language.
공식 문서 따르면 Gradle은 빠르고, 신뢰할 수 있고, 우아하고, 확장 가능하고 등 형용사가 많다. 핵심만 보면 Gradle은 빌드 자동화 툴이다.
현재 JVM 생태계에서 가장 많이 사용되는 빌드 시스템으로 Android 진영에서는 공식적으로 Gradle 빌드 시스템을 사용하고 있다.
대다수의 기술은 기존의 것들은 보완하고 개선하기 위해 등장한다.
Gradle도 마찬가지다. 이전의 빌드 툴로는 Ant와 Maven이 있다.
Ant
는 XML 기반의 빌드 툴로 간단하고 사용이 쉽다는 장점이 있다.
하지만 애플리케이션이 복잡해지면 빌드 스크립트가 길고 복잡해 진다.
Maven
은Ant의 단점을 보완하기 위해 등장했다. XML 기반으로 작성되며 생명주기와 프로젝트 객체 모델 개념이 사용됐다. 또한, Ant의 단점인 길고 복잡한 빌드 스크립트를 개선했다. 하지만 여전히 XML 특유의 복잡함과 가독성 저하 문제를 해결하지 못했다.
그렇게 등장한 것이 Gadle
이다. Gradle은 이전 기술들의 단점을 개선했다.
자세한 내용은 다음 장에서 이야기한다.
Groovy
먼저 기존의 XML 방식이 아닌 Groovy를 차용했다. Groovy는 Java 언어와 유사하여 개발자가 쉽게 사용할 수 있고, 가독성이 XML보다 우수하다.
필자가 생각하는 가장 체감이 큰 장점이다.
유연한 빌드 스크립트 작성
Gradle은 자체적으로 보유한 기능(ex. 캐싱, 병렬 실행), 외부 플러그인 또는 개발자가 작성한 빌드 로직을 사용하여 광범위한 빌드 스크립트를 작성할 수 있다.
성능
Gradle은 캐싱을 사용하기 때문에 Maven보다 빌드 속도가 빠르다.
아래 그래프는 Gradle에서 측정한 프로젝트 규모 별 빌드 속도 차이다.
모든 규모(Small, Medium, Large)에서 Gradle이 압도적인 성능 차이를 보여준다.
지금까지 Gradle의 개념과 등장 배경, 장점을 알아봤다. 요약하자면 Gradle은 빌드 자동화 툴로 기존에 존재하던 Ant, Maven의 단점을 보완하기 위해 등장했다. Groovy 언어 기반으로 가독성과 사용성이 높고, 유연한 빌드 스크립트 작성, 높은 성능이 장점이다.