프로젝트 버전 관리 툴
프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 하게 된다. 이 때 사용되는 라이브러리들의 수가 수십개가 훌쩍 넘어버리는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 경우가 종종 발생하곤 한다. Maven은 이러한 문제를 해결해 줄수 있는 도구이다. Maven은 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운 받아준다.
비교
Maven같은경우는 스프링프로젝트에서 pom.xml이란 이름으로 쓰고,
Gradle은 스프링부트, 안드로이드에서 쓰는걸로 알고있다.
Maven
Maven은 프로젝트의 전체적인 라이프사이클을 관리하는 도구이며, 많은 편리함과 이점이 있어 널리 사용되고 있다. 기존에는 Ant가 많이 사용되었지만 Maven이 Ant를 넘어서 더 많은 개발자들이 사용하게 되었고 비교적 최근에는 Gradle이 새롭게 나와 사용되고 있다.
Gradle
Gradle이란 기본적으로 빌드 배포 도구(Build Tool)이다. 안드로이드 앱을 만들때 필요한 공식 빌드시스템이기도 하며 JAVA, C/C++, Python 등을 지원한다.
그래서 무엇을 사용하면 좋을까? with toy project
지금 시점에서 Gradle을 사용하지 않을 이유는 익숙함 뿐인 것 같다.
Gradle이 출시되었을 때는 Maven이 지원하는 Scope를 지원하지 않았고 성능면에서도 앞설것이 없었다.
Ant의 유연한 구조적 장점과 Maven의 편리한 의존성 관리 기능을 합쳐놓은 것만으로도 많은 인기를 얻었던 Gradle은 버전이 올라가며 성능이라는 장점까지 더해지면서 대세가 되었다.
장점 :
- Build라는 동적인 요소를 XML의 정의하기에 따른 어려움
- Groovy를 사용함으로써, 동적인 빌드 호출에 용이함. 즉 빌드시간이 훨씬 단축
- concurrent에 안전한 캐시 사용
참조 :
https://hyojun123.github.io/2019/04/18/gradleAndMaven/
https://100100e.tistory.com/249
'개발합시다. > BackEnd 공부' 카테고리의 다른 글
RDBMS vs NoSQL (간단 정리) (0) | 2021.09.03 |
---|---|
MVC 모델 MVP 모델 뭐가 다를까? (0) | 2021.09.03 |
Node.js vs Spring Boot (0) | 2021.09.02 |
Spring과 Spring Boot의 차이점 (0) | 2021.09.02 |
서버 사이드 렌더링 (SSR) & 클라이언트 사이드 렌더링 (CSR) (0) | 2021.09.01 |