느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail
Published 2020. 5. 6. 06:51
그레이들 vs 메이븐 IT/Gradle

 

왜 메이븐 만으로도 충분하다고 생각하였는데, 그레이들을 채택하는 프로젝트들이 많아지는 것일까. 내가 학교를 졸업할 무렵에 핫하던 메이븐도 아래의 표를 보면 알다시피 하향길에 접어들고 그레이들이 대체 빌드툴로서 대두되고 있다.

 

 

일전에 읽었던 메이븐 서적에서도 나와 같은생각을 하면서 메이븐을 공부를 했다는 저자의 말이 나온다. "왜 앤트로도 충분한데 메이븐 기반 프로젝트들로 바뀌고 있는가". 이에대한 대답은 더 좋기때문인 것이다. 그렇다면 그레이들이 메이븐 보다 장점이 무엇이 있는지 책속의 내용을 정리해 보기로 한다.

 

 

메이븐

  • XML 기반으로 컨벤션(Convention)에 의존하고 이용할 수 있는 타깃을 제공
  • 네트워크를 통하여 의존(Dependency) 관계의 모듈을 내려받아 사용할 수 있다.
  • XML의 규칙 기반으로 이루어져서 정형화 되고 빌드를 비교적 손쉽게 할 수 있다.
  • XML을 기반으로 빌드환경을 구성하다보니 프로젝트의 규모가 커지고 복잡해질수록 메이븐의 빌드 환경 구성인 build.xml 파일도 복잡해지고 점점 코드의 양도 많아지는 어려움이 존재

 

 

그레이들의 등장 배경

위에서 설명한 메이븐의 문제점과 함께 DSL(Domain Specific Language, 특정 산업, 분야등 특정영역에 특화된 언어)에 대한 관심이 증가하고 이를 이용하여 빌드의 환경을 구성하고자 하면서 그레이들이 탄생하게 됨.

 

 

 

그레이들이 메이븐보다 나은점

  • 그레이들과 메이븐 모두 컨벤션에 대한 설정을 제공하지만, 메이븐은 설정과 사용에서 엄격한 부분이 있으나 그레이들은 능동적으로 처리하고 사용하도록, 그리고 사용자 입장에서 편리하게 제어 가능하도록 열어뒀다.
  • 그레이들과 메이븐 모두 병렬 프로젝트에 대한 빌드 및 의존성 해결을 가능하도록 하고 있는데, 그레이들이 메이븐 보다 빌드 수행에서 최대 100배나 빠르다고 한다.

 

그레이들이 메이븐보다 빌드수행이 빠른 이유

1. 변경된 부분만 처리하여 중복작업을 피하는 증분(Incrementally)적 방법인 빌드를 수행

2. 빌드 캐시(Build Cache)를 사용하여 빌드 출력에 이용하고 있다.

3. 그레이들 데몬(Gradle Deamon)을 사용하여 빌드 관련 정보가 메모리에서 최신의 상태를 유지하도록 프로세스를 사용한다.

 

 

그레이들의 최대 장점

  • 앤트처럼 유연한 범용 빌드도구
  • 메이븐을 사용할 수 있는 변환 가능 컨벤션 프레임워크 제공
  • 멀티 프로젝트에서 간결한 빌드 스크립트로 강력한 빌드 수행이 가능

 

 

'IT > Gradle' 카테고리의 다른 글

그레이들(Gradle) Project 객체  (0) 2020.05.10
그레이들의 라이프 사이클과 그루비  (0) 2020.05.09
그레이들과 빌드  (0) 2020.05.07
Gradle 공부의 시작(Gradle 설치)  (0) 2020.05.05
profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!