Sanggu's blog




최상단 광고 코드

 추천 사이트

 애자일 이야기 : http://agile.egloos.com
 서명덕 기자의 인터넷 : http://itviewpoint.com
 비지니스 뉴스 : http://www.ciobiz.co.kr
 MOCOMSYS : http://www.mocomsys.com
 Apache Software : http://www.apache.org
 소프트웨어 기술경력관리: http://career.sw.or.kr
 한이음 (지식경제부): http://www.hanium.or.kr
 IT 기술 뉴스: http://www.bloter.net/
 IBM 티볼리 까페: http://cafe.naver.com/tivolitool.cafe
 JAVA jar 검색 : http://www.findjar.com
 VM Ware 가상화: http://www.vmware.com

2009년 10월 6일 화요일

Agile CI build process

이전에 문서로 정리한것을 blog에.


개발 프로세스 통합 build 환경.
1. Intro.

Project 관리를 효율적으로 하기 위하여 통합 build 환경을 구성하려고 한다. Build 환경은 web 환경에서 클릭 한번으로 build flow(SVN sync ? source build(source , test code) ? junit test ? 배포)를 가능하게 한다. Build 환경 구성의 목적은 “가장 적은 비용으로 최소한의 버그와 최적화된 application 생성 및 유지보수” 를 위해서는 build 환경 구성은 필수적이다. 또한 개발 IDE(eclipse, visual studio)에 independency 하다.


* 통합 build tool이 없는 경우 진행 사항.
1. Source code를 svn으로 submit.
2. Svn sync 받은 후 compile, error 경우 어느부분인지 console 또는 개발 IDE 또는 console에서 확인.
3. Compile한 후 필요한 파일 package.
4. 추출한 파일들 해당 server에 수작업으로 deploy.
위와 같은 방법을 build 할 때마다 매번 반복해야 함.

* 통합 build tool이 있는 경우 진행 사항.

1. 개발자들이 svn으로 submit.
2. 통합환경 CI에서 button 클릭.
3. 자동으로 (sync -> compile -> unit test -> package ->?deploy)후 결과 email로 통보







2. Development tools environments

1) CI 도구
CCNET : CI 로 build web application을 제공한다. 중요한 점은 svn sync 및 email alert, build (force , scheduler)를 할 수 있다. ( IIS- .net framework 2.0~ )

2) Build System
maven : Ant와 비슷한 build tool이지만 Maven은 프로젝트의 종속(dependency)관계, 개발자/소유자, 버전 별로 관리할 수 있다는 측면에서 Project Management 측면이 강화되었다고 할 수 있다. 또한 Document, Reporting 제공하고 중요한 ant의 build script를 통합할 수 있다.

3) Test Framework
JUnit : java source 코드를 위한 test code. 해당 class의 method는 TDD로 작성이 필요하며, source code와 test code는 one by one 이면 좋다. Bug가 있을 source code를 집중적으로 TDD 할 필요가 있다.

4) Source code 관리
TortoiseSVN-1.6.2 : svn client

3. CCNET 구성도

Button 한번 click으로 다음 단계를 진행시킴.

1. source sync (CVS, SVN)
2. build (ant, msbuild, maven)
3. unit test (Junit, Nunit)
4. source upload (target server)
5. Email alert
6. Build schedule trigger

4. Maven build tool과 continuum

Maven을 기반으로한 라이브러리 관리 방식은 Maven Repository에서 라이브러리를 관리하고 이를 Local Repository에 download하는 방식이다.

CCNET 과 비슷한 CI tools 로서, Maven build tool의 Repository 관리 , Maven project를 관리 할 수 있는 tool이다. 그러나 중요한 점은 해당 project의 source compile, test, mail alert, 등 통합 빌드 환경을 구성하는 것은 CCNET과는 비슷하다.

5. build process tools을 정리.

* Java language 아닐 경우.

tools
dependency
소스코드 관리
SVN
tools

Build 스크립트 or Tools
MSbuild , etc.
dependency
CI tool
CCNET
IIS, .net framework
Test framework
NUnit, NUintTest++

프로젝트 관리
Gforge


* Java language이고 Build script Ant 사용시.

tools
dependency
소스코드 관리
SVN
tools

Build 스크립트 or Tools
ANT
dependency
CI tool
CCNET
IIS, .net framework
Test framework
NUnit

프로젝트 관리
Gforge


* Java language이고 Build script Maven 사용시.

tools
dependency
소스코드 관리
SVN
tools
Build 스크립트 or Tools
MAVEN
JRE
CI tool
CONTINUUM
JRE
Test framework
JUnit

프로젝트 관리
Gforge

댓글 1개:

  1. 오호~우리팀에서 적용한 것과 거의 유사하네..
    SVN, MSBuild 등등 그외 Final Builder를 사용한다는 정도랄까?
    그리고 프로젝트 관리는 Open Source 인 Redmine 사용하고..
    요즘은 SVN이 대세인듯 하구려~ㅎㅎㅎ

    답글삭제