티스토리 뷰
※ 위키피디아의 내용입니다.
빌드란, 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. 소프트웨어 빌드에 있어 가장 중요한 단계들 가운데 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정이다. 빌드하는 과정은 보통 다른 프로그램을 제어하는 프로그램인 빌드 도구에 의해 관리된다.
빌드 자동화
빌드 자동화의 본질적 목적은 소프트웨어 개발자가 반복해서 하는 코딩을 잘 짜여진 프로세스를 통해 자동으로 실행하여, 믿을 수 있는 결과물도 생산해 낼 수 있는 일련의 작업방식 및 방법을 말한다.
지속적인 통합(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 |
웹사이트 |
아파치 앤트(영어: 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 |
웹사이트 |
아파치 메이븐(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은 Groovy를 이용한 빌드 자동화 시스템이다. Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. Java, C/C++, Python 등과 같은 여러 가지 언어를 지원한다.
그루비 Groovy
패러다임 |
다중 패러다임 |
발표년도 |
2003년 |
설계자 |
제임스 스트라칸 |
개발자 |
글라우미 라포어 |
최근 버전 |
2.4.14 |
최근 버전 출시일 |
2018년 2월 24일 (15달 전) |
자료형 체계 |
불규칙, 동적 타이핑 |
주요 구현체 |
Groovy |
영향을 받은 언어 |
자바, 루비, 파이썬, 스몰톡 |
영향을 준 언어 |
제이루비 |
운영 체제 |
자바가상기계 |
라이선스 |
아파치 허가서 2.0 |
웹사이트 |
그루비(Groovy)는 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다.
- 특징
· 자바 가상 머신에서 작동하는 동적 타이핑 프로그래밍 언어이다.
· 자바의 강점 위에 파이썬, 루비, 스몰토크등의 프로그래밍 언어에 영향을 받은 특장점을 더하였다.
· 자바 프로그래머들이 많은 학습을 하지 않고도 최신 프로그래밍 기법을 사용할 수 있다.
· 도메인 전문 언어와 단순화된 문법을 지원하여 코드가 읽고 유지 보수하기 편해진다.
- 철학
그루비의 창시자 제임스 스트라칸은 그루비의 가장 중요한 점이 타입이 유연 간결한 동적인 프로그래밍 언어라고 한다.
- 자바와의 비교
그루비의 문법 체계는 자바의 것을 계승 발전시켰다. 자바에는 없는 간편 표기법(syntactic sugar)을 지원하는 외에 리스트, 맵, 정규식을 위한 구문을 제공함으로써 프로그래밍을 쉽고 간결하게 해 준다. 더구나 LISP 언어 초기부터 있어 왔던 클로저를 도입함으로써 메타프로그래밍이 가능하게 하였다. 자바가상기계(JVM) 상에서 동작하는 동적인 스크립팅 언어 Jython, JRuby, Jacl, Rhino, LuaJava 등에 비해 손색이 없으며, 짧은 역사에도 불구하고 빠른 발전을 하고 있다.
자바 소스는 컴파일해야만 사용할 수 있지만, 그루비 소스는 스크립트 파일 그대로 실행시킬 수도 있고, 자바처럼 컴파일하여 쓸 수도 있다. 거의 대부분의 자바 소스는 파일 확장자만 바꾸면 수정 없이 그루비에서도 쓸 수 있다.
'개발' 카테고리의 다른 글
젠킨스(Jenkins) 설치 및 설정 (0) | 2019.10.24 |
---|---|
AWS 인프라 구축 (0) | 2019.09.02 |