[정보처리기사 필기] 제품 소프트웨어 패키징 - 043. 빌드 자동화 도구

1. 빌드 자동화 도구의 개요

  • 빌드 : 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정
  • 빌드 자동화 도구 : 빌드를 포함하여 테스트 및 배포를 자동화하는 도구
  • 지속적인 통합 개발 환경에서 빌드 자동화 도구가 유용하게 활용 됨
    • 지속적인 통합 개발 환경 : 애자일 환경에서 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는 것
  • 빌드 자동화 도구의 종류 : Jenkins, Gradle, Ant, Make, Maven 등

2. Jenkins

  • JAVA 기반의 오픈 소스 형태
  • 가장 많이 사용되는 빌드 자동화 도구
  • 서블릿 컨테이너에서 실행되는 서버 기반 도구
    • 서블릿 컨테이너 : 클라이언트의 요청을 처리해주기 위해 서버 측에서 실행되는 작은 프로그램인 서블릿을 실행하고 서블릿의 생명주기를 관리하는 역할을 함
  • 대부분의 형상 관리 도구(SVN, Git 등)와 연동이 가능
  • 친숙한 Web GUI 제공으로 사용이 쉬움
  • 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능

3. Gradle

  • Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구
    • Groovy : 자바에 Python, Ruby, Smallak 등의 장점을 결합한 동적 객체 지향 프로그래밍 언어
  • 안드로이드 앱 개발 환경에서 사용
  • 플러그인 설정을 통해 JAVA, C/C++, Python 등의 언어도 빌드가 가능
  • DSL을 스크립트 언어로 사용
    • DSL : 웹페이지 영역에 특화되어 사용되는 HTML과 같이 특정한 도메인, 영역이나 용도에 맞게 기능을 구성한 언어
    • 스크립트 언어 : HTML 문서 면에 직접 프로그래밍 언어를 삽입하여 사용하는 것, 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어
  • 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행
  • 빌드 캐시 기능(이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 기능)을 지원하므로 빌드의 속도를 향상시킬 수 있음