매일 업데이트
2022-10-22 23:08 8 min

2022년 더 나은 CI 도구?

오늘은 지속적 통합 분야에서 널리 사용되는 두 가지 주요 도구인 젠킨스와 팀시티를 비교 분석하며, 각 도구의 특징과 차이점을 자세히 살펴보겠습니다.

지난 10년 동안 소프트웨어 개발 생명주기는 급격한 변화를 겪었습니다.

과거에는 폭포수 모델이 주류였으나, 애자일 방법론이 등장하며 개발 과정은 반복적인 방식으로 진행되었습니다. 최근에는 DevOps 방법론이 도입되어 개발과 운영이 긴밀하게 협력하며, 애플리케이션의 개발부터 배포까지 전 과정이 반복적이고 지속적으로 이루어지고 있습니다.

이러한 변화 속에서 CI/CD(지속적 통합 및 지속적 전달)라는 용어가 매우 중요해졌습니다. CI/CD는 애플리케이션을 보다 빠르고 안정적으로 개발하고 제공하는 데 필수적인 DevOps 방식입니다. CI/CD 도구를 활용하면 비즈니스 요구사항에서부터 실제 제품 배포에 이르는 모든 단계를 자동화할 수 있어, 수동으로 처리하는 것보다 훨씬 효율적이고 안전합니다.

현재 다양한 CI/CD 도구가 시장에 나와 있어, 자신에게 적합한 도구를 선택하는 데 어려움을 느낄 수 있습니다.

젠킨스를 선택하는 이유는 무엇일까요?

젠킨스는 가장 널리 알려진 오픈 소스 지속적 통합 도구 중 하나이며, 지속적 통합 솔루션 분야에서 사실상 표준으로 자리매김했습니다.

젠킨스는 자바 기반으로 개발되어 Windows나 Linux와 같은 주요 운영체제에 설치할 수 있습니다. 원래 자바 애플리케이션의 빌드 자동화를 위해 개발되었으나, 현재는 다양한 플랫폼 및 도구와 쉽게 연동할 수 있는 1,400개 이상의 플러그인을 지원합니다.

소프트웨어 개발 프로세스에서 젠킨스는 지속적 통합 및 지속적 전달을 위한 핵심 도구입니다. 설치가 간편하며, 웹 브라우저를 통해 접근 가능한 프로젝트 관리 대시보드를 제공합니다.

개발자들은 젠킨스를 사용하여 코드를 자동 빌드, 통합, 테스트 및 배포합니다. 개발자가 코드를 커밋하면 젠킨스는 변경된 소스 코드를 자동으로 감지하여 빌드를 시작하고, 필요한 경우 테스트를 실행합니다. 빌드가 완료되면 젠킨스 대시보드에 결과가 표시되며, 설정을 통해 개발자에게 알림을 보낼 수도 있습니다.

팀시티를 선택하는 이유는 무엇일까요?

팀시티는 자바 기반의 상용 CI/CD 서버로, JetBrains에서 개발한 빌드 자동화 및 관리 도구입니다.

팀시티의 슬로건은 "즉시 사용 가능한 강력한 지속적 통합"이며, 이 도구는 슬로건에 걸맞은 기능을 제공합니다. 젠킨스와 유사한 기능 외에도 몇 가지 추가 기능을 제공합니다. 예를 들어, Docker와 연동하여 docker-compose를 통해 컨테이너를 자동 생성할 수 있으며, Jira 도구와 연동하여 문제 추적을 보다 쉽게 할 수 있습니다.

팀시티는 .NET 프레임워크를 지원하며, Eclipse, Visual Studio 등 다양한 IDE와 쉽게 통합할 수 있습니다. 또한, 아티팩트 저장소 구축을 위한 통합 기능을 통해 팀시티 서버 파일 시스템이나 외부 저장소에 아티팩트를 저장할 수 있습니다.

