RadarURL

응용 프로그래밍
2014.05.15 18:22

지속적인 통합 (Continuous Integration)

조회 수 1176 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

지속적인 통합(Continuous Integration)은 팀의 구성원들이 자신들의 작업한 내용을 자주 통합(통상 최소 매 일 단위)하는 개발 지침를 말한다.-개발자들은 하루에 몇차례씩 빌드를 수행한다.통합이 수행될 때마다 테스트를 포함한 자동화된 빌드절차에 의해 통합내용은 자동 검증 되며, 이로 인해 통합시 발생하는 에러를 조기에 발견할 수 있게된다. 많은 팀들이 이러한 접근이 소프트웨어 통합에서 발생할 수 있는 중요한 문제들을 줄여주고, 보다 빠르게 응집력이 높은 소프트웨어를 개발할 수 있게 해준 다는 점을 잘 알고 있다. 본 글은 지속적인 통합의 기술과 현재 사용에 관련된 내용을 정리한 간단한 리뷰이다.

01 May 2006

mf.jpg

마틴 파울러 (Martin Fowler)

Contents

나는 대규모 프로젝트를 처음 견학했던 때를 생생하게 기억한다. 당시 나는 꽤 규모가 큰 영국 전자회사에서 하계 인턴쉽을 수행 중에 있었다. QA그룹 소속이었던 내 관리자는 사이트를 둘러볼 수 있게 해주었고, 우리는 큐브가 가득 쌓여있는 상당히 우울한 느낌을 주는 창고로 들어섰다. 그 프로젝트는 2년이상 개발이 진행이 되고 있었으며, 최근 몇 달동안 통합 작업이 진행 중에 있다는 것을 들었다. 내 가이드는 그 어느 누구도 통합 작업을 언제 끝마치게 될지 장담을 할 수 없다고 했다. 이 일로 나는 소프트웨어 프로젝트의 일반적인 얘기를 하나 알게 되었다. :통합은 예측하기 어려운 기나긴 프로세스 라는 것을.

하지만 이는 문제가 되지 않는다. 내 동료들과 ThoughtWorks에서 수행한 대부분의 프로젝트 혹은 전 세계 많은 프로젝트에서 통합 작업은 큰 문제로 여겨지지 않는다. 개별 개발자들의 작업은 공유된 프로젝트 상태에서 단 몇시간 만 떨어져 나와 있을 뿐, 몇 분안에 공유 프로젝트 상태에 통합이 될 수 있다. 통합 수행 과정에서 에러는 조기에 발견되며 수정된다.

이러한 차이는 고가의 복잡한 툴의 결과가 아니다. 핵심은 팀의 모든 이는 작업한 내용을 소스코드 저장소에 자주(보통 일 단위) 통합을 한다는 단순한 지침에 있다.

지속적인 통합에 대한 최초 글“은 Matt이 2000년 ThoughtWorks 프로젝트에서 지속적인 통합을 합칠 수 있도록 도와준것 에 대한 우리의 경험을 서술한 글이다.

이 지침을 사람들에게 설명하면, 나는 두 가지 형태의 반응을 접하게 된다: “여기서는 그렇게 할 수 가 없어요”, “그렇게 해서 뭐가 크게 달라지는 없을 거에요”. 하지만 이 지침을 시도해본 사람들은 생각보다 매우 쉬우며, 개발할 때 매우 큰 차이점을 만들어낸다는 것을 알게된다. 그래서 세번째 반응은 다음과 같다. “예. 우리는 그렇게 합니다.-그렇게 하진 않고서 어떻게 개발을 할 수 있어요?”

“지속적인 통합”이라는 용어는 XP(Extreme Programming)에서 유래한 단어로써 XP에서 제시하는 12가지 지침 중 하나다. 처음 ThoughtWorks에서 컨설턴트로 시작할 때, 나는 내 프로젝트에서 이 기법을 사용하도록 독려하였다. Matthew Foemmel은 내 모호한 권고사항을 구체적인 활동으로 바꿨고, 띄엄 띄엄 발생하여 매우 복잡했던 통합작업이 나중에는 별 문제가 되지 않는 프로젝트로 변하는 것을 보게 되었다. Mattew와 나는 당시의 경험을 이 글의 초기 버전에 적었고, 이제 내 사이트 중 가장 인기있는 글중 하나가 되었다.

