[Gradle] Gradle이란?

LDB·2024년 10월 30일
1

gradle

목록 보기
1/2
post-thumbnail

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/

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

profile
가끔은 정신줄 놓고 멍 때리는 것도 필요하다.

0개의 댓글