● 메이븐(Maven)이란?
- 아파치 메이븐은 자바용 프로젝트 관리도구이다.
- 아파치 Ant의 대안으로 만들어졌다.
- 아파치 라이센스로 배포되는 오픈 소스 소프트웨어이다.
프로젝트를 진행하면서 사용하는 수 많은 라이브러리를 관리해주는 도구이다.
여기서 메이븐의 특징은 라이이브러리들과 연관댄 라이브러리들까지 거미줄처럼 모두 연동되어 관리가 된다.
즉, 메이븐은 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기 때문에 사용이 편리하다.
POM - Project Object Model
Maven의 기능을 이요하기 위헤 POM이 사용된다.
pom.xml에서 주요하게 다루는 기능들은 다음과 같다.
- 프로젝트 정보 : 프로젝트의 이름, 라이센스 등
- 빌드 설정 : 소스, 리소스, 라이프사이클별 실행한 플러그인 등 빌드와 관련된 설정
- pom 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등
● 그래들(Gradle)이란?
- 빌드, 프로젝트 구성/관리, 테스트, 배포도구
- 안드로이드 앱의 공식 빌드 시스템
- 빌드 속도가 Maven에 비해 엄청 빠르다.
- JAVA, C/C++M Python 등을 지원
- 빌드 툴인 Ant Builder와 Groovy 스크립트 기반으로 만들어져 기존 Ant의 역할과 배포 스크립트의 기능을 모두 사용 가능
Groovy?
Groovy는 JVM에서 실행되는 스크립트 언어다. JVM에서 동작하지만, Java와 달리 소스코드를 컴파일 할 필요는 없다.
Groovy는 스크립트 언어고, 소스 코드를 그대로 실행한다.
또한 Java와 호횐되고, Java 클래스 파일 그대로 Groovy 클래스로 사용할 수 있다.
Java 문법과 유사하여 빌드 처리를 관리할 수 있는면에서 Gradle은 Java 개발자가 사용하기에 최고의 빌드 관리 툴 인듯하다.
● 메이븐(Maven) vs 그래들(Gradle)
- 스크립트 길이와 가독성 면에서 gradle이 우세하다.
- 빌드와 테스트 실행 결과 gradle이 더 빠르다.(gradle은 캐시를 사용하기 때문에 테스트 반복시 차이가 더 커진다.)
- 의존성이 늘어날 수록 성능과 스크립트 품질이 차이가 심해질 것이다.
- 메이븐의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용할려면 상속 받아야 하지만, 그래들은 설정 주입 방식을 사용하기에 멀티 프로젝트에 유리하다.
- 과거에는 메이븐을 많이 사용했지만 최근엔 그래들로 넘어 오는 추세라고 한다.
메이븐(Maven)과 그래들(Gradle)의 개념 및 비교 — 슬기로운 개발생활 (tistory.com)
메이븐(Maven)과 그래들(Gradle)의 개념 및 비교
스프링과 스프링부트를 공부 하려던 중 maven과 gradle을 알게되었습니다. maven과 gradle이 빌드관리도구인 것은 알고있지만 자세한 개념은 모르기에 maven과 gradle 각각의 개념과 정확한 차이점을 알
dev-coco.tistory.com
'Programming > Spring Boot' 카테고리의 다른 글
JAR와 WAR이 뭐지? (0) | 2022.10.29 |
---|
댓글