지속적인 통합

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

소프트웨어 공학에서, 지속적인 통합(continuous integration, CI)은 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것이다. - 작은 단위의 작업, 빈번한 적용. 지속적인 통합은 모든 개발을 완료한 뒤에 퀄리티 컨트롤을 적용하는 고전적인 방법을 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점이 맞추어져 있다.

이론[편집]

변경내용을 올릴 때, 개발자는 작업된 현재의 코드 베이스의 복사본을 전달한다. 다른 개발자들이 변경된 코드를 소스 코드 저장소에 제출하게 되면서, 전달된 복사본이 저장소 코드에 반영된 것이 서서히 줄어들게 된다. 개발자들이 저장소에 코드를 제출할 때, 그들의 복사본이 전달이 되기 때문에 먼저 저장소의 변경 내용을 자신들의 코드에 반영되도록 코드를 업데이트해야 한다. 저장소는 더많은 변경된 내용과 작업들을 가지고 있기 때문에 개발자들은 자신들의 변경 내용들을 제출하기 전에 반드시 업데이트해야 한다.

언젠가는 저장소가 개발자들의 베이스라인과는 너무 많이 달라지게 되어서 자신들의 변경 내용을 적용하기에는 너무 많은 시간이 초과되어 버리는 "통합의 지옥"[1] 이라 불리는 상황에 빠지게 된다. 가장 최악의 시나리오는, 개발자들이 자신들의 변경 내용들을 취소하고 작업들을 완전히 되돌려야 할 수도 있다.

지속적인 통합은 초기에 그리고 자주 통합해서 "통합의 지옥"의 함정을 피하는 것을 내포하고 있다. 지속적인 통합은 재작업을 줄여서 비용과 시간을 줄이는데 초점이 맞추어져 있다.

지속적인 통합의 반대 이론/방법이 있다: 작업한 것을 제출하기 전에, 각각의 프로그래머들은 반드시 완벽한 빌드와 테스트를 해야 한다. 모든 프로그래머들은 저장소로부터 프로젝트를 업데이트하는 것으로 하루를 시작해야 한다. 그러면, 그들은 모든 것들을 최신의 상태로 유지할 수 있을 것이다.

주석[편집]

  1. Cunningham, Ward (05 Aug 2009). Integration Hell. 《WikiWikiWeb》. 19 Sept 2009에 확인.