Maven과 Gradle은 빌드 툴이다.
빌드*?
우리가 작성한 소스코드, 프로젝트에 사용되는 자원 등을 JVM이나 WAS**(ex, tomcat)가 인식할 수 있는 구조로 패키징 하는 과정 혹은 그 결과물.
* 빌드는 소스 코드 컴파일, 테스트 코드에 대한 컴파일 후 실행, 테스트에 대한 리포트, 추가 설정 작업 진행 후 패키징을 수행, 결과물을 만들어낸다.
** WAS? Web Application Server, 웹에서 동적 컨텐츠를 제공하기 위해 사용되는 서버
빌드 툴?
소스코드 빌드 과정을 자동으로 처리해주는 프로그램, 외부 소스 코드를 자동으로 추가 및 관리.
크지 않은 프로젝트의 경우 라이브러리를 관리하는데 어려움이 없지만, 스프링 프레임워크를 사용해 웹 개발을 할 때만 해도 많은 라이브러리, 그리고 의존성에 따른 라이브러리 등 관리하는데 어려움이 있다. Maven이나 Gradle 같은 빌드 툴들은 간편하게 라이브러리와 의존관계를 관리할 수 있게 한다.
Maven?
기존의 Ant 빌드 툴의 스크립트 작성이 많다, 의존성 관리가 안된다는 단점을 보완하여 만들어진 빌드 툴이다.
pom.xml (Project Object Model)을 통해 관리한다.
특정 경우 xml이 복잡해지고 xml 자체의 한계가 존재하는 단점이 있다.
Gradle?
Ant와 Maven의 장점을 모아 만들어졌다. build.gradle을 통해 관리한다.
설정을 위해 groovy 언어 사용한다. (JVM 언어)
Gradle 공식문서에서는 Maven과의 비교를 보여준다.
유연성, 퍼포먼스, 사용자 경험, 의존성 관리 등에서 앞선다고 한다.
'Java' 카테고리의 다른 글
[JAVA] DB와 관련된 (순수 JDBC, JDBC 템플릿, JPA) (0) | 2021.04.06 |
---|---|
[JAVA] 접근 제어자 (0) | 2021.04.01 |
Lambda (0) | 2021.03.30 |
DAO, DTO (0) | 2021.03.29 |
JSP, Servlet (0) | 2021.03.27 |