빌드관리시스템 TeamCity가 무료?

오랜만에 JetBRAINS사 홈페이지에 들렸다가 TeamCity가 무료로 풀렸다는 사실을 알고 화들짝 놀랐다. 엄밀하게 말하면 Professional Edition만 무료이고 EnterpriseEdition은 여전히 유료이다. 두 제품의 차이점은 홈페이지에서 직접 확인하는 편이 좋겠지만 간략히 요약하자면 다음과 같다.

 ProfessionalEnterprise
사용자 계정20개까지무제한
빌드 구성20개까지무제한
인증기본 인증만기본, NT, LDAP

게다가 놀라운 점은 오픈소스 프로젝트에는 Enterprise Edition까지 무료라는 점이다. 첫 일년 간 무상이며 그 이후로는 요청하면 기한을 늘려주는 모양이다. 아무래도 오래 못 버티고 죽는 오픈소스 프로젝트가 많은 탓인 듯 하다.

주요 기능

IDE 플러그인

IntelliJ IDEA, Eclipse, Visual Studio 2005, Visual Studio 2008을 지원한다. 순서대로 지원하는 기능이 많은데 Visual Studio를 쓰더라도 CruiseControl .NET의 CCTray와 비슷한 수준이다. 원격 빌드, 사전 테스트한 커밋, 빌드 감시, 빌드 결과 보기, 실패한 테스트의 소스 파일 열기, 웹 인터페이스 탐색 등을 지원한다.

눈에 띄는 기능은 역시 사전 테스트한 커밋이다. 개발자가 고친 코드를 원격 빌드 서버에서 통합하고 단위테스트까지 돌린다. 이 과정이 성공했을 때만 해당 소스 코드를 버전 관리 시스템에 커밋한다.

빌드 스크립트 등

Java
  • Ant
  • Maven2
  • IntelliJ IDEA projects
  • Code Inspections (Java, HTML and CSS, JavaScript, EJB, JSP, JSF, Struts and more) for IntelliJ IDEA projects and Maven2 projects
  • Duplicates Finder for IntelliJ IDEA projects and Maven2 projects
.NET
  • MSBuild
  • NAnt
  • Microsoft Visual Studio Solutions
    • 2003
    • 2005
    • 2008
  • Duplicates Finder for Visual Studio 2003, 2005 and 2008 projects (C# up to version 2.0 and Visual Basic .NET up to version 8.0)
  • FxCop build runner

내 관심사는 윈도우 플랫폼이기 때문에 역시 MSBuild와 Visual Studio 솔루션을 지원하는 게 마음에 든다. 전체적으로 CruiseControl, CruiseControl .NET과 그리 다르지 않은 듯 하다.

단위 테스트

  • JUnit
  • TestNG
  • NUnit (x86, x64)
  • MSTest (2005, 2008)

Google Test는 JUnit과 동일한 형태로 빌드 보고서를 생성하니 MSBuild 등과 적절히 섞어 쓰면 아무 문제가 없을 듯 하다. 오늘 처음 밝히는 건데 C++용 단위 테스트 도구를 UnitTest++에서 Google Test로 바꿨다. 후자에 사소한 단점이 있긴 하나 전반적으로 UnitTest++보다 낫다.

버전 관리 시스템

  • Subversion
  • Perforce
  • CVS
  • Borland StarTeam
  • Microsoft Visual SourceSafe
  • Team Foundation Server 2005
  • Team Foundation Server 2008
  • IBM Rational ClearCase (Base and UCM)
  • StarTeam support
  • Mercurial support (available as separate download)

이 정도면 어지간한 버전 관리 시스템은 다 지원하는 듯 하다. 20개 정도의 버전 관리 시스템을 지원하는 CruiseControl .NET에 비하면 부족하지만  말이다. 다만 TeamCity는 CruiseControl .NET과 달리 소스 코드의 변경 내역과 서로 간의 차이점(Diff)을 웹 인터페이스이나 IDE를 통해 보여준다.

통지

  • 전자 편지
  • Jabber/XMPP
  • RSS
  • 윈도우 시스템 트레이

통지 시스템은 CruiseControl .NET과 그리 다르지 않다. 사실 더 넣을 게 있나 싶다.

총평

두세 달 전에 TeamCity가 무료로 풀린 사실을 알았더라면 게임 서버 프로젝트에 적용했을 텐데 아쉽다. 그랬으면 직접 써보고 평가를 확실하게 내렸을 텐데 말이다. JetBrains사가 제공하는 문서를 읽고 받은 인상만 이야기해보자면 “상용 제품답다”. CruiseControl .NET과 비슷한 기능일지라도 UI가 깔끔하고 세세한 부분까지 신경 쓴 느낌이다. 여기서 설명하진 않았지만 상당히 세밀한 통계 정보를 그래프 형태로 보여주는 점도 좋다.

소규모 프로젝트나 오픈소스 프로젝트라면 TeamCity의 도입을 생각해보면 어떨까?

Advertisements

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu