본문 바로가기
  • log.info(" Nice Developer ");
Study/Spring(Boot)

Maven과 Gradle에 대하여

by kwan97 2022. 11. 3.
Java언어 사용자라면 많이 접하는 용어인
Maven과 Gradle에 대해 알아보자


>>Maven과 Gradle에 대해 알아보기 전 알아야 할 사전 자식
*컴파일(Compile)
-컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 컴파일러라고 한다.

*빌드(Build)
-소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정을 뜻하는데 컴파일은 그중 하나의 과정으로 빌드의 일부분이라 할 수 있다.
-빌드의 기능은 전처리, 컴파일, 패키징, 테스팅, 배포가 있다.
-빌드를 하기 위해선 Build Tool이 필요한데 Maven, Gradle, Ant 등이 있다.

Maven이란?

  • Aphache Mavenjava용 프로젝트 관리 도구(Build Tool)이다.

 프로젝트 진행시 사용하는 수많은 라이브러리들을 관리해주는 도구로 라이브러리들과 연관된 라이브러리들까지 거미줄처럼 모두 연동이 돼서 관리가 된다.

즉, Maven은 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기 때문에 사용이 편리하다.

 

@pom.xml

-Maven의 기능을 이용하기 위해 pom이 사용된다.

-pom은 정보를 담고 있는 파일이라고 생각하면 편하다.

-pom.xml의 주요 기능들

  • 프로젝트 정보: 프로젝트의 이름 라이선스를 나타낸다.
  • 빌드 설정: 소스, 리소스, 라이프사이클 별 실행한 플로그인 등 빌드와 관련된 설정들 
  • 빌드 환경: 사용자의 환경 별로 달라질 수 있는 프로파일 정보 제공
  • pom의 연관 정보: 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등...

Gradle이란?

  • 빌드, 프로젝트 구성/관리, 테스트, 배포 도구
  • Android App의 공식 빌드 시스템
  • 빌드 속도가 Maven보다 압도적으로 빠름
  • JAVA, C/C++, Python 등을 지원

  기존 메이븐의 경우 XML로 라이브러리를 정의하고 활용했다면, Gradle의 경우 별도의 빌드 스크립트를 통하여 사용할 애플리케이션 버전, 라이브러리 등의 항목을 설정할 수 있다.

(필자의 개인적인 의견을 말해보자면 요즘 트렌드는 Gradle이지만 스타트업 갈 거 아니라면 Maven을 공부하는 게 나은 것 같다는 의견입니다...현실이 그래요...)

 

 

728x90

댓글