본문 바로가기

Spring/Spring

메이븐(Maven)과 그레이들(gradle)

빌드 관리 도구?

- 프로젝트에서 쓰는 xml이나 jar 파일들이나 java 코드를 JVM나 WAS가 인식할 수 있게 패키징 해주는 빌드 과정을 관리주는 도구이다.

- 라이브러리 왕창 써야하는데 빌드 관리 도구가 없다? 일일이 jar파일 다운받아서 설정해줘야한다...
그거 일일이 안하고 그냥 작성하면 자동으로 다운받아서 연결시켜주는 기능이 있다.

- 프로젝트 생성, 빌드 설정, 배포 등의 작업을 위한 전용 프로그램이다.
( 빌드 : 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정 )

이 빌드 관리 도구의 대표적인 애들이 바로 Maven과 Gradle이다.

 

메이븐(Maven)

Maven은 빌드 관리 도구로 가장 많이 사용되고 있다.

메이븐(Maven)은 내가 사용하려고 등록한 라이브러리 뿐 아니라 해당 라이브러리가 작동할 때 필요한 다른 라이브러리도 네트워크를 통해 자동으로 다운받아준다는 특징을 가지고 있다.

스프링 프로젝트를 만들면 pom.xml이란 xml언어로 쓰인 파일이 하나 생성되는데 그게 바로 메이븐(Maven)과 연관 된 파일이다.

pom - Project Object Model : Project Object Model의 정보를 담고 있는 파일이다.
  여기서 주로 다루는 기능은
 - 프로젝트 정보 : 기본적인 프로젝트 정보. 프로젝트 이름, 버전 등
 - 빌드 설정 : 소스, 리소스 등 빌드와 관련 된 설정
 - 빌드 환경 : 개개인 사용자 환경에 맞춰 빌드 설정
 - POM 연관 정보 : 모듈, 상위 프로젝트, 하위 모듈 등

 

그레이들(Gradle) 

... 귀엽다 코끼리


그레이들(Gradle)은 빌드 배포 도구이다.
안드로이드 앱 만들 때 쓰는 안드로이드 스튜디오 공식 빌드시스템이고,
Java, c/ c++, Python 등을 지원한다고 한다.

Gradle은 Groovy라는 언어를 기반으로 만들어진 도구인데.. Groovy는 Java 가상 머신에서 실행되는 스크립트 언어이다.

 

* Maven, Gradle 등의 관리 도구가 없다? 그러면 jar파일 필요한 거 일일이 다운로드 받아서 넣어줘야 함

메이븐(Maven) vs 그레이들(Gradle)

메이븐의 경우 XML로 라이브러리를 정의하고 쓰도록 하고 있으나
그레이들의 경우는 별도의 빌드 스크립트를 통해 사용 할 라이브러리와 버전 등을 설정한다.

현재로써는 Maven의 점유율이 높고, 익숙한 사람들이 많지만 Gradle의 인기가 빠르게 올라가고 있다.

Maven이 Gradle보다 좋은 이유

1. 점유율 높음

2. 익숙함

3. 협업 하는데 Gradle을 써야한다? 팀원 모두가 Groovy라는 언어를 새로 익혀야 함

Gradle이 Maven보다 좋은 이유

1.  프로젝트가 커질수록 maven의 xml보다 gradle이 훨씬 가독성이 좋다.
 (스크립트도 짧고 간단하게 작성할 수 있음)

2. gradle이 멀티 프로젝트에 더 적합하다. ( Maven의 경우 특정 설정을 다른 모듈에서 사용하려면 상속해줘야함 )

3. 속도 훨씬 빠름. 최대 100배 빠르다고...;

 

 

결론 -> Maven을 기본으로 배워놓고, Gradle을 야금야금 배워서 나중에 잘 갈아타야겠다. 나는 초보개발자니까

반응형

'Spring > Spring' 카테고리의 다른 글

spring-boot View 환경 설정  (0) 2021.04.15
spring-boot 프로젝트 생성  (0) 2021.04.14
스프링과 싱글톤(Singleton)  (0) 2021.01.10
Gradle(그레이들) 설치하기  (0) 2021.01.10
Spring WebSocekt으로 채팅 기능 구현  (0) 2020.12.23