스프링부트를 공부하면서, 프로젝트를 생성할 때 빌드 관리 도구를 선택하는 방법에는 Maven, Gradle 두 가지 방법이 있었고
이 Maven과 Gradle에는 어떤 차이가 있는지 궁금해져서 검색해보았다.
시간이 급하신 분들을 위해 한마디로 정리하자면
Gradle이 Maven의 단점을 보완해주고, 더 늦게 나오기도 했으며, 사용해본 사람들이 좋다고들 한다.
Gradle이 시기적으로 늦게 나온만큼 사용성, 성능 등 비교적 뛰어난 스펙을 가지고있다.
빌드 관리 도구
우리가 프로젝트에서 작성한 java 코드와 프로젝트 내에 필요한 각종 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정 == "빌드 자동화 도구" 라고 할 수 있다.
- 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라 할 수 있다.
- 각 라이브러리들을 번거롭게 모두 다운받을 필요없이, 빌드도구 설정파일에 필요한 라이브러리 종류와 버전들, 종속성 정보를 명시하여
필요한 라이브러리들을 설정파일을 통해 자동으로 다운로드 해주고 이를 간편히 관리해주는 도구이다.
- 예를 들어, "Spring Boot Data JPA Starter" 모듈을 사용하여 프로젝트를 개발하고 싶다면 메이븐레포지토리에서 해당 모듈을 검색하여 xml 설정파일에 추가하여 사용할 수 있다. (참고로 maven용 코드 이외에도 gradle용 코드도 탭에 있다.)
메이븐은 XML 스크립트를 기반으로 pom.xml 파일로 의존성을 관리하고
그레들은 Groovy 문법 기반으로 Build.gradle 에 스크립트를 작성하여 의존성을 관리하는데, 대규모 프로젝트에서 복잡해지는 경향이 있는 XML 기반 스크립트에 비해 관리가 편하다는 장점이 있어서 더 선호된다.
Maven으로 설정된 프로젝트는 Gradle로 마이그레이션 할 수 있다고 한다.
참고
'[SpringBoot]' 카테고리의 다른 글
@RequestMapping을 사용하는 이유 (0) | 2022.12.01 |
---|---|
Controller vs RestController 어노테이션 차이 (0) | 2022.12.01 |
DAO vs DTO vs Entity (0) | 2022.11.24 |
Controller와 Service (0) | 2022.11.24 |
Spring, SpringBoot 란? (0) | 2022.11.16 |