본문 바로가기

이론/JSP&Spring&등등 이론

[Spring] 을 사용하며 궁금했던 Maven vs Gradle

Gradle vs Maven

Maven

왜 필요한가?

프로젝트를 수행하다보면 외부 라이브러리 사용이 필수적이다. 아무리 작은 프로젝트여도 mysql이랑 연동하려고 치면 mysql-connector가 필요하듯이 말이다. 한 두개의 라이브러리라면 직접 zip 파일을 다운받아 추가해주는 것이 어렵지 않겠지만 규모가 큰 프로젝트에서 수십, 수백개의 라이브러리를 사용한다면 언제 다 다운받고 추가해주고 있을까?

이를 도와주는 것이 maven이다. maven은 pom.xml 이라는 문서를 작성함으로써 사용할 수 있으며 이 문서에 dependency 라는 이름으로 라이브러리들 목록을 단지 "작성" 해주고 빌드하면 자동으로 네트워크를 통해 다운받아진다. 심지어 다운 받는 라이브러리가 또 다른 외부 라이브러리를 필요로 한다면 그것도 같이! 또, profile 기능을 통해 서로 다른 환경에 따라 적합한 설정을 관리할 수 있다.

Gradle

gradle은 Ant, maven 등 빌드 툴의 장점을 모은 것이다. XML이 아닌 groovy 문법을 사용하며, maven보다 훨씬 짧고 정적인 빌드만 가능한 maven과 달리 동적 빌드도 가능하다. 둘 사이의 차이점은 성능에서 아주 크게 보인다.

(출처- https://gradle.org/maven-vs-gradle/)