여니의 프로그래밍 study/Spring & Spring Boot

[스프링부트] Maven과 Gradle의 차이점

여니's 2022. 3. 20. 18:40

 

현재 공부중인 책과 강의에서는

gradle을 선택하여 프로젝트를 생성했습니다. 

 

그런데,

회원가입 구현을 하면서 찾다 보니

gradle 대신 maven을 사용하는 프로젝트를

종종 보았고,

 

어떤 차이가 있는지 궁금해서

조사를 해보았습니다.

 

참고로

Maven과 Gradle은 빌드 관리 도구입니다.

 

 

빌드

: 빌드란 소스코드 파일들을 컴퓨터에서 실행이 가능한 소프트웨어로 

변환하는 일련의 과정을 의미합니다.

따라서 컴파일, 테스팅, 배포 등이 빌드 과정의 집합에 속합니다.

 

 

Maven과 Gradle 같은 빌드 관리 도구를 왜 사용해야 할까요?

빌드 관리 도구가 어떤 역할을 수행할까요?

 

 

빌드 관리 도구

: 빌드 자동화를 수행해 실행가능한 프로그램으로 바꿔주는 도구입니다.

 

 

빌드 관리 도구를 쓰면 뭐가 좋은건데?라는 의문을 가지게 되었습니다.

프로젝트를 진행하며 개발을 할 때, 

직접 코드를 작성하기도 하지만, 많은 라이브러리들을 활용합니다.

 

빌드 관리 도구가 없다면

직접 필요한 라이브러리들을 모두 다운받아야합니다.

다운 받는 과정, 라이브러리 버전 관리 등

이 모든 것을 직접 해야하는 귀찮은 일이 발생할 것입니다.

 

maven이나 gradle 같은 빌드 관리 도구가 위 문제를 해결해줍니다.

라이브러리들을 자동으로 다운로드 해주고 이를 간편하게 관리해줍니다.

 

 

결론적으로

빌드 관리 도구를 사용하는 이유는

우리가 해야하는 일

즉, 라이브러리 관리 및 다운로드와 같은 일을

자동으로 해주기 때문입니다.

 


 

1. Maven

: pom.xml을 이용한 정형화된 빌드 시스템으로

다양한 라이브러리를 관리하며

네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해줍니다.

 

 

2. Gradle

: Ant와 Maven의 장점들을 모아 개발해

Groovy를 이용한 빌드 자동화 시스템입니다.

라이브러리 관리, 프로젝트 관리, 단위 테스트 시 의존성 관리까지 해줍니다.

 

 

3. Maven vs Gradle

: 결론만 말하자면

maven보단 gradle의 성능이 훨씬 좋습니다.

 

gradle보다 maven이 좋은 점

 

(1) Build라는 동적인 요소를 xml로 정의하기엔 어려운 부분이 많습니다.

-> xml에 정의하게 되면, 설정 내용이 길어지고 가독성이 떨어집니다. 

gradle을 사용하면 간결하게 정의가 가능해집니다.

 

(2) 프로젝트를 설정주입 방식으로 정의합니다.

-> maven의 상속 구조보다 재사용에 용이합니다.

 

 

 

 

 

 


https://hesh1232.tistory.com/156

 

[Spring을 다시 돌아보자] Maven과 Gradle 차이 및 프로젝트 설정

1. Maven과 Gradle 우리는 스프링 프로젝트를 생성할 때 Maven을 선택할 것인지 Gradle을 선택할 것인지 선택할 것입니다. 이전엔 책에서 하란대로 따라만 했지 둘이 어떤 차이가 있는지 잘 모르고 개발

hesh1232.tistory.com