팀시티는 무료 버전인 Professional 서버 라이선스를 통해 100개의 빌드 구성과 3개의 빌드 에이전트를 무료로 제공합니다.

젠킨스 vs 팀시티

오픈 소스 vs 상용

가장 큰 차이점은 젠킨스는 오픈 소스 지속적 통합 도구인 반면, 팀시티는 상용 도구라는 점입니다. 젠킨스 프로젝트는 MIT 라이선스로 배포되며, 전 세계의 개발자 커뮤니티에서 지원합니다. 반면 팀시티는 모회사인 JetBrains에서 개발하고 유지 관리합니다.

사용자 인터페이스

팀시티는 사용자 인터페이스가 우수하여, 지속적 통합을 처음 접하거나 CI 도구를 찾는 초보자에게 매력적입니다. 팀시티 인터페이스에서는 태그 지정, 댓글 추가, 빌드 고정 등을 통해 보다 체계적으로 빌드를 관리할 수 있습니다.

반면, 젠킨스의 인터페이스는 다소 구식입니다. 시각적으로 매력적이지 않으며, 사용자 인터페이스 개선의 여지가 많습니다.

독점 기능

젠킨스는 자체적으로 내장된 기능은 많지 않지만, 광범위한 플러그인 생태계를 통해 다른 CI 도구가 제공할 수 없는 다양한 기능을 제공합니다. 이러한 플러그인 기능을 통해 젠킨스는 빌드 생성 및 코드 분석에 활용되며, 이는 코드 품질 향상에 도움이 됩니다.

팀시티는 기본적인 CI 도구 기능 외에도 여러 가지 기본 기능을 제공합니다. Java, Ruby, .NET 등 다양한 플랫폼을 지원하며, Docker 이미지를 빌드할 수도 있습니다. Bugzilla 및 Jira 지원을 통해 문제 추적이 용이하며, 빌드 변경 및 실패 기록을 저장하여 과거 빌드 정보, 테스트 이력 등을 확인할 수 있습니다.

설치

젠킨스를 시스템에 설치하려면 Java가 필요합니다. 젠킨스 설정은 Java가 이미 설치되어 있다면 비교적 간단합니다. 설치가 완료되면 웹 인터페이스를 통해 젠킨스 작업을 시작할 수 있습니다.

팀시티 설치 또한 매우 간단합니다. 팀시티 서버를 다운로드하고, 제공되는 설명서를 참고하여 안내에 따라 설치하면 됩니다.

통합

통합 측면에서 젠킨스는 타의 추종을 불허합니다. 젠킨스의 인기는 다양한 무료 플러그인을 통한 폭넓은 통합 지원 덕분입니다.

팀시티는 젠킨스에 비해 플러그인 및 통합 옵션이 적습니다. 그러나 즉시 사용 가능한 기능과 함께 .NET 프레임워크 지원, Visual Studio Team Services 통합, AWS, Azure, GCP, VMware와 같은 클라우드 공급자와의 클라우드 통합을 제공합니다.

보안

팀시티는 상용 제품이므로 JetBrains의 지원을 받아 보안 문제에 대한 빠른 대응이 가능하다는 장점이 있습니다. 또한 Snyk 보안 플러그인과의 통합을 통해 빌드 파이프라인에서 취약점 검사를 수행할 수 있어, 빌드에 존재하는 위험 요소를 식별하고 수정하는 데 도움이 됩니다.

반면 젠킨스는 오픈 소스이므로 위험 요소 완화는 개발자 커뮤니티에 의존하며, 대응이 지연될 수 있습니다.

커뮤니티

젠킨스는 팀시티보다 훨씬 큰 커뮤니티를 보유하고 있습니다. 젠킨스는 오픈 소스 프로젝트이므로, 모든 개발자가 프로젝트에 기여할 수 있습니다. 매일 새로운 개발자들이 젠킨스에 기능을 추가하고 개선하고 있습니다.

