본문 바로가기
Homo Architect/Things Every SW Architect Should Know

지속적으로 통합하라.

by javauser 2009. 8. 25.

- David Bartlett

Dave Bartlett은 프로그래머, 개발자, 아키텍트, 관리자, 컨설턴트, 교육자로서 25년 이상의 경험을 가진 열정적인 소프트웨어 전문가이다. 그는 현재 사설 컨설팅 회사인 Commotion Technologies 사에서 일을 하고 있으며, Pennsylvania 주의 Great Valley에 위치한 Penn State 대학의 대학원 과정에서 강의 중이다. 현재 그의 주요 작업은 미 필라델피아 연방준비은행에서 연방준비 시스템과 미 재무부 내에서 사용하는 웹, 포탈, 복합 어플리케이션 설계와 구축에 대해 조언을 하는 것이다.





프로젝트 개발에서 “빅뱅” 과 같은 빌드는 이제 사망했습니다. 어플리케이션 아키텍트이건 엔터프라이즈 아키텍트이건 , 아키텍트는 지속적인 통합 방법과 모든 프로젝트에 대한 도구 사용을 촉진하고 장려해야 합니다.

지속적인 통합 (CI, continuous integration) 이라는 용어는 디자인 패턴에서 마틴 파울러 가 처음 사용했습니다. CI는 통상 자동빌드와 테스팅 같은 작업에 대해 특별하게 설정이 된 통합 서버 상에서 일정 간격으로 자동 빌드와 어플리케이션에 대한 테스팅을 보장하는 기법과 도구로 이루어집니다. 단위 테스트 기법과 자동 빌드 도구와 같이 엮여진 도구의 융합은 CI를 오늘날 소프트웨어 프로젝트를 수행하는데 있어서 반드시 필요한 항목 중의 하나로 만듭니다.

지속 통합은 소프트웨어 개발 프로세스에 대한 전체적인 특징을 목표로 합니다. 즉, 이는 소스 코드와 실행 어플리케이션 간의 통합 지점을 의미합니다. 많은 부분의 개발 공수가 이 통합지점에 들어가게 되며 이 지점에서 테스팅됩니다. 여러분은 아마 ‘초반에 그리고 빈번하게 빌드하라(build early and often)’ 라는 말을 들었을 것입니다. 이는 개발의 이 지점에서 예상 밖의 일이 없도록 하기 위한 위험예방 기법이었습니다. ‘초반에 그리고 빈번하게 빌드하라’는 이제 CI로 대체되었으며, 여기에는 빌드 뿐 아니라 개발 팀 내의 커뮤니케이션과 공동 작업을 향상시키는 기능 또한 추가되었습니다.

CI 구현에서 가장 눈에 띄는 부분은 빌드이며, 이는 통상적으로 자동화됩니다. 수동 빌드를 할 수 있는 능력이 있어도 빌드는 밤에 시작하거나 소스코드 변경으로 인해 수행될 수도 있습니다. 일단 빌드가 시작되면, 소스코드의 최종 버전은 레파지토리로부터 가지고 오고, 그리고 나서 CI 도구가 프로젝트의 빌드를 시도하고 그 다음에 그것을 테스트를 합니다. 그리고, 마지막으로는 빌드 프로세스에 대한 상세한 결과를 통지하도록 합니다. 이러한 통지는 이메일이나 인스턴트 메시지를 포함한 다양한 형태로 보내질 수 있습니다.

지속 통합은 좀 더 안정적이고 목표 지향적인 개발 성과를 제공할 것입니다. 아키텍트로서 CI를 좋아할 수도 있지만, 더 중요한 것은 여러분의 조직과 개발 팀이 더 효과적이고 더 효율적이 될 수 있다는 것입니다.


원문 : 모든 아키텍트가 알아야 하는 97가지 사실 - Continuously Integrate
반응형