출처 : http://www.pdfpro.co.kr/blog/jeong/8

 

여러분의 팀에서는 일일빌드를 하고 있습니까? 아주 새로운 개념도 아니고, 별다를 것도 없는 것이지만 몇 년 전 국내에 조엘 온 소프트웨어가 알려지면서 많은 개발자들의 관심을 받고 있습니다.

 

일일빌드는?


일일빌드는 다음과 같은 장점이 있습니다.

 

1.     테스트팀 또는 마케팅 부서에서 언제나 최신 버전의 제품에 접근할 수 있게 해 줍니다. 이는 버그트래킹 시스템과 연계해 사용할 경우 더욱 큰 장점이 됩니다. 개발자가 어떤 버그 또는 이슈를 해결하면, 버그트래킹 시스템에 해결 표시를 하게 됩니다. 이를 확인한 테스터는 최신 버전의 릴리즈를 이용해 해결 여부를 쉽게 확인할 수 있습니다.

2.     좀더 신중한 체크인을 가능하게 해 줍니다. 개발자가 빌드가 되지 않는 상태에서 소스코드를 체크인을 하거나, 새로 추가된 파일을 체크인 하지 않으면, 팀 전체가 작업을 할 수 없는 상황이 벌어진다. 자동화된 일일빌드는 이러한 상황을 빨리 알 수 있게 해 준다.

3.     일일빌드의 로그와 바이너리를 보관하면 예전의 버그가 새로 발생하는 등과 같은 문제를 쉽게 해결할 수 있다. 보관된 바이너리에서 이진검색을 하면 최대 log n (n은 로그의 개수)만에 문제가 된 수정을 체크인을 추적할 수 있다.

 

이 외에도 여러 장점들이 있겠지만, 아직 일일빌드 시스템이 만들어지지 위한 팀에서 쉽게 일일빌드 시스템을 구축할 수 있도록 실용적인 이야기들을 하려 합니다.

 

일일빌드 시스템 구축하기

 

1.     먼저 버전 컨트롤 시스템을 사용하고 있어야 합니다. 아직도 버전 컨트롤을 하지 않고 있으시다면, 당장 구축 하시기를 추천합니다. 저희 회사에서는 오픈 소스인 Subversion을 사용하고 있습니다.

2.     빌드를 위한 하드웨어가 필요합니다. 부득이한 경우 개발자가 사용하고 있는 워크스테이션을 사용할 수도 있겠지만 아무래도 불편하겠지요? 빌드 전용 장비를 장만하시던가 여의치 않으면, 성능 좋고 바쁘지 않은 사내 서버를 이용하시면 됩니다. 물론 이 기계에 개발 환경을 똑같이 마련할 수 있어야 합니다.

3.     이제 일일 빌드를 수행하는 스크립트를 작성합니다. 스크립트는 윈도우 환경이라면 배치 파일도 좋고, 유닉스 환경이라면 쉘스크립트를 이용하면 됩니다. 더 정교한 제어를 위해서라면 Perl 또는 Python도 좋습니다. 스크립트의 내용은 1) 최신 버전의 코드를 체크아웃 합니다. 2) 모든 프로젝트를 컴파일 하고 링크하여 바이너리를 만듭니다. 3) 필요하다면 설치 패키지(인스톨러)를 빌드 합니다. 4) 빌드 결과를 이메일 등과 같은 방법으로 모든 팀원들에게 알려 줍니다.

4.     스크립트를 테스트 해 봅니다.

5.     스크립트가 성공적으로 만들어 졌다면, 윈도우 스케줄러나 유닉스의 cron 등을 이용해 주기적으로 실행되도록 합니다. 비록 일일빌드이지만 최소 하루에 한번, 가능하다면 자주 해 주는 것이 좋습니다.

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히

댓글을 달아 주세요