본문 바로가기
Back-end/Spring 개념

1. Maven과 Gradle이란?

by devraphy 2022. 1. 23.

1. Spring 프로젝트 만들기 

- 이전에는 하나부터 열까지 Spring 환경을 직접 설정했다.

- 하지만, 환경설정이 자동화되어 있는 Spring Boot를 사용하면서 프로젝트 또한 자동화를 거쳐 생성한다.

- 그 방법이 아래의 사이트를 사용하여 Spring 프로젝트를 만드는 것이다. 

 

https://start.spring.io/

a) Maven & Gradle

- 프로젝트 생성을 시작하면, 맨 처음에 Maven과 Gradle을 선택하게 된다. 이들은 무엇일까? 

- Maven과 Gradle 모두 자바 프로젝트에서 사용되는 빌드 자동화 및 관리 시스템이다. 

 

a-1) Maven의 특징 

- Maven은 XML을 기반으로 한 빌드 자동화 시스템이다.

- Maven은 사용하는 라이브러리와 해당 라이브러리와 연관된 모든 라이브러리를 자동으로 버전 관리를 해준다는 특징이 있다.

- 그러므로 이전처럼 수동으로 각 라이브러리를 업데이트 해야한다는 수고를 덜어준다.

 

a-2) Gradle의 특징

- Gradle 또한 프로젝트에 사용된 라이브러리와 연관된 라이브러리를 자동으로 관리해준다. 

- 그러나, Gradle은 Groovy라는 언어를 사용한다는 데에 특징이 있다.

- Groovy는 JVM에서 돌아가는 스크립트 언어인데, Java와는 다르게 소스코드를 컴파일 하지 않아도 된다.

- 컴파일 과정이 없으므로 실행 속도가 빠른 것은 덤이며, Groovy는 Java의 간소화 버전이라고 불릴 만큼 Java와 유사하다.

- 그러므로 Java와 거의 비슷한 코드를 사용하여 빌드 관리를 설정할 수 있다는 장점이 있다.

 

a-3) Maven vs Gradle

→ 빌드 스크립트와 사용 언어의 차이

- Maven의 경우 XML을 기반으로, 빌드시 생성되는 스크립트가 길고 가독성이 떨어진다.

- 반면, Gradel의 경우 Groovy를 사용하기에 더욱 간략하면서 Java와 비슷한 코드의 빌드 스크립트를 생성한다. 

- 그러므로 Gradle의 빌드 스크립트가 더 짧고 가독성이 좋으며, 빌드 관리를 위해 다른 언어를 사용해야 한다는 수고를 덜어준다.

- 즉, 프로젝트의 규모가 커질수록 빌드 스크립트의 길이도 늘어나기 때문에 이런 측면에서 Gradle이 주는 장점이 더 크게 작용한다

 

→ 설정 방식의 차이 

- Maven의 경우 특정 설정을 다른 모듈에서 사용하려면 상속을 받아온다.

- Gradle의 경우 상속을 받는 것이 아닌, 설정을 주입하는 방식으로 작동한다.

- 즉, 규모가 큰 멀티 프로젝트에는 Gradle이 적합하며 빌드 속도 또한 Maven보다 더 빠르다는 이점을 갖는다. 

 

b) 사용 트랜드

- 현재 대부분의 Legacy 시스템은 Maven을 기반으로 작성된 프로젝트이다.

- 하지만, 신규/유지보수 할 것 없이 Gradle의 이점을 사용하기 위해 Gradle로 넘어오는 상황이다.


참고자료

 

https://okky.tistory.com/179

 

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

스프링으로 프로젝트를 공부하려는 중 메이븐과 그래들이라는 단어를 처음 듣게 되었고 메이븐과 그래들에 대해서 들어보긴 했지만 자세한 개념은 잘 모르고 또한 이러한 생각을 가지시는 분

okky.tistory.com

 

'Back-end > Spring 개념' 카테고리의 다른 글

6. Spring Container의 다형성  (0) 2022.02.01
5. Spring Container  (0) 2022.01.31
4. Spring을 사용하는 이유  (1) 2022.01.27
3. SOLID 원칙  (0) 2022.01.26
2. 다형성(Polymorphism)과 객체지향 프로그래밍(OOP)  (0) 2022.01.24

댓글