|  |  |
|
넛셸에서의 CI
CI 프로세스는 소프트웨어 컴포넌트를 만드는 것인데 많은 경우 저장소(서브버전이나 ClearCase 같은)의 코드가 바뀌는 것을 뜻한다. CI의 장점은 간단하다. 소프트웨어를 만들 때 조기에 결점을 잡아낼 수 있다는 것이다. 소프트웨어 개발 중 나중에 발견하면 비용이 많이 들기 때문에 이는 큰 장점이다.
도구 대 프로세스
CI는 실제로는 프로세스지만 지속적 통합은 대체로 하나 또는 그 이상의 특정 도구와 결합한다. 본 튜토리얼에서 허드슨을 CI 서버로 설치, 설정, 사용하는 방법에 대해 다루겠지만 CI는 도구 그 이상이라는 것을 꼭 염두에 두기 바란다. 사실 사용하는 도구는 CI에서 그다지 중요하지 않은 부분이다. CI가 하는 일은 코드 저장소에서 변화를 감지할 때 빌드를 실행하는 것뿐이기 때문이다. 실행하는 데 사용하는 도구보다 빌드 자체가 훨씬 더 중요하다.
CI 시작하기
CI를 시작하려면 다음 세 가지가 필요하다.
- 앤트나 메이븐 같은 플랫폼에 자동화된 빌드 프로세스
- CVS나 서브버전 같은 코드 저장소
- 허드슨같은 CI 서버(크론 잡(cron job)이 충분해도)
이들 컴포넌트 각각을 자세히 살펴보자.
자동화된 빌드
CI 프로세스는 소프트웨어를 통합하는 것이고 가끔 빌드 사용을 통해 이루어진다. 자바 세상에서 앤트는 어디나 존재하는(ubiquitous) 빌드 플랫폼을 의미한다. 앤트로 컴파일(compilation)이나 테스트, 소프트웨어 검사나 배치 같은 수동으로 해야 하는 작업을 자동으로 안전하게 수행할 수 있다. 모든 것이 통합됐을 때 빌드 전략이 성공적인 CI 프로세스의 가장 중요한 요소란 걸 알 수 있을 것이다. 코드 컴파일 이상의 일을 수행하는 탄탄한 빌드가 없다면 CI의 위력은 사라진다.
소스코드 관리
CI가 제대로 자리를 잡으려면 서브버전이나 CVS 같은 SCM(Source Code Management: 소스 코드 관리) 시스템이나 저장소가 있어야 한다. CI 서버는 변화를 감지하기 위해 SCM 저장소를 폴링한다. 변화를 찾기 위해 CI 서버는 코드를 꺼내(check out) 오고 (또는 로컬 샌드박스를 업데이트하고) 빌드를 실행한다. 이는 대개 로컬 환경에서 실행하는 것과 같은 빌드다.
CI 서버
성공적인 CI 프로세스를 위해 SCM 저장소를 모니터하고 변화를 감지할 때 빌드를 작동하는 자동화된 프로세스를 가지는 것 또한 중요하다. CI 서버의 호스트는 자바 플랫폼의 오픈 소스와 상용 소스에서 모두 가능하다. 모두 기본 설정이 비슷하고 특정 SCM을 모니터하는 데 최적화돼 있으며 변화를 감하면 빌드를 작동한다. 모든 CI 서버에는 각각 옵션이 있다. 허드슨은 특히 쉬운 설정과 매력적인 플러그인이라는 측면에서 흥미롭다. 이 기능들은 특히 테스트 결과를 바로 볼 수 있게 한다.
|  |
|