[백엔드 첫 걸음] Gradle vs Maven

khyojun·2022년 6월 28일
0

Spring 시작

목록 보기
2/15


오늘은 스프링 강의를 들으며 공부한 것에 대해서 정리해보려고 한다.

gradle vs maven?

GradleMaven 두 가지는 빌드 관리 도구이다. 각각의 특징이 있고 요즘 추세로는 Maven보다는 Gradle을 많이 사용한다고 한다.

🔍 빌드 관리 도구란?

프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이자 빠른 기간 동안 계속해서 늘어나는 라이브러리 추가 프로젝트를 진행하고, 라이브러리의 버전 동기화의 어려움을 해소하고자 등장을 한 것이다.

각각 어떤 특징이 있는지 하나씩 알아보자.

Maven?

Apache Maven은 소프트웨어 프로젝트 관리 및 이해 도구입니다.

장점

  • 컴파일과 빌드를 동시에 수행 가능
  • 서버의 Deploy 자원을 관리할 수 있는 환경을 제공
  • pom.xml 파일을 통해 관리하여 개발, 유지보수 측면에서 오픈소스 라이브러리, 프로젝트 등 관리가 용이하다.
  • IDE에 종속된 부분들을 제거 가능
  • Maven Profile 기능을 통해 배포 설정 파일을 관리하고 배포 파일을 생성할 수 있다.

단점

  1. Maven에서 기본적으로 지원하지 않는 빌드 과정을 추가해야 하는 경우 상당한 고생이 따른다.
  2. 특정 플러그인이 설정이 약간만 달라도 해당 설정을 분리해서 중복 기술할 때가 발생한다. 불필요하게 설정이 길어지고 중복, 가독성 저하가 발생하여 유지보수성을 떨어뜨린다.

위의 2가지의 단점을 해결하기 위해서 요즘에는 maven -> gradle 로 넘어가는 추세라고 한다.

Gradle?

Gradle은 Groovy를 기반으로 한 빌드 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.

장점

  • Maven 과 Ant의 장점을 조합하여 만든 빌드 도구이다.
  • Build.gradle을 이용한 정형화된 빌드 시스템이다.
  • 멀티 프로젝트에 용이하다.

요런 장점들이 많아 최근 Maven에서 Gradle로 넘어가는 추세라고 한다.

다음 수치를 본 바와 같이 생각보다 성능면에 있어서 차이를 보이는 면이 있다.

결론

강의에서도 들은 바와 같이 legacy 프로젝트들에서는 Maven을 많이 사용했었다고 한다. 그렇지만 최근에 들어서는 대부분이 Gradle을 사용한다. 잘 참고하도록 해야겠다.

참고

https://gradle.org
https://madplay.github.io/post/what-is-gradle
https://maven.apache.org/
http://egloos.zum.com/kwon37xi/v/4747016

profile
코드를 씹고 뜯고 맛보고 즐기는 것을 지향하는 개발자가 되고 싶습니다

0개의 댓글