노무현 대통령 배너
이 기사는 마틴파울러의 Continuous Integration을 번역한 기사임을 미리 밝혀둡니다.

지속적인 통합 입문

그러면 지속적인 통합을 적용하고 싶다면 어디서 부터 시작해야 할까 ? 위에서 언급한 프랙티스 전체 셋트를 구성하게 되면 모든 이점을 얻을수 있다. 하지만 그렇다고 이 모든것을 한꺼번에 시작할 필요는 없다.

여기에 어떤 고정된 해결책이 존재하는것은 아니다. 많은 부분이 여러분들의 팀과 환경에 달려있다. 그러나 이를 적용하는데 배워야 할 것들이 몇가지 있다.

첫번째 단계중 하나는 빌드를 자동화 하는 것이다. 명령어 하나로 전체 시스템을 빌드 할수 있도록 필요한 모든것은 소스 컨트롤로부터 얻을수 있어야 한다. 많은 프로젝트에서 이것을 사소한 것으로 생각하는데 이것이 다른 어떤 작업보다 중요하다. 처음에 필요에 따라 빌드를 할수도 있고 자동으로 밤에 빌드를 할수도 있다. 이런 일들이 지속적인 통합은 아니지만 자동으로 밤마다 빌드하는것 그중 한 단계로 볼 수 있다.

자동화된 테스트를 빌드에 추가하라. 잘못될수 있는 중요한 부분을 확인해서 자동화 테스트에 이 결함이 드러날수 있도록 하라. 기존 프로젝트에서는 특히 정말 잘된 테스트를 빨리 만든다는게 어렵다. 빌드에 테스트를 추가하는것은 시간이 걸린다.  언젠가는 이 모든 진부한 작업들을 시작해야만 한다. 큰일은 하루 아침에 이루어 지는건 아니다.

커밋 빌드의 속도를 높이도록 노력하라. 지속적인 통합을 위한 빌드가 몇시간이 걸리더라도 아예 안하는것보다는 낫다. 그러나 10분이라는 빌드 시간에 대한 가이드를 지키는게 더 좋다. 보통 시스템의 느린 부분에 대한 종속성을 없애기 위해 코드 기반의 많은 수정작업이 필요하기도 한다.

새로운 프로젝트를 시작한다면 지속적인 통합을 같이 시작하라. 빌드 시간을 살펴보고 10분 규칙보다 더 느리면 가능한 조치를 취해야 한다. 코드가 커지기 전에 가능한 빨리 필요한 구조개선을 취하는게 노력을 줄일 수 있다.

도움을 청하라. 지속적인 통합을 적용해본 사람을 찾아라. 다른 새로운 기법처럼 어떤 결과가 나와야 하는지 모르는 사람에게는 CI를 적용하는게 어렵다. 멘토를 찾는데는 돈이 들수도 있다. 하지만 시간이나 생산성을 높여줄 것이다.(ThoughtWorks는 이 영역에 대해 컨설팅을 해왔다. 결국 우리가 했던 많은 실수를 다른 사람들도 할 것이다.)

크리에이티브 커먼즈 라이선스
Creative Commons License
TAG