CruiseControl로 '한 방 빌드'를 만들자!
Game/Programming 2007/05/28 12:30 |지난번의 "실전 애자일 게임 개발"의 지속적인 통합(Continuous Integration)을 하려면, 코드가 제출될 때마다, 구축을 해야 합니다.
이걸 일일히 하려다 보면, 프로그래밍할 시간을 앗아갈 것이 틀림없죠. 그런데 만약 이걸 놀고 있는 PC에게 대신시킬 수 있다면? 이걸 자동화해주는 게 바로 "CruiseControl"입니다.
CruiseControl이 하는 일은 크게 두 가지입니다:
- 자동 구축: 정기적으로 혹은 필요할 때마다(예: 코드가 제출될 때마다) 자동으로 구축을 시도한다.
- 결과 보고: 구축이 완료된 후, (HTML 형태의) 결과 보고서를 생성한다.
- 왼쪽에서는 해당 프로젝트의 이름과 이전 빌드에 대한 정보를,
- 오른쪽에서는 빌드의 결과(예:컴파일 오류, 테스트 결과, 이전 빌드 이후로 변경된 파일들)에 대한 정보를 제공한다.
따라서 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 |
|---|---|
| CruiseControl로 '한 방 빌드'를 만들자! (4) | 2007/05/28 |
| XP 개발을 위한 개발 생산성 향상 파노라마 (0) | 2007/05/25 |
| XP를 활용한 어느 게임 회사의 하루 (A Day in the Life) (0) | 2007/05/22 |
Trackback Address :: http://blog.kaykim.org/trackback/76
-
Subject: CruiseControl .NET 설치 일지
Tracked from KAISTIZEN 2007/05/29 17:40 Delete가정 소스버전관리시스템이 있다. 여기서는 Subversion을 사용한다. CI 시스템 구축 .NET F..
댓글을 달아 주세요
트랙백 보냈는데, 문자가 깨졌네요. 흑.
사이트에 들러서 재미있는 글들을 읽느라 시간가는 줄 몰랐습니다. 그런데 아이미디어에서 도입하려고 했던 C++에 적합한 CI Server는 어떤 것이었나요?
어, 재밌겠네요! 해보고 싶어라..영어의 벽을 보고 서성거리는 1인입니다..
ㅡㅡ;
호오, 좋군요.
언제 윈도우 환경에서 협업할 때 한 번 써봐야겠어요. 오늘에서야 Apache ANT, PHP PEAR, PHP PECL에 대해 찾아보다가 Continuous Integration에 대한 글을 봤어요. 전 정말 뒤처져 있군요. 시간나면 TDD 책도 읽어봐야 하는데 말이죠. PHPUnit을 사용해서 유닛테스팅 중인데, 유닛테스팅을 생전 안 해 본 저로서는 곤욕입니다.