Gradle

Gradle이란

Debin 2022. 12. 13.
반응형

Gradle 공부 필요성을 느껴서 Gradle 철저 입문이라는 책을 중고로 구매해 읽고 공부 기록을 남기려고 합니다.

절판되어서 무려 가격이 1.7배였는데 눈물을 흘리며 이를 구매했습니다. 

바로 시작하겠습니다.

Gradle (그레이들)

  • 그레이들은 차세대 빌드 툴로, 주목받는 오픈 소스 제품이다.
  • 그레이들이 주목 받는 이유는 기존 빌드 툴보다 우수한 점이 많기 때문이다.
  • 가장 큰 장점은 빌드 스크립트를 간단하게 작성할 수 있다는 점이다.
  • 또한 스크립트가 간단해서 배우기도 쉽고 읽기도 쉬워 처리 내용을 금방 이해할 수 있다.
  • 그레이들의 또 다른 특징으로는 앤트나 메이븐 같은 기존 빑드 툴의 기능과 시스템도 활용할 수 있다는 것이다.
  • 즉 그레이들은 앤트 태스크나 앤트 빌드 스크립트, 메이븐 저장소를 이용할 수 있어서 과거에 축적한 자원을 활용할 수 있다.
  • 단 메이븐의 플러그인은 사용할 수 없다.

빌드 툴이란

소프트웨어 개발에서 대부분의 작업은 정형화 되어 있다. 자바 애플리케이션을 예르 들면 다음과 같은 작업들이 필요하다.

 

  • 소스코드 (.java)를 컴파일 해서 클래스 파일(.class)를 생성한다.
  • 코딩 규약에 맞게 작성했는지 확인한다.
  • 코드를 정적으로 해석한다.
  • 테스트를 하고 테스트 결과나 커버리지 측정 결과를 리포트로 출력한다.
  • Javadoc과 같은 문서를 작성한다.
  • 클래스 파일과 리소스 파일을 패키징해서 압축 파일을 만든다. (.jar와 .war)
  • 압축 파일을 테스트 환경이나 스테이징 환경에 배포한다.
  • 압축 파일을 저장소에 등록한다.

빌드 툴이란 이런 정형화된 작업을 자동화하기 위한 소프트웨어다.

빌드 툴은 소프트웨어를 개발하면서 있을 수 있는 다양한 문제들을 손쉽게 해결할 수 있게 도와준다.

 

일반적인 빌드 툴에서는 빌드 순서를 빌드 스크립트로 작성해서 실행하면 다양한 작업을 자동화할 수 있다.

이는 빌드 메뉴얼이 문서에서 실행 가능한 프로그램 형태로 바뀐다는 것을 의미한다.

빌드 메뉴얼이 실행 가능한 형태가 되면 다음과 같은 장점이 있다.

 

  • 정형화된 작업에 사람이 관여하지 않아도 되니 실수가 줄어든다.
  • 빌드 스크립트는 항상 관리되므로 문서처럼 낡은 정보가 될 위험이 줄어든다.
  • 조건 분기를 이용해 각 환경에 따른 처리를 할 수 있다. (어디까지 가능한지는 빌드 툴의 기능에 달려있다.)

참고 - 빌드 툴의 역사

순서는 메이크 -> 앤트 -> 메이븐 -> 그레이들 순이다.

 

  • 메이크 : 빌드 개념을 확립.
  • 앤트: 범용성을 높였다. (크로스 플랫폼 대응)
  • 메이븐: 빌드 스크립트 작성 효율을 높였다. (규칙 기반), POM 개념 도입.
  • 그레이들: 유연성을 높였다. (스크립트 언어로 회귀)

그레이들 개요

그레이들의 주요 특징은 다음과 같다.

 

  • 확장 가능한 그레이들 빌드 언어(DSL) 제공
  • 빌드 분할이나 공통 컴포넌트 추출 등을 체계화하기 쉬움
  • IDE와 연계해서 그레이들을 외부에서 제어할 수 있는 API 제공
  • 변경 내역 빌드나 병렬 빌드와 같은 빌드 효율화
  • 멀티 프로젝트를 지원하는 유연성
  • 메이븐/아이비 저장소부터 로컬 파일 시스템까지 다양한 의존관계 관리 기법 대응
  • 앤트 태스크뿐만 아니라 앤트 프로젝트 전체와 통합 가능
  • 빌드 스크립트 작성 언어로 그루비 이용
  • 그레이들 래퍼를 이용해서 그레이들이 설치되지 않은 환경에서도 빌드 가능
  • 호환성 배려

그레이들 장점

  • 빌드 스크립트 생산성이 높다.
  • 빌드 순서를 제어하기 쉽다.
  • 멀티 프로젝트에 대응한다.
  • 컴포넌트로 만들기 쉽다.
  • 별도로 설치할 필요가 없다. 
  • 호환성을 최대한 배려한다.

이상으로 그레이들 학습 첫 포스팅을 마칩니다.

 

참고 

Gradle 철저 입문 1장

반응형

댓글