티스토리 뷰

개발

빌드 자동화에 대하여

최컬리 2019. 7. 13. 00:55

※ 위키피디아의 내용입니다.

 

빌드소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. 소프트웨어 빌드에 있어 가장 중요한 단계들 가운데 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정이다빌드하는 과정은 보통 다른 프로그램을 제어하는 프로그램인 빌드 도구에 의해 관리된다.

 

빌드 자동화

빌드 자동화 본질적 목적은 소프트웨어 개발자가 반복해서 하는 코딩을  짜여진 프로세스를 통해 자동으로 실행하여믿을  있는 결과물도 생산해   있는 일련의 작업방식  방법을 말한다.

지속적인 통합(continuous Integration)과도 일맥상통되는 의미다수없이 반복해서 최종 결과물을 만들어내야 하는 소프트웨어 개발업무에서 빠질  없는 개념적 이해가 되었다특히 오늘날의 복잡하고 광범위한 협업적 개발 과정에서는 과정과정에서 있을  있는 인간적 실수의 가능성을 최소한으로 줄여야 한다.

 

- 개요

역사적으로 빌드 자동화는 makefile 통해 이루어진다오늘날에는 보통 2가지 분류의 도구들이 있다:

·       빌드 자동화 유틸리티

·       빌드 자동화 서버

 

make

원저자

스튜어트 펠드먼

발표일

1977

종류

빌드 자동화 도구

make 소프트웨어 개발을 위해 유닉스 계열 운영 체제에서 주로 사용되는 프로그램 빌드 도구이다.

여러 파일들끼리의 의존성과  파일에 필요한 명령을 정의함으로써 프로그램을 컴파일할  있으며 최종 프로그램을 만들  있는 과정을 서술할  있는 표준적인 문법을 가지고 있다.

위의 구조로 기술된 파일(주로 Makefile이라는 파일명) make 해석하여 프로그램 빌드를 수행하게 된다.

 

Makefile

make 실행하기 전에 프로젝트의 목록  컴파일  링크 규칙을 만들어야 한다이것은 보통 Makefile 사용한다 파일에 규칙을 입력하여 파일로 만든다.

 

 

 

아파치 앤트 Apache Ant (Another Neat Tool)

개발자

아파치 소프트웨어 재단

최근 버전

1.10.1 / 2017 2 6 (2 )

프로그래밍 언어

자바

운영 체제

크로스 플랫폼

종류

빌드 도구

라이선스

아파치 라이선스 2.0

웹사이트

http://ant.apache.org

 

아파치 앤트(영어: Apache Ant) 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구이다유닉스나 리눅스에서 사용되는 make 비슷하나 자바언어로 구현되어 있어 자바 실행환경이 필요하며 자바 프로젝트들을 빌드하는데 표준으로 사용된다.

make 눈에 띄는 가장 다른 부분은 빌드를 위한 환경구성을 XML 파일을 사용한다는 점이다기본적인 빌드 파일명은 build.xml 이다.

로고는 이름(ANT) 따라 개미 모양으로 만들어졌으나 이는 Another Neat Tool 약어이다.

최초 빌드 도구로서 제작되었으나 점점 많은 기능이 추가되면서 빌드와 배포유닛 테스트 등을 포함하는 통합 툴로서 발전되고 있다.

 

- 역사

앤트는  마이크로시스템즈에서 나중에 톰캣으로 발전하게 되는 JSP/Servlet 표준구현 엔진을 오픈소스화 하던  제임스 던컨 데이비슨에 의해 최초로 구상되었다사유 소프트웨어인 make 이용하여 솔라리스에서 작업했으나 다른 환경에서는 이를 수행할  있는 오픈소스 소프트웨어가 없었기 때문이다.

앤트의 최초 버전은 시스템 독립적으로 톰캣을 빌드하기 위한 툴로서 생겨났으며 2000 7 19 독립형 제품으로서 발표되었다(1.1 버전). 처음에는 자카르타 프로젝트의 하위 프로젝트로서 시작했으나 2002 10 18 아파치의 최상위 프로젝트로 승격해서 현재에 이르고 있다.

