Gradle이 Maven 대신에 많이 사용되는 이유는 뭘까?Framework/Spring2023. 12. 21. 17:56
Table of Contents
728x90
1. 왜 궁금했을까?
김영한 강사님의 강의도 그렇고 제로베이스 제공 강의, 패스트 캠퍼스 코틀린 강의도 모두 gradle로 빌드를 해왔다.
이런저런 이유로 gradle을 선호한다고 했지만 왜 굳이 유데미 강의는 maven으로 진행을 하는지 궁금했다. 그렇다.
2. 그래서?
일단 Gradle이 Maven 대신 많이 사용되는 이유는 이러하다고 한다.
유연성 : Gradle은 Groovy나 Kotlin 같은 도메인 전용 언어를 사용하여 프로젝트를 구성합니다. 이는 프로젝트 구성을 상당히 유연하게 만들어주며, 복잡한 구성을 처리하기에도 적합합니다. 반면에 Maven은 XML 기반의 설정을 사용하는데, 이는 상대적으로 덜 유연하고 길어질 수 있습니다.
성능 : Gradle은 증분 빌드 기능을 제공합니다. 즉, 변경된 부분만 빌드를 수행하므로 빌드 시간을 크게 단축시킬 수 있습니다. 이러한 기능은 큰 프로젝트에서 특히 유용합니다.
다양한 프로젝트 지원 : Gradle은 자바뿐만 아니라 Groovy, Kotlin, Scala 등 다양한 언어로 작성된 프로젝트를 지원합니다. 또한 Android 개발을 위한 공식 빌드 도구로도 사용되고 있습니다.
통합 도구 지원 : Gradle은 다양한 IDE와 CI/CD 도구와 잘 통합됩니다. IntelliJ IDEA, Eclipse, Jenkins, Travis CI 등과 같은 도구와의 통합을 지원합니다.
스크립트 기반의 설정 : Gradle은 스크립트 기반의 설정을 사용합니다. 이는 프로젝트의 빌드 설정을 프로그래밍 코드처럼 작성할 수 있게 해주며, 이로 인해 더욱 복잡한 빌드 요구사항을 쉽게 처리할 수 있습니다.
그러함에도 왜 외국인 선생님은 maven으로 하셨을까?
간편함 : Maven은 프로젝트 관리에 필요한 기능들을 간편하게 제공합니다. 새로운 프로젝트를 시작하거나 기존 프로젝트를 이해하는 데 있어서 Maven은 간단하고 명확한 구조를 제공하므로 쉽게 접근할 수 있습니다.
광범위한 플러그인 생태계 : Maven의 플러그인 생태계는 매우 광범위합니다. 이는 빌드 프로세스를 커스터마이징하거나 확장하는 데 큰 이점을 제공합니다.
컨벤션 오버 컨피규레이션 : Maven은 '컨벤션 오버 컨피규레이션' 원칙을 따릅니다. 이는 프로젝트의 구조와 설정에 대한 명확한 기준을 제공하므로 개발자가 빠르게 프로젝트를 시작하고 관리할 수 있습니다.
의존성 관리 : Maven은 프로젝트의 라이브러리 의존성을 자동으로 관리해줍니다. 이는 복잡한 프로젝트에서 여러 라이브러리를 쉽게 관리할 수 있도록 도와줍니다.
안정성과 성숙도 : Maven은 오랜 시간 동안 개발 커뮤니티에 사용되어 왔으며, 그로 인해 안정적이고 성숙한 도구로 인정받고 있습니다. 이는 기업 환경에서 중요한 요소가 될 수 있습니다.
무조건 gradle이라기보다는 보편적으로 많이 사용이 되는 것이고 결국은 자료구조때와 마찬가지로 프로젝트의 특성, 개발팀의 선호도, 필요한 기능 등을 고려해서 Maven으로 빌드를 할 것인지 Gradle로 할 것인지를 결정짓는 것이라고 한다.
3. 그렇구나
스프링을 배우고부터는 쭉 gradle로만 진행을 해왔는데 갑작스레 maven으로 진행하고 처음이라 그런지 손도 많이가고 한글로 된 레퍼런스도 별로 없어서 환불할까... 생각도 많이 했다.
728x90
'Framework > Spring' 카테고리의 다른 글
ERD 그게 뭔데 날 힘들게 해 (1) | 2024.01.13 |
---|---|
스프링 프레임워크와 스프링 부트 (0) | 2024.01.03 |
VScode와 intelliJ 사용할 때 로그 처리 방식이 왜 다를까? (0) | 2023.12.30 |
상속과 인터페이스는 언제 써야될까...? (0) | 2023.12.08 |
트랜잭션(Transaction)이 뭐지? (0) | 2023.12.07 |
@Marty_ :: 소리 지르고 싶다.
쓰임 있는 사람이 되기 위해 노력 중입니다.