Just Do It

[SpringBoot] maven VS gradle

by 핫도구
반응형

이전에는 maven으로 프로젝트를 진행했었지만 이번에는 gradle로 진행해보려고 한다. 그러면 maven에서 프로젝트를 진행할 때는 pom.xml을 통해 dependency를 추가해줬지만 이번에는 어떻게 기본적으로 설정을 해야하는지 알아보자. 아 그리고 querydsl을 사용할 경우로 알아 볼 예정이다. 그리고 이전에는 eclipse를 사용했지만, 이번에는 intellij를 사용할 예정이다. 

먼저, maven과 gradle의 차이점에 대해 알아보면 아래와 같다.

  gradle maven
설정파일 build.gradle 혹은 build.gradle.kts pom.xml
의존성 선언 간결함 장황함
빌드 속도 빠름 보통
병렬처리 우수 제한적
동적 버전 유연한 지원 제한적

그리고 maven의 장단점은 아래와 같다.

장점 단점
표준화되고 예측 가능 XML 문법이 장황함
학습이 쉬움 커스터마이징 어려움
풍부한 문서와 예제 빌드 속도 느림
안정적이고 성숙함 유연성 부족

gradle의 장단점은 아래와 같다.

장점 단점
빠른 빌드 속도 학습 곡선이 가파름
간결한 문법 너무 높은 자유도
높은 유연성 디버깅이 어려울 수 있음

그러면 어떤 경우에 maven, gradle을 선택하면 좋은지 정리하면 아래와 같다.

gradle maven
복잡한 빌드 요구사항 단순한 프로젝트 구조
빌드 성능이 중요 팀원들이 Maven에 익숙
android 개발 표준화와 안정성 중요
멀티 모듈 프로젝트 레거시 시스템과 통합
최신 Spring Boot 프로젝트  

여기까지 maven과 gradle의 차이점에 대해 알아봤다. 그래서 현재 프로젝트를 막 시작단계에 있기 때문에 이렇데 저렇다 할 수 있는 것은 아니지만 확실한 것은 pom.xml보다 build.gradle.kts가 훨씬 간결하다는 것이다. 이전에 프로젝트를 maven으로 했을 당시 엄청 길었던 pom.xml과는 다르게 형식 자체가 훨씬 간결하면서도 보기 편하다는 장점이 있는 것이 확실하다. 원래는 SpringSecurity를 하려고 했지만 이전에 설정하는 것이 이것 저것 많이 있어서 거기까지 가지 못한 것도 있지만 기본적으로 설정해야 하는 파일들과 maven과 gradle의 차이점들을 확인하는 편이 훨씬 낫다고 생각했다.

반응형

블로그의 정보

AquaMan

핫도구

활동하기