수많은 오픈소스가 앤트를 통한 자동 빌드를 지원하고 있으며 명실상부한 자바 프로젝트의 공식적인 빌드 도구로서 사용된다.

 

 

 

아파치 메이븐 Apache Maven

개발자

아파치 소프트웨어 재단

발표일

2004 7 13 (14 )

최근 버전

3.5.3 / 2018 3 8 (15 )

개발 상태

지원 

프로그래밍 언어

자바

운영 체제

크로스 플랫폼

종류

빌드 도구

라이선스

아파치 라이선스 2.0

웹사이트

maven.apache.org

 

아파치 메이븐(Apache Maven) 자바용 프로젝트 관리 도구이다아파치 앤트의 대안으로 만들어졌다아파치 라이선스로 배포되는 오픈 소스 소프트웨어이다.

  

 

 

 

Gradle

개발자

Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling

발표일

2007

최근 버전

4.2.1 / 2017 10 2 (20 )

프로그래밍 언어

자바그루비

종류

빌드 도구

라이선스

아파치 라이선스 2.0

웹사이트

gradle.org

 

Gradle Groovy 이용한 빌드 자동화 시스템이다. Groovy 유사한 도메인 언어를 채용하였으며현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. Java, C/C++, Python 등과 같은 여러 가지 언어를 지원한다.

 

 

 

그루비 Groovy

패러다임

다중 패러다임

발표년도

2003

설계자

제임스 스트라칸

개발자

글라우미 라포어

최근 버전

2.4.14

최근 버전 출시일

2018 2 24 (15 )

자료형 체계

불규칙동적 타이핑

주요 구현체

Groovy

영향을 받은 언어

자바루비파이썬스몰톡

영향을  언어

제이루비

운영 체제

자바가상기계

라이선스

아파치 허가서 2.0

웹사이트

http://www.groovy-lang.org/

그루비(Groovy) 자바에 파이썬루비스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다.

 

- 특징

·       자바 가상 머신에서 작동하는 동적 타이핑 프로그래밍 언어이다.

·       자바의 강점 위에 파이썬루비스몰토크등의 프로그래밍 언어에 영향을 받은 특장점을 더하였다.

·       자바 프로그래머들이 많은 학습을 하지 않고도 최신 프로그래밍 기법을 사용할  있다.

·       도메인 전문 언어와 단순화된 문법을 지원하여 코드가 읽고 유지 보수하기 편해진다.

 

- 철학

그루비의 창시자 제임스 스트라칸은 그루비의 가장 중요한 점이 타입이 유연 간결한 동적인 프로그래밍 언어라고 한다.

 

- 자바와의 비교

그루비의 문법 체계는 자바의 것을 계승 발전시켰다자바에는 없는 간편 표기법(syntactic sugar) 지원하는 외에 리스트정규식을 위한 구문을 제공함으로써 프로그래밍을 쉽고 간결하게  준다더구나 LISP 언어 초기부터 있어 왔던 클로저를 도입함으로써 메타프로그래밍이 가능하게 하였다자바가상기계(JVM) 상에서 동작하는 동적인 스크립팅 언어 Jython, JRuby, Jacl, Rhino, LuaJava 등에 비해 손색이 없으며짧은 역사에도 불구하고 빠른 발전을 하고 있다.

자바 소스는 컴파일해야만 사용할  있지만그루비 소스는 스크립트 파일 그대로 실행시킬 수도 있고자바처럼 컴파일하여  수도 있다거의 대부분의 자바 소스는 파일 확장자만 바꾸면 수정 없이 그루비에서도   있다.

 

'개발' 카테고리의 다른 글

젠킨스(Jenkins) 설치 및 설정  (0) 2019.10.24
AWS 인프라 구축  (0) 2019.09.02
댓글