회사 업무에서 프로젝트를 git을 통해서 
 
여러 모듈로 나뉘어진 프로젝트를 한번에 빌드하여 프로젝트를 시작하려고 하였지만 환경 설정부터 문제가 발생했습니다.
 
 문제는 필자가 프로젝트의 파악이 부족하여 maven으로 빌드하려고 했는데
 
팀장님께서 어째서 gradle로 빌드하는게 아니라 maven로 빌드하려고 하는지에 대해서 저에게 질문을 주셨고,
 
저는 build 툴에 대한 이해가 부족하여 대답을 잘 하지 못하였습니다.( ㅠㅠ 반성중  )
 
build 툴이라는게 일반적으로 프로젝트에서 쉽게 제공되다보니 생각 없이 사용하고 있지 않앗나 라고 생각하였습니다.
 
먼저 gradle과 maven에 간단하 차이에 대해서 작성해보겠습니다.
 
Gradle과 Maven은 자바 프로젝트의 빌드 및 종속성 관리를 위한 도구입니다. 각각의 특징과 차이점에 대해 설명하겠습니다.

  1. 구성 언어:
    • Maven: XML을 사용합니다. 이는 구조화가 잘 되어 있지만, 때로 복잡하고 장황할 수 있습니다.
    • Gradle: Groovy나 Kotlin 기반의 DSL(Domain-Specific Language)을 사용합니다. 이는 더 간결하고 유연한 구성을 가능하게 합니다.
  2. 성능:
    • Maven: 상대적으로 느린 편이며, 변경 사항이 없는 경우에도 종속성을 다시 다운로드하고 처리하는 경향이 있습니다.
    • Gradle: 캐시 및 증분 빌드 기능으로 인해 Maven보다 빠르다는 평가를 받습니다. 이미 빌드된 부분은 재빌드하지 않아 시간을 절약할 수 있습니다.
  3. 종속성 관리:
    • Maven: 중앙 저장소를 사용하며, 프로젝트 구성 파일인 pom.xml에서 종속성을 관리합니다.
    • Gradle: Maven의 중앙 저장소 뿐만 아니라 여러 저장소를 지원하며, 종속성 해석이 더 유연합니다.
  4. 플러그인 및 확장성:
    • Maven: 제한적인 플러그인 생태계를 가지고 있으며, 확장성이 다소 제한적입니다.
    • Gradle: 매우 유연한 플러그인 시스템을 가지고 있어, 사용자 정의 빌드 작업이 용이합니다.
  5. 학습 곡선:
    • Maven: 구조가 단순하고 일관되어 있어, 입문하기 쉽습니다.
    • Gradle: DSL을 이해하고 활용해야 하므로, Maven보다는 배우기가 어려울 수 있습니다.
  6. 커뮤니티 및 지원:
    • Maven: 오랜 역사를 가진 도구로서, 넓은 사용자 기반과 광범위한 커뮤니티 지원을 받습니다.
    • Gradle: 현대적인 접근 방식과 성능으로 인해 빠르게 성장하는 사용자 기반을 가지고 있습니다.

결론적으로, Maven은 전통적이고 안정적인 접근 방식을 제공하는 반면, Gradle은 더 현대적이고 유연한 접근 방식을 제공합니다.

이번주 주말에는 빌드 툴에 대해서도 더 자세히 다뤄보도록 하겠습니다.
 

+ Recent posts