원문 : http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html



지속적인 통합(CI)?
소프트웨어 빌드를 만들어내는 절차를 쉽게 하고 안정화 하기 위한 실천방법들의 세트.
CI는 아래와 같은 난관이 있는 개발팀을 도와준다

소프트웨어 빌드 자동화
당신은 버튼을 하나 누른다던가, 혹은 미리 일정을 정해놓고, 그것도 아니면 특정한 이벤트에 대한 반응 같은 식으로 CI를 이용해서 어떤 소프트웨어 구조물(이하 아티팩트, Artifact)의 빌드 프로세스를 실행시킬 수 있다. 만일 당신이 소스로부터 아티팩트를 빌드하고자 할 때, 당신의 빌드 프로세스는 특정 IDE나 컴퓨터, 혹은 특정인에 속박되지 않게 된다. (당연히 속박되어서는 안 된다.)

지속적이고 자동화된 빌드 검증
CI 시스템은 새로운 소스코드나 수정된 소스코드가 체크인 될때마다 끊임없이 빌드가 실행되도록 설정될 수 있다. 이 말은, 어떤 소프트웨어 개발팀이 주기적으로 신규 코드나 수정된 코드를 체크인 하는 동안, CI 시스템이 새로운 코드가 빌드를 깨뜨리는지의 여부를 지속적으로 검증할 수 있다는 뜻이다. 이로인해 개발자들이 상호의존적인 컴포넌트들의 변경에 대해 각각 점검해야만 하는 필요성을 줄여준다.

지속적이고 자동화된 빌드 테스트
빌드 검증의 확장에 해당하는 이 프로세스는, 신규 코드나 수정된 코드가 미리 정의된 빌드 아티팩트의 테스트 스위트 실패를 일으키지 않는다는 것을 보증해 준다. 실패(Failures)는 빌드 검증과 테스트 둘 다에 있어 해당 작업이 실패했다는 '통지(notification)'를 관련 부서들에게 보내게 되는 방아쇠(...trigger)가 된다.

빌드 후속 절차 자동화
한 소프트웨어 아티팩트의 빌드 생명주기에서는 빌드 검증과 테스트가 완료된 다음에도 문서 생성, 소프트웨어 패키징, 그리고 해당 아티팩트들을 실행환경이나 소프트웨어 저장소로 전개(deploy)하는 것 같은 자동화될 수 있는 추가적인 작업이 필요할 수 도 있다. 이런 형태로 아티팩트들이 사용자들이 사용할 수 있도록 신속히 만들어 질 수 있다.

+ Recent posts