빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화 도구라고 한다.
애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는데, 이러한 지속적인 통합(Continuous Integration) 개발 환경에서 빌드 자동화 도구는 유용하게 사용된다.
빌드 자동화 도구에는 Ant, Make, Maven, Gradle, Jenkins 등이 있으며, 이 중 Jenkins, Gradle이 가장 대표적이다.
Jenkins는 JAVA 기반 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.
서블릿 컨테이너에서 실행되는 서버 기반 도구
SVN, Git 등 대부분의 형상 관리 도구와 연동이 가능
친숙한 Web GUI 제공으로 사용이 쉬움
여러 대의 컴퓨터를 이용한 분산 빌드나 테스트 가능
Gradle은 Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.
안드로이드 뿐만 아니라 플러그인을 설정하면, JAVA, C/C++, Python 등의 언어도 빌드가 가능
Groovy를 사용해서 만든 DSL(Domain Specific Language)을 스크립트 언어로 사용한다.
Gradle은 실행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행한다.
이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능을 지원하므로 빌드의 속도를 향상시킬 수 있다.