IT/Spring

메이븐(Maven)이란 무엇일까? 그래들(Gradle)은 무엇인가? maven gradle 차이는?

스프링으로 프로젝트를 공부하려는 중 메이븐과 그래들이라는 단어를 처음 듣게 되었고

메이븐과 그래들에 대해서 들어보긴 했지만 자세한 개념은 잘 모르고

또한 이러한 생각을 가지시는 분들이 조금 더 계실 것 같아서 간단히 정리해 보려 합니다.


그래서 Maven이란? 

아파치 메이븐은 자바용 프로젝트 관리 도구이다. 

아파치 앤트의 대안으로 만들어졌다. 아파치 라이선스로 배포되는 오픈 소스 소프트웨어이다.

라고 일단 구글링 하면 나오는 것이죠?

한마디로 저희가 프로젝트를 진행하면서 사용할 수많은 라이브러리들을 관리해주는 도구입니다.

특징적인 점은 그 라이브러리들과 연관된 라이브러리들까지 거미줄처럼 다 연동이 되어서 관리가 된다는 점

즉 메이븐은 네트워크를 통해서 연관된 라이브러리 까지 같이 업데이트를 해주기 때문에

과거에 일일히 수동으로 다 업데이트 혹은 연결 시켜주던 것을 자동으로 해준다는 편리함이 있습니다


그래서 Gradle이란? 

Gradle은 Groovy를 이용한 빌드 자동화 시스템이다. 

Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. 

Java, C/C++, Python 등과 같은 여러 가지 언어를 지원한다. 

라고 구글링하면 나오는 툴인데요.

자세한 설명은 좀 설명을 잘해놓으신 블로거 분이 계셔서 출처 남기고 공유하겠습니다


왜 Gradle인가?

Java에서는 비교적 일찍부터 "빌드 도구"에 의한 프로젝트 관리가 보급되어 있었다. Aache Ant라는 빌드 도구가 등장한 것은 2000년이다. 그 후에 더욱 강력한 Apache Maven이 등장하고, 이것이 현시점에서도 "Java 빌드 도구의 사실상의 표준"이라고 할 수 있다.

 

이러한 툴에서 "이것이 거의 표준"이라고 정착하면, 그렇게 간단히 바뀌는 것은 아니지만 빌드 도구의 세계에서 그 예외적인 사건이 일어나고 있다. 이 Maven의 아성을 무너지고 있는 강력한 라이벌이 "Gradle "라는 소프트웨어이다.

Gradle은 Groovy라는 언어를 기반으로 만들어진 빌드 도구이다. "Groovy? Java 아냐?"라고 생각했을지도 모른다. 그것은 일부는 맞는 말이다.

Groovy는 Java 가상 머신에서 실행되는 스크립트 언어이다. Java와 마찬가지로 소스 코드를 작성하고 Java 가상 머신에서 동작하지만, Java와 달리 소스 코드를 컴파일을 할 필요는 없다. Groovy는 스크립트 언어이며, 소스 코드를 그대로 실행한다. 또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 문법도 Java에 아주 가까워, Java를 보다 사용하기 쉽게 한 것으로 느낄 수 있다. 어떤 사람들은 Groovy는 Java의 방언 중 하나라고 생각하는 사람도 있을 정도이다.

이 "간편하게 사용할 수 있는 Java"라고 할 수 있는 Groovy를 사용하여 빌드 처리를 작성하고, 실행하는 것이 Gradle이다.

기존에 이미 Maven을 이용하고 있는 사람이라면 느낄 수 있겠지만, Maven은 XML 기반의 빌드 처리를 작성한다. 간단한 내용이라면 상관 없지만, 복잡한 내용을 작성하게 되면 XML 기반 의한 묘사는 상당히 어려워 진다. Java 프로그래머인데, 빌드 관리만을 위해 다른 언어를 사용하지 않으면 안된다는 것은 어쩐지 납득할 수 없는 느낌도 든다.

Gradle라면, Java와 거의 비슷한 코드를 써서 빌드 처리를 관리 할 수 있다. 이런 면이 Java 프로그래머로 압도적으로 받아들이 기 쉬운지도 모른다.



출처: https://araikuma.tistory.com/460 [프로그램 개발 지식 공유]

 


그래서 결론적으로 Maven vs Gradle 이렇게 Maven과 Gradle 비교를 해보자면

현재로서는 분명히 maven의 점유율이 더 높고 더 익숙하신 분들이 많은 상황이지만

gradle 의 추격이 더 빨라지고 있어서 조만간 상황이 역전될 가능성이 더 높다고 하는 사람들이 많아지고 있으며

그래들이 조금더 빠른 성능과 간결한 설정의 매력을 보유하고 있어 인기도가 상승중이라고 합니다.

소규모의 프로젝트에서는 큰 차이가 없어서 익숙한 maven 을 사용해도 무방할지라도

규모가 커질수록 gradle 을 사용하는 것이 체감상 더욱 유리하다고 합니다.

저도 그래서 Spring boot 튜토리얼을 진행할때는 그레이들을 설치하여 연습해보려고 하니 또 포스팅 하겠습니다. 

아래는 간단 비교 포스팅 스크랩이니 참고하시길 바라며 이만


 

gradle 의 빌드 스크립트는 groovy 라는 언어로 작성해야 하므로 maven 의 xml 에 비하면 친숙하진 않지만 확장성이 뛰어나다.

maven 은 프로젝트가 커질수록 빌드 스크립트의 내용이 길어지고 가독성이 떨어지는 반면, gradle 은 훨씬 적은 양의 스크립트로 짧고 간결하게 작성할 수 있다.

maven 의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만 gradle 은 설정 주입 방식으로 이를 해결한다.

그래서 gradle 은 멀티 프로젝트에 매우 적합하며, 빌드 속도는 다양한 시나리오 상에서 10~100배 가량이 빠르다.

출처 : https://www.oops4u.com/2281