빌드 자동화 도구

clay·2023년 2월 9일
0

소프트웨어 개발

목록 보기
19/47
post-thumbnail

빌드 자동화 도구의 개념

빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화 도구라고 한다.

  • 애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는데, 이러한 지속적인 통합(Continuous Integration)개발 환경에서 빌드 자동화 도구는 유용하게 활용된다.
  • 빌드 자동화 도구에는 Ant, Make, Maven, Gradle, Jenkins 등이 있으며, 이중 Jenkins와 Gradle이 가장 대표적이다.

Jenkins

Jenkins는 JAVA 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.

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

Gradle

Gradle은 Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.

Groovy
자바에서 Python, Ruby, Smalltalk 등의 장점을 결합한 동적 객체 지향 프로그래밍 언어
  • 안드로이드 뿐만 아니라 플러그린 설정하면, JAVA, C/C++, Python 등의 언어로 빌드가 가능하다.
  • Groovy를 사용해서 만든 DSL(Domain Specific Language)을 스크립트 언어로 사용한다.
DSL
웹페이지 영역에 특화되어 사용되는 HTML과 같이 특정한 도메인, 즉 영역이나 용도에 맞게 기능을 
구성한 언어

스크립트 언어
HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로, 기계어로 컴파일 되지 않고
별도의 번경기가 소스를 분석하여 동작하게 하는 언어
  • Gradle은 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행한다.
  • 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능을 지원하므로 빌드의 속도를 향상키실 수 있다.
profile
샤코타임 팬

0개의 댓글