반응형
Gradle 공부 필요성을 느껴서 Gradle 철저 입문이라는 책을 중고로 구매해 읽고 공부 기록을 남기려고 합니다.
절판되어서 무려 가격이 1.7배였는데 눈물을 흘리며 이를 구매했습니다.
바로 시작하겠습니다.
Gradle (그레이들)
- 그레이들은 차세대 빌드 툴로, 주목받는 오픈 소스 제품이다.
- 그레이들이 주목 받는 이유는 기존 빌드 툴보다 우수한 점이 많기 때문이다.
- 가장 큰 장점은 빌드 스크립트를 간단하게 작성할 수 있다는 점이다.
- 또한 스크립트가 간단해서 배우기도 쉽고 읽기도 쉬워 처리 내용을 금방 이해할 수 있다.
- 그레이들의 또 다른 특징으로는 앤트나 메이븐 같은 기존 빑드 툴의 기능과 시스템도 활용할 수 있다는 것이다.
- 즉 그레이들은 앤트 태스크나 앤트 빌드 스크립트, 메이븐 저장소를 이용할 수 있어서 과거에 축적한 자원을 활용할 수 있다.
- 단 메이븐의 플러그인은 사용할 수 없다.
빌드 툴이란
소프트웨어 개발에서 대부분의 작업은 정형화 되어 있다. 자바 애플리케이션을 예르 들면 다음과 같은 작업들이 필요하다.
- 소스코드 (.java)를 컴파일 해서 클래스 파일(.class)를 생성한다.
- 코딩 규약에 맞게 작성했는지 확인한다.
- 코드를 정적으로 해석한다.
- 테스트를 하고 테스트 결과나 커버리지 측정 결과를 리포트로 출력한다.
- Javadoc과 같은 문서를 작성한다.
- 클래스 파일과 리소스 파일을 패키징해서 압축 파일을 만든다. (.jar와 .war)
- 압축 파일을 테스트 환경이나 스테이징 환경에 배포한다.
- 압축 파일을 저장소에 등록한다.
빌드 툴이란 이런 정형화된 작업을 자동화하기 위한 소프트웨어다.
빌드 툴은 소프트웨어를 개발하면서 있을 수 있는 다양한 문제들을 손쉽게 해결할 수 있게 도와준다.
일반적인 빌드 툴에서는 빌드 순서를 빌드 스크립트로 작성해서 실행하면 다양한 작업을 자동화할 수 있다.
이는 빌드 메뉴얼이 문서에서 실행 가능한 프로그램 형태로 바뀐다는 것을 의미한다.
빌드 메뉴얼이 실행 가능한 형태가 되면 다음과 같은 장점이 있다.
- 정형화된 작업에 사람이 관여하지 않아도 되니 실수가 줄어든다.
- 빌드 스크립트는 항상 관리되므로 문서처럼 낡은 정보가 될 위험이 줄어든다.
- 조건 분기를 이용해 각 환경에 따른 처리를 할 수 있다. (어디까지 가능한지는 빌드 툴의 기능에 달려있다.)
참고 - 빌드 툴의 역사
순서는 메이크 -> 앤트 -> 메이븐 -> 그레이들 순이다.
- 메이크 : 빌드 개념을 확립.
- 앤트: 범용성을 높였다. (크로스 플랫폼 대응)
- 메이븐: 빌드 스크립트 작성 효율을 높였다. (규칙 기반), POM 개념 도입.
- 그레이들: 유연성을 높였다. (스크립트 언어로 회귀)
그레이들 개요
그레이들의 주요 특징은 다음과 같다.
- 확장 가능한 그레이들 빌드 언어(DSL) 제공
- 빌드 분할이나 공통 컴포넌트 추출 등을 체계화하기 쉬움
- IDE와 연계해서 그레이들을 외부에서 제어할 수 있는 API 제공
- 변경 내역 빌드나 병렬 빌드와 같은 빌드 효율화
- 멀티 프로젝트를 지원하는 유연성
- 메이븐/아이비 저장소부터 로컬 파일 시스템까지 다양한 의존관계 관리 기법 대응
- 앤트 태스크뿐만 아니라 앤트 프로젝트 전체와 통합 가능
- 빌드 스크립트 작성 언어로 그루비 이용
- 그레이들 래퍼를 이용해서 그레이들이 설치되지 않은 환경에서도 빌드 가능
- 호환성 배려
그레이들 장점
- 빌드 스크립트 생산성이 높다.
- 빌드 순서를 제어하기 쉽다.
- 멀티 프로젝트에 대응한다.
- 컴포넌트로 만들기 쉽다.
- 별도로 설치할 필요가 없다.
- 호환성을 최대한 배려한다.
이상으로 그레이들 학습 첫 포스팅을 마칩니다.
참고
Gradle 철저 입문 1장
반응형
댓글