1. 빌드 관리 도구
- 빌드 관리 도구란?
프로젝트 내에 필요한 각종 xml, properties, jar파일과 java 코드들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주도록 빌드하는 도구 => 즉, 빌드 자동화 도구 이다.
프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라 할 수 있다.
APP개발 시 필요한 외부 라이브러리들을 번거롭게 다운로드 할 필요없이, 빌드도구 설정파일에 필요한 라이브러리 종류와 버전, 종속성 정보를 명시해 자동으로 다운로드 및 관리해주는 도구이다.
2. Maven
- Maven은 Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어짐
- 빌드 중인 프로젝트, 빌드 순서, 다양한, 외부 라이브러리 종속성 관계를 pom.xml파일에 명시
- Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한 다음, 로컬시스템의 캐시에 모두 저장
3. Gradle
- Apacahe Maven과 Apache Ant에서 볼 수 있는 개념들을 사용하는 대안으로써 나온 프젝트 빌드 관리 툴(오픈소스)
- Groovy 언어를 사용한 Domain-specific-language를 사용, 스크립트 기반의 build.gradle파일로 관리 (xml파일을 설정파일로 사용하는 Maven보다 코드가 훨씬 간결함)
- 큰 규모로 예상되는 multi-project 빌드를 도울 수 있도록 디자인됨
- Gradle은 업데이트가 이미 반영된 빌드의 부분은 더이상 재실행 되지 않아 빌드 시간이 훨씬 단축됨
4. Maven과 Gradle의 차이
Maven은 라이브러리를 추가 변경할때 버전을 맞춰줘야 하고 XML의 특징인 구조화는 장점이지만 문서의 양 자체가 비대해지는 단점이 있다.
이에 대안으로 Gradle이 각광받고 있는데 JVM기반 빌드 도구인 Gradle은 Maven과 호환되며 설정이 간편하고 프로젝트별로 유연하게 설정할 수 있다.
Maven과 가장 큰 차이점으로 빌드 시 중복으로 컴파일하지 않아 빌드 시간이 빠르다. => 증분컴파일
Maven은 버전별로만 종속성을 재정의 할 수 있다. 하지만 Gradle은 한번 선언하면 프로젝트 전체에서 원치않는 종속성을 처리할 수 있는 종속성 선택을 할 수 있다.
'ETC > Spring' 카테고리의 다른 글
[Spring] Spring 기본개념 (AOP, Spring boot) (0) | 2022.05.26 |
---|---|
[Spring] Spring 기본 개념 (IoC, DI) (1) | 2022.05.26 |