2008년 02월 07일
Continuous Integration ... Ch.1
Continous Integration 을 읽고 있는중이다. ^^; (이하 CI)
예전에 CI 툴 중 하나인 CruiseControl 을 설치하고 간단하게 돌려본 적은 있지만, 실제로 프로젝트에 도입을 해 본적은 아직 없다.
그래서, 이번기회에 도입을 해 볼까?? 라는 생각을 가지고 있다. 때마침 maven 이 회사의 표준이 되었으니 둘을 엮어보면 좋겠다는 생각이 든다.
CI 의 1장을 보면 What is a Build?? 라는 질문이 나온다.
우리나라의 많은 개발자들에게 이 질문을 던지면 뭐라고 대답을 할까? 대다수가 컴파일을 생각할 것이다. 사실 틀린이야기는 아니다.
가장 기본이 컴파일이고 수많은 IDE 에서 build 메뉴는 컴파일을 뜻하기도 한다.
하지만, 책에서는 단순히 컴파일뿐만 아니라 테스팅, 인스펙션, 배포, 피드백 까지의 일련의 과정을 build 라고 표현하고 있다.
그리고 해당 build 가 소스가 변경될 때 마다 이루어지는 것을 CI 라고 표현한다.
CI 시나리오를 살펴보면 아래와 같다.
예전에 CI 툴 중 하나인 CruiseControl 을 설치하고 간단하게 돌려본 적은 있지만, 실제로 프로젝트에 도입을 해 본적은 아직 없다.
그래서, 이번기회에 도입을 해 볼까?? 라는 생각을 가지고 있다. 때마침 maven 이 회사의 표준이 되었으니 둘을 엮어보면 좋겠다는 생각이 든다.
CI 의 1장을 보면 What is a Build?? 라는 질문이 나온다.
우리나라의 많은 개발자들에게 이 질문을 던지면 뭐라고 대답을 할까? 대다수가 컴파일을 생각할 것이다. 사실 틀린이야기는 아니다.
가장 기본이 컴파일이고 수많은 IDE 에서 build 메뉴는 컴파일을 뜻하기도 한다.
하지만, 책에서는 단순히 컴파일뿐만 아니라 테스팅, 인스펙션, 배포, 피드백 까지의 일련의 과정을 build 라고 표현하고 있다.
그리고 해당 build 가 소스가 변경될 때 마다 이루어지는 것을 CI 라고 표현한다.
CI 시나리오를 살펴보면 아래와 같다.
1. 개발자가 version control 저장소에 소스코드를 커밋한다. 한편에서는 통합빌드머신에 있는 CI 서버가 저장소의 변경사항에 대해 지속적으로 체크한다.
2. 커밋이 이루어지고 난 뒤, CI 서버는 version control 저장소 에서 변화가 이루어진것을 감지하고, 최신소스를 내려받아 빌드스크립트를 실행한다.
3. CI 서버는 빌드결과에 대하여 특정 프로젝트 맴버들에게 이메일을 통하여 알려준다. (사실 이메일뿐 아니라 SMS, RSS 등 다양한 방법으로 피드백을 줄 수 있다.)
4. CI 서버는 다시 지속적으로 version control 저장소에 변화가 있는지 체크한다.
# by | 2008/02/07 11:58 | 자동화 | 트랙백(1) | 덧글(5)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : CI 시나리오
참조 : Continuous Integration(아마존 별 다섯) Countinuous Integration은 다음과 같이 매우 간단한 원리로 동작합니다. 1. 개발자가 코드를 버전 관리 저장소에 커밋한다. 그 즉시, 통합 빌드 머신에 있는 CI 서버는 저장소의 변경사항을 꺼내온다. 2. 커밋이 완료 된 후, CI 서버는 버전 관리 저장소에 발생한 변화를 확인하고, 저장소에서 최신 버전의 소스를 받은 뒤에 소프트웨어를 통합하는 빌드를 실행한다......more
심심해 죽겠어요. ㅠ.ㅠ