확장성 좋은 CI (Continuous Integration) tool CruiseControl

CI(Continuous Integration) 
직역하면..  지속적인 통합..


프로그래머가 소스를 공용 저장소에 커밋시키면.. 그때마다 바로 빌드와 테스트를 거치며 하나로 통합시키는 과정을 의미한다..


다양한 취향과 성격을 가진 프로그래머들이 하나의 프로젝트를 위해 각자가 작성한 코드들을 하루에 4~5번 커밋시키게 되면
5명이 작업했을때 전체 소스코드의 변화는 하루에 20~25번의 다양한 변화를 겪게 된다.


만약 여기 저기서 새로운 기능 추가와 버그 수정을 위한 코드들을 커밋 하는 상황이 벌어졌을때.. 게다가 제대로 된 설계과정의
공유나 커뮤니케이션이 별로 없는.. 말 수가 적고 서로 수줍어 하는.. 프로그래머들끼리만 모였더라면....;;







이건 마치 전쟁터와 같다.. 






빌드는 어찌어찌 될 수도 있겠지만.. 이렇게 만들어진 프로그램이 우주왕복선의 연료 추진 제어 장치의 핵심프로그램이였고
당신이 우주 여행을 떠나기 위해 조종석에 누워있다고 상상해 보면... 정말 지상최대의 스릴감을 맛볼 수 있을 것이다..



"스택을 깨면 무기징역, 힙을 깨면 사형...."
이라는 말도 있지만..

빌드를 깨면..  일단 퇴근을 못한다....



빌드를 깨는 일은 릴리즈 될 프로그램에 대한 단일 데미지 뿐 아니라 같이 일하는 팀원들에게 광역 물리 데미지를 주게 된다...



어쨌든 하나의 코드가 저장소에 커밋될 때마다 이 코드가 기존코드들과 바로바로 통합과정을 거치며
기존의 자동화된 테스트까지 모두 통과하는지를 계속 검사할 수만 있으면.. 조금 더 자신감이 생길 수 있을 것만 같다..


잡설이 많았지만.....
이러한 CI 를 자동으로 해주는 툴들이 꽤 나와있다.. 그 중에 요즘 보고 있는것이 CruiseControl 이라는 놈인데...
( .NET 용 :  http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET  )

처음에는 조금 복잡한듯 보였지만.. 나름대로 확장성도 좋고.. 다른 개발 도구들과도 잘 붙는 점이 맘에 든다...

한가지 문제는 이넘이 CPPUNIT 을 제대로 지원하지 못하고 있다는 점인데...
이 부분에 대해서 조금 더 연구를 해봐야 할듯 하다..

지금 시작하려는 프로젝트에서는 대충.. VS.NET + SVN + CPPUNIT 정도로 사용할 것을 생각하고 있는데..
CI 툴을 조사하는 과정에서 CruiseControl 은 지금까지는 괜찮은듯 하다...

외부툴과의 확장성은 아래의 링크에서 확인할 수 있다..

-------------------------------------------------------------------------------------------------------
http://confluence.public.thoughtworks.org/display/CCNET/Using+CruiseControl.NET+with+other+applications

Source Control Systems

.NET Tools

Build tools

Test, Coverage and Metric tools

Java tools

C/C++ tools

Test, Coverage and Metric tools

Other tools

Environments

-------------------------------------------------------------------------------------------------------

by 제씨 | 2007/06/25 23:30 | 프로그래밍 | 트랙백 | 덧글(0)
트랙백 주소 : http://jessie23.egloos.com/tb/345092
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

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