[Continuous Integration] Continuous Integration이란?
Continuous Integration(이하 CI)은 XP(eXtreme Programming)의 Practice중 하나이며
Daily Build라는 이름으로도 알려져 있다.

주된 내용은 통합 Build와 간단한 기능 테스트를 가능한 자주(적어도 하루에 한번) 수행하라는 것이다.

서로 다른 개발자에 의해 개발된 단위 모듈들을 통합하여 Build가 정상적으로
수행되는지 알수 있으며, 이런 과정을 자주 수행함으로써 수정된 코드가 문제를
발생할 경우 문제의 원인을 빨리 찾아 낼수 있다는 것이 CI의 가장 큰 장점이다.

만일 1주일에 한번씩 통합 빌드를 하는 경우를 생각해 보자.
하루에 개발자가 약 100줄의 코드를 수정한다고 가정할때 일주일에 5일을 일한다고 하면
500줄의 코드 수정이 일어날 것이고 여기에 프로젝트에 참여하고 있는 개발자의 수를
곱하면 문제발생시 얼마나 많은 양의 코드를 검토해 보아야 하는지 나올 것이다.
반면 하루에 한번 빌드를 한다면 그 양은 1/5로 줄어들 것이다.
거기에 Source Control system에 새로운 코드가 추가될때 마다 build가 자동으로
일어난다면 문제를 찾는 것은 더 쉬워질 것이다.

Build가 정상적으로 이루어 지면 간단한 기능 테스트를 수행하여 기능이 정상적으로
수행 되는지 확인하는 것도 잊지 말아야 한다.
통합 Build가 되었다고 논리적인 bug가 존재하지않는다는 것은 아니므로 각 모듈의
기능 수행여부를 테스트를 통해 확인해야 한다는 것이다.
(McConnell 아저씨는 이걸 Smoke Test라고 명명했다.)

다음에는 .NET기반의 CI tool들에 대해서 알아보도록 하겠다.

<참고자료>
Continuous Integration by Martin Fowler
Daily Build and Smoke Test by Steve McConnell
by zplanet | 2004/10/26 15:14 | Agile in .NET | 트랙백(1) | 덧글(1)
트랙백 주소 : http://zplanet.egloos.com/tb/775434
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from There Must B.. at 2007/05/28 12:20

제목 : CruiseControl로 '한 방 빌드'를 만들자!
지난번의 "실전 애자일 게임 개발"의 지속적인 통합(Continuous Integration)을 하려면, 코드가 제출될 때마다, 구축을 해야 합니다. 이걸 일일히 하려다 보면, 프로그래밍할 시간을 앗아갈 것이 틀림없죠. 그런데 만약 이걸 놀고 있는 PC에게 대신시킬 수 있다면? 이걸 자동화해주는 게 바로 "CruiseControl"입니다. CruiseControl이 하는 일은 크게 두 가지입니다: 자동 구축: 정기적으로 혹은 필요할 때마다(예:......more

Commented by moma at 2004/11/16 10:44
호~ ~ ~ 평소에도 이런 진중한 말들을 하면 내가 존경해 마지 않을 텐데...

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >