1. 빌드 도구 종류

자바 기반 프로젝트에서의 빌드 도구는 대표적으로 3가지가 있다.

 

첫째는 Ant 라는 불리는, XML 기반 빌드 스크립트를 사용하는 도구가 있다. build.xml 이라는 빌드 스크립트를 사용하여 소스코드 컴파일, 테스트, 배포 등을 수행했으며, 2000년대 초반, 자바 기술 스택이 확장됨에 따라 많은 기업과 개발자가 사용했다고 한다. 특유의 간단한 구조와 확장성으로 인기가 많았지만, 새로운 빌드 도구가 등장함에 따라 사용이 줄었다.

 

둘째는 Maven이다. pom.xml 이라는 빌드 스크립트를 사용하는데, 종속성 관리의 측면에서 Ant와 큰 차이를 보였다. Ant는 외부 라이브러리의 종속성 관리를 위해 직접 라이브러리를 다운로드하고 클래스패스에 추가를 해주어야 했지만, Maven은 중앙저장소에서 라이브러리를 관리하면서 pom 파일에 종속성을 명시하면 자동으로 라이브러리를 다운로드 및 관리해주는 편리성을 보였다.

 

마지막은 Gradle로, build.gradle이라는 빌드 스크립트를 사용한다. Gradle은 이전 도구들과 달리 kotlin이나 groovy와 같은 DSL (Domain-Specific Language)를 사용하는데, 가독성이 뛰어나고 유연성이 높아 복잡한 빌드 프로세스를 간결하게 표현할 수 있다는 장점을 가진다. 또한 Maven과 호환되는 종속성 관리시스템을 지원하며, 사용자가 유연하게 빌드 프로세스를 정의할 수 있다.


2. Gradle 설치

Gradle 8.7 버전을 기준으로 설치해보자.

https://gradle.org 에서 Install Gradle 8.7 을 클릭한다.

Installation 페이지에서 아래로 내리다 보면 Installing manually 항목이 나오는데, Step1의 Binary-only를 선택해주자.

 

압축파일이 다운될 텐데, 편의를 위해 C드라이브 아래에 압축을 해제한다. (C:\gradle-8.7)

 

 

이제 환경변수 설정이 필요하다.

[환경 변수]를 검색해서 [시스템 환경 변수 편집] 화면에 들어간다.

 

 

이후 [환경변수]를 클릭, Path를 찾아 선택한 후 [편집]을 누른다.

 

 

[새로 만들기]를 클릭한 후에, 앞서 압축을 해제한 gradle-8.7 폴더에서 bin 폴더의 경로를 찾아 입력해준다.

C:\gradle-8.7\bin

그리고 혹시 모르니 jdk 바로 아래까지 위치를 옮겨주면 된다.

 

cmd 창을 새로 열어 gradle -v 를 입력해보면, 정상 설치된 것을 확인할 수 있다.


3. Gradle 사용법

  3.1 gradle init

테스트용 프로젝트 폴더를 만든 후, 해당 경로에서 gradle init 을 실행한다.

그러면 gradle 프로젝트 초기화가 시작되면서 아래 선택사항을 정해야 한다.

Select type of build to generate:
  1: Application
  2: Library
  3: Gradle plugin
  4: Basic (build structure only)
Enter selection (default: Application) [1..4]

  생성할 타입을 묻는 부분으로, 웹어플리케이션 개발자라면 그냥 default로 넘어가면 된다.

Select implementation language:
  1: Java
  2: Kotlin
  3: Groovy
  4: Scala
  5: C++
  6: Swift
Enter selection (default: Java) [1..6]

  대상 언어를 묻는 항목이며 Java가 default이다.

Enter target Java version (min: 7, default: 21):

  Java를 선택할 시 버전을 선택하는 항목이며, default는 현재 LTS 중 가장 버전이 높은 21이다.

Project name (default: test):

  프로젝트 이름을 묻는 항목이며 default는 폴더명과 같다.

Select application structure:
  1: Single application project
  2: Application and library project
Enter selection (default: Single application project) [1..2]

  프로젝트 구조 관련으로, 단일 프로젝트인지 서브 프로젝트를 포함하는지 묻는 항목이다.

Select build script DSL:
  1: Kotlin
  2: Groovy
Enter selection (default: Kotlin) [1..2]

  Domain-Specific Language를 묻는 항목이며, kotlin이 default이다.

Select test framework:
  1: JUnit 4
  2: TestNG
  3: Spock
  4: JUnit Jupiter
Enter selection (default: JUnit Jupiter) [1..4]

  테스트 프레임워크를 고르는 항목으로, JUnit 4 이후 버전인 JUnit Jupiter가 default로 설정되어 있다.

Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no]

  새롭게 도입된 API를 사용할지 묻는 항목으로, 안정성을 중시한다면 default인 no로 선택하는 것이 좋다.

 

여기까지 선택을 마치고 나면 Gradle 초기화가 완료된다.


  3.2 폴더 구조

초기화를 마치면 폴더는 아래와 같은 구조를 가지게 된다.

각 항목을 간단히 설명하면 아래와 같다.

app : main 프로젝트

app/src : 소스코드 위치

app/build.gradle : main 프로젝트의 빌드 명세서

gradle/wrapper : Gradle이 설치되지 않은 경우 자동으로 설치해주는 도구

gradle/libs.versions.toml : 의존하는 버전 정보

gradlew : Gradle이 로컬 컴퓨터에 설치되지 않은 경우 자동으로 설치하여 실행하는 도구 (Linux/Unix용)

gradlew.bat : Gradle이 로컬 컴퓨터에 설치되지 않은 경우 자동으로 설치하여 실행하는 도구 (Windows용)

settings.gradle : Gradle 메인 설정

.gitattributes : Git 보조 설정 파일

.gitignore : Git ignore 정보


  3.3 빌드 및 실행

Gradle 초기화를 하고 나면, Hello World를 찍을 수 있는 샘플 데이터가 함께 생긴다.

이를 활용해서 빌드, 그리고 실행하는 것까지 살펴본다.

 

대상 프로젝트 폴더에서 gradle build를 입력한다.

그러면 app 폴더 하위에 build라는 폴더가 생기고, 그 안에 App.class라는 샘플 클래스파일이 생긴다.

 

이제 gradle run 명령을 내리게 되면, 프로젝트가 실행되면서 Hello World가 출력된다.

 

만약 다른 부연설명 없이 결과만 보고 싶다면, gradle -q run 명령을 내리면 된다. (quiet)

 

이후 build 폴더를 다시 없애고 싶다면, gradle clean 명령을 통해 할 수 있다.

 

끝!

+ Recent posts