Step-by-Step

[Spring] Gradle vs Maven 본문

언어/Java Spring

[Spring] Gradle vs Maven

희주(KHJ) 2022. 3. 28. 17:34

빌드(Build)

- 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물(.jar, .war)로 변환하는 과정 또는 그에 대한 결과물

- 소프트웨어 빌드에 있어 가장 중요한 단계들 중 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정

 

빌드 관리 도구 (Build Tool)

- 빌드를 자동화해서 도와주는 도구

- 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구

- 소스코드에서 어플리케이션 생성을 자동화하기 위한 프로그램

- 프로젝트 생성, 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해줌

- 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트를 관리함

( 빠른 기간 동안 계속해서 늘어나는 라이브러리 추가 및 프로젝트 진행시 라이브러리의 버전 동기화 어려움을 해소 )

※ Java의 대표적인 빌드 도구 : Ant, Maven, Gradle

 

Spring 프로젝트 빌드 도구

  • Maven
  • Gradle

 

Maven

- XML 기반의 대표적인 JAVA 프로젝트용 빌드 도구

- pom.xml 파일을 통해 정형화된 빌드 시스템으로 프로젝트를 관리함

 

※ pom.xml 역할

  • 프로젝트 정보 관리
  • 해당 프로젝트에서 사용하는 외부 라이브러리 관리
  • 해당 프로젝트의 빌드 관련 설정

 

Gradle

- Groovy 기반의 DSL을 활용한 빌드 관리 도구

- build.gradle 파일에 빌드에 필요한 설정 작성하여 프로젝트 관리

- 프로젝트 내부의 업데이트된 부분을 체크하여 빌드에 점진적으로 추가됨 

(→ 업데이트가 이미 반영된 빌드의 부분은 더이상 재실행 X // 빌드 시간 단축!)

※ DSL(Domain Specific Language) : 도메인 특화 언어 - 특정 도메인을 적용하는데 특화된 컴퓨터 언어

※ Incremental build : 반복적인 빌드 과정에서 변경된 소스코드에 의존성이 있는 대상들만 추려서 다시 빌드

 

※ Groovy 언어

- JVM에서 실행되는 스크립트 언어

- Java와 호환이 되며, 문법적으로 유사함

 

Maven vs Gradle

Maven Gradle
고정적이고 선형적 단계의 모델 기반 작업 의존성 그래프 기반
프로젝트 규모 클수록 빌드 시간 증가 Incremental build로 빌드 시간 단축
XML 기반의 빌드 설정 파일로 낮은 가독성 Groovy 기반의 빌드 설정 파일로 높은 가독성
의존성 자동 업데이트 Concurrent에 안전한 캐시 허용
모든 프로젝트에 적용가능한 일괄적인 사용법 Wrapper를 통해 Gradle이 설치되지 않은 환경에서도 빌드 가능
정해진 라이프 사이클이 있어 임의로 설정하기 복잡함 설정에 대한 구조적인 틀을 벗어나 코딩으로 정의 가능

 

점유율은 Maven이 먼저 나와서 더 높지만, Gradle이 많아지는 추세라고 한다!

애초에 Maven의 단점을 보완한 부분이 많이 보이기 때문에 Gradle로 프로젝트를 생성하였다!

 

[참조]

 

빌드도구란? (Maven, Gradle)

빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다. 기본적으로 빌드 자동화

wangmin.tistory.com

 

[Spring] 빌드 관리 도구 Maven과 Gradle 비교하기.

spring에서 초기에 프로젝트를 생성할 때, 빌드 도구를 Maven으로 선택할지, Gradle로 선택할지에 대한 결정이 필요하다. ​ 그냥 나는 항상 익숙한데로, 의심의 여지 없이 spring boot 프로젝트를 진행

jisooo.tistory.com

 

Build Tool - 빌드도구란(Build Tool)

빌드도구란? - 소스 코드를 컴파일, 테스트, 정적분석 등을 실히하여 실행 가능한 애플리케이션으로 자동 생성하는 프로그램 - 계속해서 늘어나는 라이브러리 자동 추가 및 관리 - 프로젝트를

galid1.tistory.com

 

빌드 관리 도구 (Maven vs Gradle)

빌드 관리 도구란 ? 프로젝트에서 작성한 Java 코드와 프로젝트 내에 필요한 각종 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정이 "빌드 자동화 도구"라고 할

wizdom.tistory.com

 

'언어 > Java Spring' 카테고리의 다른 글

[Spring] Spring Security  (0) 2022.05.02
[Java Spring] JPA에 대한 이해  (0) 2022.03.16
Comments