지금까지 나는 항상 SpringBoot 프로젝트를 진행할때 Maven을 사용했기에(이유는 모름)
익숙한대로 빌드관리도구로 Maven만을 사용해왔지
Gradle등 다른 빌드툴에 대해 고려하지 않았었다.
그러나 NHN 아카데미 수료이후 10달만에 Spring Boot 프로젝트를 시작하기 앞서
Maven 이전에 존재하던 단순 빌드도구인 Ant(개미), Maven 이후에 출시된 Gradle(코끼리)
(그럼 코끼리가 최고아냐?)
각 빌드툴들에 대해 미리 궁금하거나 두루뭉실하게 알고있던 내용들을
여유가 있는 지금 확실하게 학습해두고 적절한 빌드툴을 이용할 것이다.
1. 빌드관리툴이란?
- 간단하게 소스코드의 빌드과정을 자동으로 처리해주고 외부 라이브러리(외부 소스코드)를 자동 추가 및 관리해주는 프로그램이다!
2. ANT
장점 - 유연성(어떠한 코딩규칙이나 프로젝트 구조를 강조 X)
단점 - 유연성(프로젝트를 빌드하는 명령을 직접 입력해야함, 또한 다른 사람이 작성한 빌드 코드를 이해하는데 시간 오래걸림)
3. Maven
장점 - 규칙성(정해진 규칙에 의존, xml을 기반으로 스크립트 작성)정해진 라이프사이클에 따라 작업을 수행), 전반적인 프로젝트 관리 기능(종속성 관리)
단점 - 유연성 떨어짐(엄격한 프로젝트 구조를 규정해둠), 정적인 데이터를 저장하는 xml을 기반하기때문에 동적인 정의가 어렵다.
4. Gradle
특징 - 안드로이드 공식 빌드 툴, 귀여움, Ant와 Maven의 단점을 보완 장점을 취합해서 출시됌
장점 - 간결한 정의(xml을 사용하지않고 build.gradle에 작성), 구성파일의 크기 줄어듬(특정 도메인에 맞는 언어 사용 -> groovy를 기반으로 하는 DSL사용), 빌드 속도 빠름(maven과 다르게 빌드시 설정공유를 위해 상속 x)
단점 - groovy라는 언어 새로 학습필요, 상당히 익숙하지않음(XML보다 코드 간결)
groovy?
- JVM상에서 실행되는 스크립트 언어
- JAVA와 유사한 문법 구조로 호환성이 좋다!
5. Maven vs Gradle?
단순 성능으로 보면 Gradle 압승인데
ex) Gradle은 일반적으로 한 줄의 코드로 라이브러리를 추가,
XML 기반인 메이븐은 한 개의 라이브러리당 최소 네 줄의 코드가 필요
프로젝트를 진행하기위해선 모든 팀원들이 Gradle과 groovy를 학습해야되는 부분이 걸려
우선은 Maven을 사용할 것 같다.
'궁금했던거' 카테고리의 다른 글
Call by value? Call by reference? (0) | 2023.08.24 |
---|---|
요청헤더(Response Header)에 넘어오는 p3p가 머임? (0) | 2023.07.26 |