코딩항해기

[리뷰/우아한테크] Gradle 본문

IT tech

[리뷰/우아한테크] Gradle

miniBcake 2024. 11. 11. 14:15

 

 

 

 

Gradle

2012년 출시된 Groovy를 기반으로 한 오픈소스 빌드 도구로 거의 모든 타입의 소프트웨어를 빌드할 수 있는 빌드 자동화 시스템이다.

 

빌드
소스코드를 컴파일, 테스트, 정적분석 등을 실행해 실행 가능한 애플리케이션으로 만들어주는 과정

 

 

다양한 라이브러리가 등장하며 라이브러리를 다운로드 및 추가해야하는 문제, 버전관리 문제, 다운로드 받은 jar파일의 보완 위험 문제점이 부각되었다. 이런 문제를 해결하기 위한 도구로 빌드 도구가 생겨났다.

 

빌드 도구
계속해서 늘어나는 라이브러리를 자동 추가 및 관리해주며 버전을 쉽게 동기화해준다.

 

Gradle은 이러한 빌드 도구 중 하나로 빌드 과정을 편하게 해준다.

 

Groovy
JVM 상에서 실행되는 스크립트 언어로 Java와 유사한 문법 구조를 가지며, 호환성이 아주 좋다.

 

Gradle은 Groovy를 기반으로 하고 있어 Java언어와 잘 맞는다.

 

 

Gradle 장점

Gradle은 프로젝트를 설정주입하는 방식으로 정의하며 멀티 프로젝트 빌드가 가능하고 빌드 속도가 빠르다.

 

설정주입 방식으로 정의 (Configuration Injection)

Maven의 상속 구조보다 재사용에 용이하고 프로젝트의 조건을 체크할 수 있어 프로젝트 별로 주입되는 설정을 다르게 할 수 있다.

 

멀티 프로젝트 빌드

하나의 리포지토리 내에 여러 개의 하위 프로젝트를 구성할 수 있다. 

(공통된 내용과 모듈 부분을 분리해 관리 가능해 중복을 피할 수 있다.)

 

빌드 속도

점진적 빌드 방식을 사용해 빌드 실행 중 마지막 빌드 호출 이후에 task의 입력, 출력 혹은 구현이 변경됐
는지 확인한다. 최신 상태가 아니라면 빌드는 실행되지 않는다.

불필요한 부분에 대해 중복 빌드가 일어나지 않아 속도가 증가되는 것이다.

 

그 외에도 빌드 캐시를 사용해 두 개 이상의 빌드가 돌아가고 하나의 빌드에서 사용되는 파일들이 다른 빌드들에 사용된다면 Gradle은 빌드 캐시를 이용해 이전 빌드의 결과물을 다른 빌드에서 사용할 수 있다. 다시 빌드하지 않아 빌드 시간이 줄어든다.

 

서비스 요청에 응답하기 위해 오랫동안 살아있는 프로세스인 데몬 프로세스도 이용한다. Gradle의 데몬 프로세스는 메모리 상에 빌드 결과물을 보관해두고 사용하기 때문에 한 번 빌드 된 프로젝트는 다음 빌드 때 더욱 빠르게 빌드된다.

 

 

Maven과 Gradle

Maven이 더 많이 사용되지만 Gradle을 정리하는 이유는 새로운 프로젝트를 할 때는 Gradle를 사용하는 추세도 있기 때문이다. (성능 면에서 우수한 점이 있어 사용하지 않을 이유가 없다.)

 

 

사용법 (의존성 주입 시)