Maven 과 Gradle 의 차이?

Asha·2022년 5월 19일
0

[개발자 지식]

목록 보기
1/4

안녕하세요 비전공자 국비 학원 출신의 백엔드 개발자를 취업 준비하고 있는 아샤입니다 !
취업준비를 하면서 cs 지식과 제가 안 써본 툴과 스킬을 중점으로 벨로그를 작성하려고 합니다.

우선 첫번째로는 Maven과 Gradle의 차이입니다.

🐟Maven vs Gradle

제가 다니는 국비학원에서는 Spring Tool Suite 3 을 사용하여 프로젝트를 진행하였습니다.
하지만 Gradle의 존재도 알게되어 두 개의 차이점이 뭘까? 궁금하여 쓰는 순전히 제 중심적인 글입니다..ㅎㅎ
(비하인드썰... 한 블로그의 포스팅 글을 열심히 공부하려고 따라치다...에러가 떠 이전 글을 보니 gradle 빌드 사용한 포스팅이였다....나에게 라이브러리설정 = 곧 maven,,,반성해야겠다^^)

둘의 차이점을 알아봅시다!

🔑Maven과 Gradle은 둘다 빌드 관리 도구이다!

우리가 프로젝트에서 작성한 java코드와 프로젝트 내에 필요한 각종 xml, properties, jar파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정을 !빌드 자동화 도구! 라고 합니다.
프로젝트의 생성부터 배포까지 해주기 때문에 라이프사이클을 담당하는 프로그램이라고도 할 수 있습니다.

🔑Maven이란 ?

프로젝트를 진행하다 보면 많은 라이브러리를 활용해서 개발을 하게 됩니다. 이 때 Maven은 이러한 문제를 해결해 줄 수 있는 도구입니다. 라이브러리가 작동하는데 필요한 연관된 라이브러리까지 관리하여 자동으로 다운 받아줍니다!

많은 편리함과 이점이 있어 널리 사용되고 있지만 Gradle이 새롭게 나와 사용되고 있습니다!

이때 라이브러리를 관리 해주는 역할을 하는 것이 바로 POM.xml 입니다.
P(roject) O(bject) M(odel)의 정보를 담고 있는 파일입니다.
(이 pom설정이 아직 개발 초보인 나에게는 너무 복잡한 일이다..)

→ 자바 전용 프로젝트 라이프사이클 관리 목적 빌드 도구입니다. Ant의 불편함을 해결하고자 등장했습니다!
→ 빌드 설정 : 소스, 리소스, 라이프사이클별 실행한 플로그인 등 빌드와 관련된 설정
→ 빌드 환경 : 사용자 환경 별로 달라질 수 있는 프로파일 정보
→ pom 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등

🔑Gradle이란 ?

→ 빌드, 프로젝트 구성/관리, 테스트, 배포 도구
→ 안드로이드 앱의 공식 빌드 시스템
→ 빌드 속도가 Maven에 비해 빠름
(Gradle은 업에디트가 이미 반영된 빌드의 부분은 재실행되지 않기 때문이다!)
→ Java, C/C++ Python 등을 지원
→ Groovy를 이용한 빌드 자동화 시스템이다.

Maven에서는 xml로 라이브러리를 정의하고 활용하나, Gradle은 빌드 스크립트를 통하여 항목을 설정할 수 있습니다. 게다가 스크립트 언어이기 때문에 변수선언 조건문 등의 로직이 구현가능합니다 !

Gradle이 Maven에 비해 속도도 빠르고 가독성도 좋은데다 Groovy 기반이기 때문에 동적인 빌드도 구현이 가능하다고 해 최근에는 Gradle로 넘어오는 추세라고 합니다 !

저도 이제 바로 Gradle을 이용해서 프로젝트를 만들어보고자 합니다!!!
모두들 화이팅!👍

profile
열심히 살 수 있을 때 열심히 살자 !

0개의 댓글