기술트렌드 | Konan Technology - Part 2
블로그기술트렌드전체보기

기술트렌드

코난테크놀로지의 새로운 지식 정보를 여러분에게 공유합니다.

[검색] 코난테크놀로지의 품질 이야기? CI (Continuous Integration, 지속적 통합)

기술트렌드
2012-02-24

?코난테크놀로지의 대표 솔루션은 독크루저(DOCRUZER)라는 대용량 통합 검색 솔루션입니다.
독크루저는 국내 기업검색 솔루션 시장에서 가장 많이 구축된 제품이기도 합니다. 2003년에 출시된 이후 현재까지
10여 년이 넘는 기간 동안 지속적으로 연구 개발을 진행하면서 현재 3.x버전까지 업그레이드를 진행해왔습니다.

통상적으로 한 제품을 10여 년이라는 기간 동안 연구 개발하고,
산업과 인터넷 환경에 맞게 변화하는 고객의 복잡, 다양한 요구사항을 그 제품에 반영하고,
높은 품질보장과 짧은 제품 개발을 위해서는 그 개발과정이 점점 자동화가 돼 가는데요,
제품 개발분야에서는 이 자동화를 말할 때 CI (Continuous Integration, 지속적 통합) 라는 용어를 사용합니다.
오늘은 여러분과 함께 이 “CI”라는 기술에 대해서 알아볼까 합니다.

CI는 빌드 ? 테스트 ? 배포 각 단계를 자동화하고, 품질을 수치화해서 코드 품질의 가시성을 확보하는
Agile 방법론 중의 하나인 XP(eXtream Programming) 개발 방법론의 실천 사항 중에 하나입니다.

오늘날 개발 방법이 여러 단계로 진화하면서 기존의 폭포수 개발 모델(waterfall model)의 품질체계인 V-Model을 Agile 방법론의 등장으로 제품 시기를 앞당길 수 있도록 자동화하는데 노력하고 있습니다.

 

 

 

 

?????????????????????????????????????????????????????????????????????????????????? [그림 1] V-Model

 

 

CI는 [그림 2]와 같은 환경을 구축하는 것이며, 이는 아래와 같은 장점이 있습니다.

 

 

    • 소스 코드를 컴파일-테스트-검사-배치하는 일련의 처리과정을 자동화한다.

 

    • 개발자의 소스 코드 변화를 자동으로 인지하고 매일 자동 빌드를 통해서 코드의 통합을 빅뱅(Big Bang)방식이 아니라 매일 점진적인 방식으로 진행한다.

 

    • 자주 통합함으로써 통합으로 인해 발생할 수 있는 문제를 조기에 발견하고 해결한다.

 

  • 빌드 과정에 테스트를 포함해서 결함을 초기에 발견하여 전체 소프트웨어 품질을 높이는 기술이다.
    ?

 

 

[그림 2] CI 시스템

 


 

이러한 장점을 가지고 있는 CI는 마틴 파울러(Martin Powler), 파울 듀발(Paul M Dubal)이 주창하였으며 소프트웨어 개발에서는 아주 새로운 기술은 아닙니다. 빌드 통합이라는 관점에서 출발했지만, 이 기술은 코드를 개발 초기에 자주 통합하고, 통합한 빌드가 잘 동작하는지 확인하고, 조기에 문제를 파악하여 개발적 관점에서 리스크를 없앨 수 있다는 특징이 있습니다.

또한 CI를 활용한다면 정량적인 수치를 즉시에 확인 할 수 있기에 품질 활동에 도움을 줄 수 있습니다. 즉 품질 지표 중 코드 품질인 Code Coverage, Code Convention, Static Analysis, Cyclomatic Complexity와 같은 지표를 매일 자동화 하여 숫자로 상태를 볼 수 있습니다.

2009년에 실시한 애자일 개발 설문 조사결과 (2009 The state of agile development survey result, 88개국 2,570명) 사용하는 애자일 실천법(Agile Practice) 응답 결과에서도 볼 수 있듯이 활용의 빈도가 높습니다.

 

 

 

[그림3] Agile Practice (출처 : 2009 The state of agile development survey result)

 

 

 

자, CI에 대한 개요를 설명해 드렸는데요 실제 코난테크놀로지에서는 어떻게 활용하고 있는지 살짝 공개해드리겠습니다.

 

