CruiseControl로 '한 방 빌드'를 만들자!
Game/Programming 2007. 5. 28. 12:30 |지난번의 "실전 애자일 게임 개발"의 지속적인 통합(Continuous Integration)을 하려면, 코드가 제출될 때마다, 구축을 해야 합니다.
이걸 일일히 하려다 보면, 프로그래밍할 시간을 앗아갈 것이 틀림없죠. 그런데 만약 이걸 놀고 있는 PC에게 대신시킬 수 있다면? 이걸 자동화해주는 게 바로 "CruiseControl"입니다.
CruiseControl이 하는 일은 크게 두 가지입니다:
- 자동 구축: 정기적으로 혹은 필요할 때마다(예: 코드가 제출될 때마다) 자동으로 구축을 시도한다.
- 결과 보고: 구축이 완료된 후, (HTML 형태의) 결과 보고서를 생성한다.
- 왼쪽에서는 해당 프로젝트의 이름과 이전 빌드에 대한 정보를,
- 오른쪽에서는 빌드의 결과(예:컴파일 오류, 테스트 결과, 이전 빌드 이후로 변경된 파일들)에 대한 정보를 제공한다.

CruiseControl의 결과 화면
따라서 CruiseControl를 사용하(여 지속적인 통합을 하)면:
- 프로그래머가 프로그래밍에 집중할 시간이 늘어나고,
- 오랜 시간이 걸리는 빌드를 퇴근한 후, 자동적으로 시행되게 할 수 있으며,
- 일일 빌드를 통해 모든 코드가 제대로 동작하는지 검증할 수 있습니다.
CruiseControl가 다른 도구들에 비해 가지는 장점들은:
- 버전 관리 통합 및 확장성이 풍부하고,
- 사용자 커뮤니티가 활동적이며,
- 한글 Windows 2003에서도 정상적으로 작동한다...고 하는군요. (참고: CruiseControl.NET이나 nAnt에서 한글 문제)
CruiseControl 설치시에 참고할만한 글이나 서적은 다음과 같습니다:
- 실용주의 프로그래머를 위한 프로젝트 자동화 (빌드, 디플로이, 모니터링): 강추!
- CruiseControl .NET 설치 일지(Subversion을 사용)
- 프로젝트 소스 빌드 툴, Cruise Control: Cruise Control 설정 및 실행
- Cruise Control 설정파일(config.xml) 살펴보기
지속적인 통합(CI)에 도움이 될만한 글들은 아래와 같습니다:
- 사람을 위한 자동화: Continuous Integration 서버 선택하기
- 사람을 위한 자동화: 연속 테스팅 (코드 베이스가 변경될 때마다 자동화 테스트 실행하기)
- XPer TDD- 테스트의 자동화
- Continuous Integration(영문): 리팩토링의 저자인 Martin Fowler 씨가 직접 쓴 CI에 대한 글.
CruiseControl외의 고려해볼만한 CI Server들은 다음과 같습니다:
마지막으로 현재 CruiseControl을 사용하고 계신 분이 있다면, 그 사용 후기를 Trackback(혹은 답글)으로 부탁드립니다. 불행히도 저는 프로그래머도 아니고, TDD를 반기는 프로그래머들을 만나지 못해서, 아직까지 CruiseControl를 사용해보지 못했네요.
'Game > Programming' 카테고리의 다른 글
상위 10, 공개 게임 엔진 (Top 10 Open Source Engines) (10) | 2007.05.28 |
---|---|
XP 개발을 위한 개발 생산성 향상 파노라마 (0) | 2007.05.25 |
XP를 활용한 어느 게임 회사의 하루 (A Day in the Life) (0) | 2007.05.22 |