Spring Boot 프로젝트를 생성할 때 프로젝트 관리 도구로 Maven 과 Gradle 을 선택할 수 있다.
Maven 프로젝트를 익숙하게 사용했는데 둘의 차이는 무엇일까? 하고 궁금해졌다.
Maven
프로젝트 객체 모델(POM, Project Object Model) 바탕으로한 프로젝트 관리 도구
POM: 프로젝트의 구조와 내용을 설명함, pom.xml 에 프로젝트 관리 및 빌드 환경 설정, 의존성 관리 등을 관리
의존성 자동 업데이트
저장소를 통한 라이브러리 일괄 관리 가능(default 로 $HOME/.m2/repository 에 저장됨)
Gradle
오픈소스 빌드 도구로 Maven 의 단점을 보완한 개선된 서비스 제공
Groovy 언어의 Domain Specific Langangue 로 설정정보를 구성하여 간결하게 관리
안드로이드 프로젝트 빌드관리도구로 사용함
결론
Gradle 은 Maven 보다 대부분의 시나리오에서 최소 두배 빠른 속도를 제공함
빌드 캐시를 사용하는 대규모 빌드의 경우에는 100배 빠르다고 함
어떻게 더 빠르게 빌드 할 수 있을까?
- Gradle은 테스크를 분석하여 변경된 파일만 처리함
- 테스크의 결과를 로컬에서 재사용함 (빌드 머신 사이에서 Remote로 캐시 공유가 가능하다고 함)
- 메모리에서 빌드정보를 오랫동안 유지함
구글 트랜드 지수에서도 한국과 전 세계 모두 Gradle 이 앞선다.
실제로 Maven 과 Gradle 로 프로젝트 빌드를 관리하면서 성능을 경험하는 것이 가장 좋을 것 같다.
참고
'IT' 카테고리의 다른 글
[정보보안] CVE (Common Vulnerabilities & Exposures) (0) | 2020.10.13 |
---|---|
[정보보안] Windows Server OS 사용자 계정관리 (0) | 2020.10.03 |
[Spring Boot] HikariCP (0) | 2020.09.30 |
[Tomcat] Tomcat 의 3대 구성요소 (0) | 2020.08.24 |
[설계] 실무에서 데이터 크롤링(Data Crawling) 프로그램 구조 및 설계 (0) | 2020.04.11 |