반면 팀시티는 상용 도구이며 JetBrains 팀에서 유지 관리합니다. 팀시티를 성장시키기 위한 전문적인 지원 커뮤니티가 있습니다.

가격

젠킨스는 오픈 소스이므로 무료로 사용할 수 있습니다. 많은 조직들이 CI 도구에 대한 비용을 절약하기 위해 젠킨스를 선호합니다.

팀시티는 무료로 사용할 수 없습니다. 두 가지 라이선스를 제공하는데, Professional 서버 라이선스는 100개의 빌드 구성과 3개의 빌드 에이전트를 무료로 사용할 수 있으며, 추가 빌드 에이전트와 빌드 구성에는 비용이 발생합니다. Enterprise 서버 라이선스는 무제한 빌드 구성을 제공하며, 3개의 에이전트부터 시작하여 1,999$부터 시작합니다.

비교 표

젠킨스 팀시티
개발 언어 자바 자바
개발자 CloudBees, Kohsuke Kawaguchi, 무료 및 오픈 소스 소프트웨어 제트브레인
라이선스 MIT 라이선스 독점 상용 소프트웨어
특징
  • 오픈 소스
  • 풍부한 플러그인 세트
  • 쉬운 설정
  • 빌드 파이프라인 지원
  • 워크플로 플러그인
  • 수많은 통합
  • 내부 호스팅
  • 비동기식 빌드, 배포 또는 실행
  • HTML 게시자
  • 쓰로틀 빌드
  • 주요 통합
  • 클라우드 통합
  • 빌드 기록
  • 인프라 구축
  • 코드 품질 추적
  • VCS 상호 운용성
  • 시스템 유지 관리
  • 사용자 관리
  • 확장성 및 사용자 정의
  • 사전 테스트된 커밋
사용 용이성 쉬움 쉬움
사용자 인터페이스 기본적인 인터페이스 매력적이고 아름다운 인터페이스
커뮤니티 오픈 소스이므로 커뮤니티가 더 큼 젠킨스에 비해 작음
가격 무료 Professional Server 라이선스 비용은 3개의 무료 빌드 에이전트 후 빌드 에이전트당 299$입니다.

Enterprise Server 라이선스 비용은 1999$부터 시작합니다.

통합 1400개 이상의 통합 300개 이상의 통합
보안 보안 수준 낮음 보안 강화
API JSON, Python, RESTful API 지원, XML 서비스 메시지를 이용한 RESTful API 지원 및 Open API를 이용한 플러그인 생성
프로그래밍 언어 지원 Java, PHP, C, C++, Fortran, Python 및 더 많은 스크립팅 언어 Python, C++, Java, .NET, Ruby, PHP, Node.js 등
컨테이너 지원 젠킨스용 Docker 플러그인 사용 즉시 사용 가능한 최고 수준의 Docker 지원
릴리스 주기 더 자주 덜 자주
보고 빌드 및 테스트에 대한 자세한 보고서 제공 더 나은 웹 UI로 보고서 제공

결론

이제 가장 널리 사용되는 두 가지 지속적 통합 도구인 젠킨스와 팀시티의 차이점을 확실히 이해하셨을 겁니다.

조직의 CI 도구를 선택할 때는 호스팅 옵션, 사용 가능한 통합, 재사용 가능한 코드 라이브러리, 컨테이너 지원, 도구 사용 및 학습 용이성과 같은 다양한 요소를 고려해야 합니다. 이러한 요소를 충족하는 지속적 통합 도구가 조직에게 최적의 선택이 될 것입니다.

아직 어떤 도구를 선택해야 할지 결정하기 어렵다면 젠킨스 및 팀시티 무료 버전을 직접 사용해 보십시오. 이들 플랫폼에서 몇 가지 빌드를 직접 실행해 보면, 프로젝트의 지속적인 통합에 어떤 도구가 더 적합한지 더 명확하게 판단할 수 있을 것입니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.