 |  |
|
난이도 : 중급 Andrew Glover, President, Stelligent Incorporated
2008 년 1 월 22 일 지속적 통합(Continuous Integration, 이하 CI)이란 지속적으로 소스코드를 컴파일, 테스트, 검사, 배치하는 처리과정을 말합니다. 많은 CI 환경에서 이는 소스코드 관리 저장소에 변경 사항이 생기면 빌드가 새로 실행됨을 의미합니다. CI의 장점은 간단합니다. 비교적 관리하기 쉬울 때 소프트웨어를 어셈블해 보면 결함을 조기해 발견할 가능성이 매우 높아집니다. 본 튜토리얼은 Andrew Glover의
In pursuit of code quality
연재와 더불어 CI의 기초를 소개하고 최신 오픈 소스 기술을 사용하여 CI 처리과정을 설정하는 방법을 단계별로 설명합니다.
시작하기 전에
본 튜토리얼에 기대하는 점이 무엇인지, 무엇을 얻을 수 있는지 알아보자.
본 튜토리얼에 관해
본 튜토리얼은 CI의 기초를 다룬다. CI가 무엇인지, 왜 필요하며, 어떻게 작동하는지, CI 환경에서 개발 속도는 어떤지가 그것이다. 반복할 수 있고 안정된 빌드 프로세스(build process)를 가져오는 CI 프로세스를 설정하는 방법도 보여준다.
CI 서버를 제대로 설정하여 SCM 저장소에 연결하고 소스코드에서 변화가 감지될 때 앤트 빌드 프로세스를 실행하는 방법에 대해서도 다룰 것이다. 또한 자동화된 JUnit 테스트를 실행하는 방법과 PMD와 FindBugs 모두에서 소프트웨어 검사(inspection)를 실시하는 방법을 다룰 것이다. 마지막으로 최신 CI 서버라는 허드슨(Hudson)이 문제를 발견했을 때 어떻게 알려주는지, 안정적인 소프트웨어를 신속하게 만드는 방법은 무엇인지도 다룰 것이다.
목표
이 튜토리얼은 프레임워크에 따라 허드슨, 앤트, 서브버전(Subversion)을 사용한 CI의 기본 개념을 단계별로 안내한다. 한 시간짜리 본 튜토리얼을 마치고 나면 CI의 장점을 알게되고 협업에 필요한 허드슨, 앤트, 서브버전을 설정 및 구성 방법을 이해할 수 있을 것이다. 빌드 프로세스의 결과물은 테스트와 소프트웨어 검사에서 모두 작동하고 문제 발생시 즉각 보고를 할 것이다.
필요한 사전지식
본 튜토리얼에서 최대 효과를 누리려면 일반적인 자바™ 개발에 대해 익숙해야 한다. 또한 JUnit으로 소프트웨어를 개발하는 가치와 질을 이해해야 한다.
시스템 요구사항
CI 환경에는 자동화된 빌드 도구, 코드 저장소, CI 서버가 필요하다. 본 튜토리얼을 실습하려면 자바 플랫폼, 허드슨 1.150, 앤트 1.7, JUnit 3.8.1, 서브버전 1.4.x를 설치해야 한다.
본 튜토리얼에서 필요한 시스템 구성은 다음과 같다.
- 썬 JDK 1.5.0_09(또는 그 이후 버전)나 자바 1.5.0 SR3를 위한 IBM Developer Kit를 지원하는 시스템과 적어도 500MB 이상의 주 메모리y
- 소프트웨어 컴포넌트를 설치하고 예제를 다룰 적어도 20MB 이상의 디스크 공간
본 안내서는 마이크로소프트® 윈도우® 운영체제를 기반으로 한다. 본 튜토리얼에서 다루는 모든 도구는 리눅스®와 유닉스® 시스템에서도 작동한다.
|  |