IT/IT 이야기

메이븐(Maeven)과 그래들(Gradle) 장단점 비교

오달달씨 2022. 9. 27. 14:56
728x90
반응형

스프링 프레임워크나 스프링 부트를 쓰다보면 메이븐 프로젝트, 그래들 프로젝트를 보곤한다.

메이븐과 그래들은 프로젝트 빌드하는 도구인데, 각각 어떤 특징이 있으며 장단점이 무엇인지 파악해보자


메이븐(Maeven)은

  • 자바 전용 프로젝트 관리 도구이다.
  • 아파치 Ant의 대안으로 만들어졌다. (연식있는 개발자들은 종종 아파치 Ant를 통해 프로젝트를 빌드한다.)
  • 아파치 라이센스로 배포되는 오픈 소스 소프트웨어다.
  • pom.xml을 이용한 정형화된 빌드 시스템이다. (필요한 라이브러리를 정의해 놓으면 알아서 네트워크를 통해 자동으로 다운받는다.)

메이븐은 라이브러리들과 연관된 라이브러리들까지 거미줄처럼 모두 연동해 관리가 된다.

즉, 메이븐은 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기 때문에 사용이 편하다.

 

POM - Project Object Model : 

  • 메비은의 기능을 이용하기 위해 POM이 사용된다. pom.xml에서 주요하게 다루는 기능은 다음과 같다.
  • 프로젝트 정보 : 프로젝트의 이름, 라이센스 등
  • 빌드 설정 : 소스, 리소스, 라이프사이클별 실행한 플로그인 등 빌드와 관련된 설정
  • 빌드 환경 : 사용자 환경 별로 달라질 수 있는 프로파일 정도

그래들(Gradle)은

  • 빌드, 프로젝트 구성/관리, 테스트, 배포 도구
  • 안드로이드 앱의 공식 빌드 시스템
  • 빌드 속도가 Maven에 비해 10 ~ 100배 수준으로 빠름
  • build.gradle을 이용한 정형화된 빌드 시스템
  • 빌드 도구인 Ant Builder와 Broovy 스크립트 기반으로 만들어져 기존 Ant의 역할과 배포 스크립트의 기능을 모두 사용 가능

메이븐의 경우 XML로 라이브러리를 정의하고 활용하도록 설정하였으나, 그래들의 경우 빌드 스크립트를 통하여 사용할 어플리케이션 버전, 라이브러리 등의 항목을 설정할 수 있다.

Groovy 스크립트 언어로 구성되어 있기 때문에 XML과 다르게 변수 선언, if-else, for 등의 로직 구현이 가능하며 간결한 구성도 가능하다.


메이븐과 그래들

  • pom.xml과 build.gradle 비교 
  • 스크립트 길이와 가독성이 build.gradle이 우세하다.
  • 빌드와 테스트 실행 결과가 build.gradle이 더 빠르다
  • 의존성이 늘어날 수록 성능과 스크립트 품질의 차이는 build.gradle이 우세하다.

메이븐은 전반적으로 빌드의 속도나, 가독성 및 빌드 스크립트 품질이 그래들보다 아쉽다.

다만, 메이븐은 정적인 형태의 XML을 사용하고, 그래들은 동적인 빌드를 적용한다는 차이점이 있다.

또한 메이븐은 오랜 시간 스프링 프로젝트와 함께하여 친근한 빌드툴이며, JAVA에서 많이 쓰는 IDE인 이클립스에서도 간단하게 사용이 가능하다.

다만, 최근 추세는 메이븐에서 그래들로 넘어가는 것이 개발자들의 방향이라고 한다.

728x90
반응형