not bad 한 개발

[Spring] Gradle이란? 본문

Web/Spring

[Spring] Gradle이란?

leebean 2024. 10. 25. 16:32

 Gradle 

Gradle은 groovy기반의 오픈소스 빌드 자동화 시스템으로 , Spring 뿐만 아니라 코틀린에서도 사용하는 시스템입니다. 

  • Compile : Java 파일의 소스코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환
  • Test : 유닛 테스트, UI 테스트
  • Packaging : jar 파일이나 war파일로 패키징
  • Deploy / Run : 서버 실행

 

 빌드도구 

소프트웨어 개발에 있어서 소스코드를 실행가능한 애플리케이션으로 만들어주는 도구입니다, 빌드 과정을 지동화하여 관리하는 기능을 하기 때문에 빌드 관리 도구 또는 빌드 자동화 도구로 불리기도 합니다.

 

 Gradle을 적용한 Project 구성 

 

  • .gradle : gradle 버전 별 엔진 및 설정 파일
  • .idea : 에디터 관련 파일들
  • gradle/wrapper : 사용자가 Gradle을 설치하지 않았어도 Gradle tasks를 실행할 수 있도록 도와준다.
    • gradle-wrapper.jar :Wrapper 파일로 실행 스크립트가 동작하면 Wrapper에 맞는 환경을 로컬 캐시가 다운로드 받은 뒤 실제 명령에 해당하는 task 실행
    • gradle-wrapper.properties : Gradle Wrapper 설정 파일
  • gradlew : Unix용 실행 스크립트 
  • gradlew.bat : Windows용 실행 스크립트
  • build.gradle :의존성이나 플러그인 설정 등 프로젝트 빌드에 대한 모든 기능 정의
  • settings.gradle : 빌드할 프로젝트 정보 설정

 

 Maven VS Gradle 

Maven

Ant이후에 나온 자바 빌드 도구로 자동으로 라이브러리와 의존성을 관리하는 기능입니다, Ant와 마찬가지로 XML 스크립트를 기반으로, pom.xml 파일로 의존성을 관리합니다. Maven에서는 라이프 사이클 개념이 도입되어 빌드 순서등을 정의 할 수 있습니다.

Gradle

Gradle은 2007년에 처음 발표된 자바 빌드 도구로 Groovy 문법을 사용합니다, build.gradle에 스크립트를 작성하며, 대규모프로젝트에서 복잡해지는 경향이 있는 XML 기반 스크립트에 비해 관리가 편하다는 장점이 있습니다.

 

 Gradle을 사용하는 이유? 

1. 간결한 스크립트 

Ant 혹은 Maven은 XML 문법으로 스크립트를 작성했습니다, 하지만 XML은 태그 문법 때문에 복잡하게 스크립트를 작성하면 가독성이 떨어진다는 단점이 있습니다, 하지만 Gradle은 Groovy기반 문법이기 때문에 간결한 스크립트를 작성할 수 있는 장점이 있습니다.

2. 빌드 속도

프로젝트가 커지면 자연스럽게 빌드속도가 자연스럽게 늘어나서 생산성에 큰영향을 미칩니다, Gradle은 캐싱 이라고 해서 Gradle에 작성된 dependency를 전부 빌드를 하는 것이 아니라 필요한 dependency만 하거나 아니면 컴파일시에 빌드를 하는등의 설정을 할 수 있어서 Ant와 Maven에 비해 빌드속도가 빠릅니다.

3. 멀티 프로젝트 빌드

대규모 자바 프로젝트는 대부분 하나의 프로젝트 안에 여러 모듈이 동시에 개발되고, 각 모듈이 공통으로 사용되는 모듈도 만들어지는데 이렇게 여러 모듈이 동시에 개발되는 경우 각각 따로 빌드 작업을 하면 번거로울 뿐 아니라 실수가 발생할 수 도 있습니다. 하지만 Gradle은 멀티 프로젝트 빌드 기능을 제공하기 때문에 이런 번거로움과 실수를 줄일 수 있습니다.

 

참고 게시글

https://gradle.org/maven-vs-gradle/

 

Gradle | Gradle vs Maven Comparison

High-level performance and feature comparison between Gradle and Maven

gradle.org

https://hstory0208.tistory.com/entry/Gradle%EC%9D%B4%EB%9E%80-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EC%A7%80%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84-%EB%B3%B4%EC%9E%90

 

Gradle이란? 왜 사용하는지에 대해 알아 보자.

Gradle이란 ? Gradle은 CI/CD를 위해 아래 작업들을 자동화 시켜 주는 Groovy 기반의 오픈소스 빌드 도구입니다. Compile - Java 파일의 소스 코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환 Test - 유

hstory0208.tistory.com

Comments