본문 바로가기
Develop/Spring (이론)

빌드 도구 ( Maven / Gradle ) 5분 핵심정리

by 보보트레인 2023. 6. 13.

빌드 도구를 알기 위해서는 먼저 '빌드'가 뭘 의미하는지부터 알아야 한다.

빌드란 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정으로, 컴파일, 테스팅, 배포 등 모든 과정의 집합이다.

빌드 도구는 이러한 빌드 과정을 자동으로 수행해주는 도구를 의미한다.

자바 빌드 도구에는 Ant, Maven, Gradle 등이 있다.

 

Maven/Gradle

 

 💡 Maven과 Gradle의 차이

Maven 같은 경우는 스프링 프로젝트에서 pom.xml이란 이름으로 쓴다.

 

  • Gradle 스프링부트 / 안드로이드에서 쓴다.
  • Gradle의 경우 별도의 빌드스크립트를 통하여 사용할 어플리케이션 버전, 라이브러리등의 항목을 설정 할 수 있다.
  • Gradle의 장점으로는 스크립트 언어로 구성되어 있기 때문에, XML과 달리 변수 선언, if, else, for등의 로직이 구현 가능하여 간결하게 구성 가능하다.

 

  • Maven은 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운 및 동기화 해준다.
  • 기본 메이븐의 경우 XML로 라이브러리를 정의하고 활용하도록 되어있다.

Gradle이 Maven보다 좋은점

  • Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.
    • 설정 내용이 길어지고 가독성 떨어짐
    • 의존관계가 복잡한 프로젝트 설정하기에는 부적절
    • 상속구조를 이용한 멀티 모듈 구현
    • 특정 설정을 소수의 모듈에서 공유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야함 (상속의 단점 생김)
  • Gradle은 그루비를 사용하기 때문에, 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.
    • Configuration Injection 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버했다.
    • 설정 주입시 프로젝트의 조건을 체크할 수 있어서 프로젝트별로 주입되는 설정을 다르게 할 수 있다.
반응형