지속적인 통합이 디플로이를 위한 특정 툴을 요구하지 않지만, 우리는 지속적인 통합을 위한 서버를 사용하는 것이 좀더 효과적이라는 것을 알게되었다. 제일 잘 알려진 서버는 ThoughtWorks의 몇몇 개발자에 의해 최초로 개발돼, 이제는 많은 커뮤니티에서 유지되고 있는 오픈소스 Cruise Control이다.

원문보기
Continuous Integration

본 포스트는 Martin Fowler 선생께서 쓴 글을 번역 게재한 글이다. 선생은 본인의 글을 직접 게재하는 것을 허용하지는 않지만, 번역은 허용하고 있다.
원문에도 한국어 번역글로 등록이 되어있는데, 이 글보다 몇 년 앞서 더 훌륭한 솜씨로 한글로 번역해 놓은 글이 있으니 참조하면 좋을 듯 하다. (황상철님의 실용주의이야기 의 ‘지속적인 통합‘)

 

출처 : http://nangpuni.net/?p=617

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 927549
41 응용 프로그래밍 WIndows Application의 실행 속도 측정 file JaeSoo 2023.09.06 3185
40 응용 프로그래밍 [Apple] 엔터프라이즈 계정신청 (Enterprise Program) file JaeSoo 2023.03.27 267
39 응용 프로그래밍 [MSA] MSA란 무엇인가? 개념 이해하기 file JaeSoo 2023.01.26 210
38 응용 프로그래밍 메모리 영역 (code, data, stack, heap) file JaeSoo 2016.03.23 744
37 응용 프로그래밍 [SVN] Subversion 명령들 file JaeSoo 2016.02.06 966
36 응용 프로그래밍 IBM JDK 1.6 에서 Spring 2.5.2를 사용할 때 GenericTypeResolver 에서 NullPointerException이 발생하는 문제 JaeSoo 2016.01.27 785
35 응용 프로그래밍 [전자정부 표준프레임워크] 톰캣(Tomcat) 설치하기 file JaeSoo 2016.01.02 532
34 응용 프로그래밍 프로그래밍 격언 JaeSoo 2015.03.04 397
33 응용 프로그래밍 새로운 것을 배워야 좋은 프로그래머인가요? JaeSoo 2015.02.13 318
32 응용 프로그래밍 개발자&웹퍼블리셔 운영서버 배포관리는 어떻게 하시고 계신가요? file JaeSoo 2014.05.15 1287
31 응용 프로그래밍 버전관리 - 형상관리, 소스세이프, CVS, Subversion(SVN), GIT, mercurial(hg), Perforce JaeSoo 2014.05.15 1755
30 응용 프로그래밍 빌드를 자동화하라 (Automate the Build) JaeSoo 2014.05.15 1128
29 응용 프로그래밍 단일화된 소스 저장소를 유지하라. (Maintain a Single Source Repository.) JaeSoo 2014.05.15 1417
28 응용 프로그래밍 지속적인 통합으로 피처요구사항 빌드하기 (Building a Feature with Continuous Integration) JaeSoo 2014.05.15 1309
» 응용 프로그래밍 지속적인 통합 (Continuous Integration) file JaeSoo 2014.05.15 1176
26 응용 프로그래밍 변경관리/형상관리/빌드배포 자동화 연동 시 주요 이슈 JaeSoo 2014.05.15 1218
25 응용 프로그래밍 형상관리의 기능 범주 file JaeSoo 2014.05.15 1313
24 응용 프로그래밍 Conversion Struts to Spring MVC JaeSoo 2014.05.09 1251
23 응용 프로그래밍 Spring 3.1 Overview JaeSoo 2014.05.09 1145
22 응용 프로그래밍 Spring MVC 에서 ContentNegotiatingViewResolver를 이용한 단일 RequestMapping 으로 Muilti-View 처리하기 file JaeSoo 2014.05.09 1680
Board Pagination Prev 1 2 3 Next
/ 3


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너