일단 CI를 구축하기 위해서는 Hudson과 같은 빌드 자동화 툴이 있어야 합니다. Hudson은 공개 소프트웨어로 손쉽게 사용 할 수 있기에 많은 개발자 분들이 사용하고 있습니다. 코난테크놀로지에서는 Hudson외에 CI 상용 툴을 사용하여 빌드 자동화를 실행하고 있습니다. CI 구축을 위해서 코난테크놀로지만의 CI Process를 개발하여 기존에 Build Automation에 KCS와 CPD, API Test, Regression Test을 자동화 할 수 있는 형태로 Process를 개선했습니다.

 

 

?

 

[그림 4] Build Process

 

?

 

또한 실제 구축에서는 빌드 스크립트를 개발자 영역과 QA영역으로 나누어서 서로간에 독립적이면서도 자동화하여 각 각의 영역별로 결함에 대해 신속하게 대응할 수 있도록 구성했습니다.

 

 

 

[그림 5] Build Script 단계

 

 

이러한 빌드 자동화를 효율적으로 사용하기 위해서는 코딩소스를 저장해 주는 Repository와 문서관리 및 이슈관리시스템간의 연동이 유연하게 이루어 져야 합니다. 코난테크놀로지에서는 이러한 시스템 활용을 통해 품질을 높이기 위한 노력을 지속적으로 해오고 있습니다.

결과적으로 이러한 CI환경을 구축하고 프로젝트를 적용한 결과 코딩 표준 준수율을 100%로 올렸으며, 결함 악성율을 기존 대비 20% 이상의 향상을 가져 오는 결과를 가져 왔습니다. 빌드에 따른 시간을 줄여 생산성을 극대화하는 효과를 가져온 셈이죠.

코난테크놀로지는 제품을 개발하고 판매하는 것뿐 아니라 보유하고 있는 제품에 대한 양질의 퀄러티를 항상 유지하기 위해 지속적으로 노력하고 있습니다. 코난테크놀로지의 많은 부서들이 그 노력에 동참하고 있지만 그 중심에는 제품 품질을 책임지고 있는 품질관리팀이 있답니다.

다음 포스트에서는 Agile 방법론 중 Scrum을 통한 제품 개발 관리에 대한 이야기를 하겠습니다.

 

 

QA, 검색솔루션, 독크루저, 솔루션 품질관리, 코난테크, 코난테크놀, 통합검색, 품질관리,

댓글 총 4

  1. 좋은글 잘읽었습니다..

    저는 현재 가비아에서 개발개선을 맡고있는 정성락이라고 합니다..
    경력은 이제 1년 6개월정도 되었구요..
    위글에 나와있는 내용에 대한 업무를 진행하고 있습니다..

    실제 이슈 트래커, SVN버젼 컨트롤러, Jenkins, Sonar를 이용한 개발 프로세스 구축을 주 업무로 하고있는데요..
    회사 입사후 2012년 초에 신설된 프로젝트이며, 진행은 대부분 검색을 기반으로 진행해왔습니다..
    지금 하는 CI(Continuous Integration)에 대해 많은 관심을 가지고 있으며, 앞으로의 진로도 이쪽으로 했으면 싶어서요..

    서두가 거창했는데..다름이 아니라..
    CI에 대해 좀더 깊이있는 내용을 알려면 어떤식으로 공부를 해줘야하고, 어떻게 진행하는게 좋은까에 대해 조언을 좀 구하고 싶어서요..
    시간 되실때 처음 시작하는 후배를 위해 조언을 좀 해주셨으면 해서 초면에 이렇게 댓글 남깁니다..
    정성락(jsr@gabia.com)

  2. 좋은 글 감사 드립니다.
    혹 기회가 되신다면 강의도 가능하신가요??
    snazzy79@naver.com 으로 회신 바랍니다.

  3. 코난테크놀로지의 대표 솔루션은 독크루저(DOCRUZER)라는 대용량 통합 검색 솔루션입니다.
    독크루저는 국내 기업검색 솔루션 시장에서 가장 많이 구축된 제품이기도 합니다. 2003년에 출시된 ..

  4. 역시.. Hudson 툴이 자동빌드에는 유명한 모양이네요. 예전에 그 툴로 자동빌드 하고 P4, CC 연계해서 실행하던 경험이 있는데 여기서 이름을 보다니 신기하네요 ^^

    V-model 은 역시 테스팅의 근간이군요. 요새 V-model 의 변형이라고 볼 수 있는 W-model 도 있는데 어차피 계속 점진적 테스트를 하시니 W-model 사용하시는 거나 마찬가지 이시겠네요 :)

    무튼, 좋은 글 잘 봤습니다.

댓글남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.


a_top

SITEMAP