현재 공부중인 책과 강의에서는
gradle을 선택하여 프로젝트를 생성했습니다.
그런데,
회원가입 구현을 하면서 찾다 보니
gradle 대신 maven을 사용하는 프로젝트를
종종 보았고,
어떤 차이가 있는지 궁금해서
조사를 해보았습니다.
참고로
Maven과 Gradle은 빌드 관리 도구입니다.
빌드
: 빌드란 소스코드 파일들을 컴퓨터에서 실행이 가능한 소프트웨어로
변환하는 일련의 과정을 의미합니다.
따라서 컴파일, 테스팅, 배포 등이 빌드 과정의 집합에 속합니다.
Maven과 Gradle 같은 빌드 관리 도구를 왜 사용해야 할까요?
빌드 관리 도구가 어떤 역할을 수행할까요?
빌드 관리 도구
: 빌드 자동화를 수행해 실행가능한 프로그램으로 바꿔주는 도구입니다.
빌드 관리 도구를 쓰면 뭐가 좋은건데?라는 의문을 가지게 되었습니다.
프로젝트를 진행하며 개발을 할 때,
직접 코드를 작성하기도 하지만, 많은 라이브러리들을 활용합니다.
빌드 관리 도구가 없다면
직접 필요한 라이브러리들을 모두 다운받아야합니다.
다운 받는 과정, 라이브러리 버전 관리 등
이 모든 것을 직접 해야하는 귀찮은 일이 발생할 것입니다.
maven이나 gradle 같은 빌드 관리 도구가 위 문제를 해결해줍니다.
라이브러리들을 자동으로 다운로드 해주고 이를 간편하게 관리해줍니다.
결론적으로
빌드 관리 도구를 사용하는 이유는
우리가 해야하는 일
즉, 라이브러리 관리 및 다운로드와 같은 일을
자동으로 해주기 때문입니다.
1. Maven
: pom.xml을 이용한 정형화된 빌드 시스템으로
다양한 라이브러리를 관리하며
네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해줍니다.
2. Gradle
: Ant와 Maven의 장점들을 모아 개발해
Groovy를 이용한 빌드 자동화 시스템입니다.
라이브러리 관리, 프로젝트 관리, 단위 테스트 시 의존성 관리까지 해줍니다.
3. Maven vs Gradle
: 결론만 말하자면
maven보단 gradle의 성능이 훨씬 좋습니다.
gradle보다 maven이 좋은 점
(1) Build라는 동적인 요소를 xml로 정의하기엔 어려운 부분이 많습니다.
-> xml에 정의하게 되면, 설정 내용이 길어지고 가독성이 떨어집니다.
gradle을 사용하면 간결하게 정의가 가능해집니다.
(2) 프로젝트를 설정주입 방식으로 정의합니다.
-> maven의 상속 구조보다 재사용에 용이합니다.
https://hesh1232.tistory.com/156
'여니의 프로그래밍 study > Spring & Spring Boot' 카테고리의 다른 글
[스프링 부트] 패키지명 짓기 & 패키지 가져오기 (0) | 2022.03.20 |
---|---|
[인텔리제이] 프로젝트 깃허브 저장소에 올리기 (0) | 2022.03.20 |
[스프링부트] 프로젝트 생성하기 (0) | 2022.03.03 |
[스프링부트] 싱글톤 컨테이너 (0) | 2022.01.16 |
[스프링부트] 스프링 컨테이너와 스프링 빈 (1) | 2022.01.16 |