Gradle vs Maven

10000DOO·2022년 12월 17일
1
post-thumbnail

Gradle VS Maven


📌Gradle 정의

Gradle은 그루비를 이용한 빌드 자동화 시스템이다. Groovy와 유사한 도메인 언어를 채용하였으며,현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. Java, C/C++, 파이썬 등과 같은 여러 가지 언어를 지원한다.

📌Maven 정의

아파치 메이븐은 자바 프로젝트들을 위한 빌드 자동화 도구이다. 메이븐은 C 샤프, 루비, 스칼라 등의 언어로 개발된 프로젝트들을 빌드하고 관리하기 위해 사용할 수도 있다. 메이븐 프로젝트는 아파치 소프트웨어 재단에 의해 호스팅되며 이 재단은 한때 자카르타 프로젝트의 일부였다.

📌빌드 자동화

빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다.
기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다.

1.종속성 다운로드
2.소스코드를 바이너리코드로 컴파일
3.바이너리 코드를 패키징
4.테스트 실행
5.프로덕션 시스템에 배포

사용 이유

대규모 프로젝트의 경우 무엇을 빌드 할지 의존성은 어떤 것이 있는지 전부 추적하기 쉽지 않기 때문이다.

Maven 특징

✏️ 아파치 Ant의 대안으로 만들어졌다.
✏️ 해당 라이브러리와 연관된 라이브러리들까지 모두 연동되어 관리 된다.
✏️ 네트워크를 통해 연관된 라이브러리들까지 같이 업데이트 된다.
✏️ pom.xml(Project Object Model) 파일을 사용한다.

Gradle 특징

✏️ 빌드 속도가 Maven에 비해 10~100배 가량 빠르다.
✏️ 빌트툴인 Ant Builder와 Groovy 스크립트 기반으로 만들어져 기존 Ant의 역할과 배포 스크립트의 기 능을 모두 사용 가능
✏️ Groovy 스크립트를 사용하여 Maven과 달리 변수 선언, 조건문, 반복문 등을 통해 간결하게 구현 가능하 다.
✏️ build.gradle 파일을 사용한다.


🟣결론

지금까지 스프링부트를 공부하면서 요즘에는 gradle을 많이 쓴다더라
gradle이 더 편하다더라 얘기만 듣고 maven과의 차이점에는 관심이 없었는데 이번에 졸업 프로젝트를 준비하면서 찾아보니 왜 gradle이 더 좋고 어떤 부분에서 빌드 자동화 도구가 발전해 왔는지 알 수 있었다.
처음 쓰는 글이라 부족한 부분이 많을 텐데 공부해가면서 부족한 부분을 보완해야겠다.

🚨잘못된 부분 있으면 댓글 남겨주세요 수정하겠습니다.🚨

📚참고 자료

Groovy는 Java 가상 머신에서 실행되는 스크립트 언어 입니다. Java 가상 머신에서 동작하지만,
Java와는 달리 소스 코드를 컴파일 할 필요는 없습니다.
Groovy는 스크립트 언어이고, 소스 코드를 그대로 실행합니다.
또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있습니다.
Java 문법과 유사하여 빌드 처리를 관리할 수 있는 면에서
Gradle은 Java 개발자가 사용하기에 최고의 빌드관리도구이지 않을까 싶습니다.

Ant는 자바 기반으로 플랫폼에 독립적으로 실행. - 운영체제에 구애받지 않고 프로젝트 진행가능.
복잡한 쉘 명령어 대신 xml기반의 기능 설정파일을 사용하기 때문에 작업 설정이 복잡하지 않다.
미리 정의된 Task를 사용하여 쉽고 빠르게 배치 작업을 설정할 수 있다.
새로운 Task의 추가를 통해 배치작업의 확장이 가능하다.

📚참고 사이트

https://wangmin.tistory.com/50
https://dev-coco.tistory.com/65
https://cheershennah.tistory.com/192

profile
iOS 개발자 지망생 https://github.com/10000DOO

0개의 댓글