Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

이를 통해 통합에 드는 시간을 줄이고 발생하는 문제를 최소화할 수 있으며 고품질의 소프트웨어를 개발할 수 있다.

 


장점

지속적인 통합은 팀으로 일할 때 특히 참여자가 많고 규모가 큰 프로젝트일 때 장점이 더욱 두드러지지만 설령 혼자 일하는 개발자라도 많은 장점을 가져다 준다.  

...

  • 빌드와 테스트 프로세스를 자동화하여 코드 작성에 더욱 집중할 수 있다.
  • 자동화를 통해 수시로 통합할 수 있으며 이를 통해 문제를 조기에 발견하고 조치할 수 있다. 
  • 빌드와 테스트를 개인 환경과 독립적으로 구성할 수 있다. 즉 개발자가 코드를 수정하고 커밋하지 않아 개인 환경에서만 빌드되는 문제를 조기에 수정하게 해준다. 
  • 빌드한 결과를 톰캣이나 제티등 WAS 서버나 기타 환경에 디플로이 하는 업무를 자동화하여 프로세스를 간략하게 할 수 있다. 
  • 다른 개발자가 수정한 내용을 자동으로 빌드하고 통합 테스트를 진행할 수 있다.
  • 현재 프로젝트의 코딩 표준과 모듈별 의존성등의 보고서를 빌드 과정에서 자동화하여 개선 여부를 검토할 수 있다.

 



모범 사례(Best Practice)

지속적인 통합을 잘 사용하기 위해서는 이미 사용하고 있는 곳에서 적용한 모범 사례를 참고하는 게 좋다. 다음은 일반적으로 지속적인 통합 적용시 반영하는 것을 권장하는 사례이다.

...

현재 시장에는 다양한 지속적인 통합 도구가 출시되어 있다. 이중에는 오픈소스 기반으로 무료로 사용할 수 있는 제품도 있고 비용을 지불해야 하는 상용 제품도 있다.

 


상용 제품의 경우 일반적인 소프트웨어 라이선스는 사용자수에 따라 금액이 책정되는 경우가 많지만 지속적인 통합 제품은 이와는 약간 다르게 라이선스가 책정된다.

...

또 자바외에 MS 의 비주얼 스튜디오와 .NET 그리고 애플의 XCode 를 지원하는 제품들도 있으므로 이런 플랫폼에서도 지속적인 통합을 구축하겠다면 제품이 지원하는지 여부를 확인해 봐야 한다.

 


또 한가지 고려할 사항은 지속적인 통합은 이슈 관리와 밀접하게 연계하여 사용하게 되는 경우가 많다. 이슈 관리와 연계를 지원하는 제품이라면 다음과 같은 통합 관리가 가능하다.

...

상용 버전의 경우 자사의 이슈 관리 시스템이 있으므로 기존에 이슈 관리를 사용하고 있었다면 동일 회사 제품을 사용하는게 통합과 관리 측면에서 훨씬 나을 수 있다.

 


위와 같은 필요성을 따져 보고 예산이 충분하고 잘 활용할 자신이 있을 경우 상용 제품을 도입하는 것도 좋은 선택이 될 수 있다.

상용 제품은 일반적으로 오픈소스 제품보다 잘 설계되고 사용이 편리한 GUI 화면을 제공하며 잘 정비된 매뉴얼과 교육, 기술 지원을 제공하므로 초기에 도입시 시행착오를 최소화할 수 있다.

 


이에 비해 오픈소스 제품은 라이선스 제한이 없으므로 비용이 발생하지 않으며 큰 장점이 있으며 제품들의 신뢰도와 안정성이 높아져서 기업 환경에서 사용해도 손색이 없다.

하지만 관리 기능과 GUI 가 상용에 비해 떨어지는 경우가 있으며 문서이 빈약하고 별도의 기술 지원을 하지 않으므로 경험 많고 기술력 있는 엔지니어가 없을 경우 도입시 여러 시행 착오와 어려움을 겪을 우려가 있다.

 


그러면 출시되어 있는 제품중에 많이 알려지고 사용자층이 두터운 대표적인 지속적인 통합 제품들에 대해서 알아 보자.

 


Cruisecontrol

오픈소스로 제공되는 제품으로 오래전부터 사용되어 온 도구이다. 단점은 업그레이드가 거의 안 되고 있으며 설정과 사용이 불편하다.

 


TeamCity

유명한 자바 IDE 인 IntelliJ IDEA의 개발사인 JetBrain 사의 제품이다. 무료로 사용할 수 있는 프로 페셔널 서버(Professional Server)와 상용인 엔터프라이즈 서버(Enterprise Serve)로 나뉘어져 있다.

...

기존에 제트브레인사의 이슈 관리 시스템을 사용한다면 도입을 검토해 볼 만한 가치가 있다.

 


Hudson

썬 마이크로 시스템즈의 엔지니어인 코수케 가와구치가 주도적으로 개발한 CI 제품이다. 오라클이 썬을 인수한 이후로 허드슨 개발 커뮤니티에 많은 이슈가 있었고 주요 개발자들은 허드슨 프로젝트를 떠나서 젠킨스 프로젝트를 만들었다.

...

특별한 이유가 있지 않은 이상 허드슨보다는 젠킨스를 사용하기를 권장한다.

 


Bamboo

컨플루언스와 지라의 개발사인 atlassian 사의 제품이다. 아틀라시안 사의 다른 제품처럼 기업에서 사용하려면 돈을 주고 구매해야 하며 오픈 소스 프로젝트를 진행하면 무료로 제공하고 있다.

 


개인적으로는 가장 선호하는 솔루션으로 상용이므로 비용이 발생하는 단점이 있지만 자바외에 .NET 과 XCode 를 지원하며 잘 설계되고 미려한 UI 를 제공하고 있다.

...

특히 자사 제품들과 완벽한 통합을 제공하는 장점이 있다. 이 기능을 사용하면 지라에서 뱀부의 빌드를 연결할 수 있으며 반대로 뱀부의 빌드에서 지라의 이슈와 연결할 수 있다.

이러면 지바의 지라의 특정 이슈를 해결하기 위한 빌드가 무엇인지 또는 현재 빌드에서 관련된 이슈가 무엇인지 와 고 하.무엇인지를 쉽게 파악할 수 있다.


기능적으로는 MS .NET 과 XCode 지원, 잘 서미려한 미려한 UI, 잘 구성된 매뉴얼, JIRA/FishEye 와 완벽한 통합 등의 장점이 있다.

활용 가능한 예산이 있다면 구매해서 사용해 보기를 권장한다.

 


Jenkins

Scroll Ignore

OpenStack 의 CI 로 사용됨(http://ci.openstack.org/)

Why Choose Jenkins?

 


허드슨의 주요 개발자가 나와서 만든 프로젝트로 오픈 소스 CI 에서는 압도적인 사용자를 보유하고 있다.

많은 사용자와 플러그인 개발자가 있으므로 다양한 기능을 제공하고 많은 자료가 있다. 최근에는 오픈소스 클라우드 컴퓨팅 플랫폼인 오픈스택(OpenStack)의 CI 솔루션으로 채택되기도 하였다.

 


이 책에서는 젠킨스를 기반으로 CI 환경을 구축하는 방법을 설명할 것이다.

 

...


Children Display
depth3

 


Scroll Ignore

Ref