Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백트래킹
- finalize 수동 호출
- 빌드관리도구
- DDL DML DCL 차이
- @RequestMapping과 @GetMapping
- Python 1000000007
- 모듈로 연산
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- commit message convention
- 정규화 장단점
- 달리기 경주 파이썬
- 기사단원의 무기 제곱근
- OOP의 특징
- PCB
- MySQL LEFT()
- 프로그래머스 142086
- 빌드관리도구 차이
- 달리기 경주 파이썬 시간초과
- 프로세스
- 이코테2021
- build.gradle 설정 오류
- 웹 동작 과정
- Spring Security 5
- www.google.com 검색하면 일어나는 일
- java 동기화
- 기사단원의 무기 파이썬
- Spring Security 버전 문제
- RDBMS와 NoSQL 차이
- MySQL RIGHT()
- 알고리즘 1000000007 나누기
Archives
- Today
- Total
BUILD_SSO
[Spring] Maven vs Gradle 의 차이점과 특징 본문
Spring을 학습한 사람이라면 Maven과 Gradle을 한 번쯤은 들어봤을 것이다. 이 차이에 대해 단순히 가독성, 코드 유지 보수 정도로만 알고 있던 찰나에 실질적인 차이점이 무엇인지 숙지할 겸 글을 작성하게 되었다.
◼ 빌드 관리 도구(Build Tool)
Maven과 Gradle은 둘 다 빌드 관리 도구이다.
빌드 관리 도구란, 프로젝트에서 작성한 Java 코드와, 프로젝트 내의 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정을 관리하는 도구를 뜻한다.
- 개발에 필요한 다양한 외부 라이브러리들을 다운로드하거나 사용해야 할 때,
번거롭게 각 라이브러리들을 모두 다운로드할 필요 없이, 빌드 도구 설정 파일(Maven-pom.xml/Gradle-build.gradle)에 필요한 라이브러리 종류와 버전들, 종속성 정보를 포함하여 필요한 라이브러리들을 설정 파일을 통해 자동으로 다운로드해주고 이를 간편히 관리해 주는 도구이다. - 즉, 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라 할 수 있다.
◼ Maven
- 메이븐은 Java 전용 프로젝트 관리 도구이다.
- 아파치 Ant의 대안으로 만들어졌으며, 아파치 라이센스로 배포되는 오픈 소스 소프트웨어이다.
- 메이븐은 그 라이브러리들과 연관된 라이브러리들까지 거미줄처럼 모두 연동이 되서 관리된다.
➡ 즉, 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해준다. - pom.xml을 통해 라이브러리를 관리한다.
🔔 pom이란?
Project Object Model의 약자로
프로젝트 정보 - 프로젝트 이름, 라이센스
빌드 설정 - 소스, 리소스, 라이프 사이클별 실행한 plugin 등 빌드와 관련된 설정들
빌드 환경 - 사용자 환경 별로 달라질 수 있는 프로필 정보
pom 연관 정보 - 의존 프로젝트 (모듈), 상위 프로젝트, 하위 모듈
의 정보를 담고있다.
◼ Gradle
- 빌트 관리 도구인 Ant Builder와 Groovy 스크립트 기반으로 만들어져, 기존 Ant의 역할과 배포 스크립트의 기능을 모두 사용 가능한 Maven을 대체할 수 있는 프로젝트 구성, 관리, 빌드, 테스트, 배포 도구이다.
- 스프링부트와 안드로이드에서 사용 가능하며, 안드로이드의 공식 빌드 시스템이다.
- Java, Python, C/C++ 등을 지원한다.
- 빌드 속도가 메이븐에 비해 10 ~ 100 배 빠르다.
- 그래들은 프로젝트의 어느 부분이 업데이트되었는지 파악한다. 때문에 빌드에 점진적으로 추가가 가능하며 업데이트가 반영된 부분은 더 이상 재실행 되지 않는다
➡ 재실행 시간을 줄여 빌드 시간을 단축한다.
◼ Maven vs Gradle
- Gradle이 스크립트 작성이 더 짧고 간편하게 작성된다.
➡ 가독성 면에서 우세하다. - 빌드와 테스트 실행 결과가 Gradle이 더 빠르다.
➡ Gradle 같은 경우 캐시로 관리하기 때문에 테스트를 반복할수록 실행 결과 시간 차가 더욱 커진다.
- 멀티 프로젝트에서의 설정 관리
➡ 메이븐의 경우 상속을 통해 특정 설정을 다른 모듈에서 사용 가능하게 하지만,
➡ 그래들의 경우 설정 주입 방식을 제공한다.
이외에도, 그래들 공식 문서에서 Gradle과 Maven 을 비교하며 그래들의 강점으로 유연성, 퍼포먼스(속도라고 보면 된다), User Experience(코드 가독성), 의존성 관리를 작성해놓았다.
참고
https://gradle.org/maven-vs-gradle/
https://www.interviewbit.com/blog/gradle-vs-maven/
'Spring' 카테고리의 다른 글
[Spring] @RequestMapping과 @GetMapping의 차이 (1) | 2023.06.29 |
---|
Comments