TeamCity 로드맵

이 페이지에서 현재 개발 진행 중이거나 설계 중인 TeamCity의 새로운 기능 목록을 확인하실 수 있습니다. 올해 출시 예정인 기능에 대한 간략한 내용을 살펴보세요.

이 페이지의 정보는 정기적으로 업데이트됩니다. 현재 로드맵 상태는 다음과 같습니다.

9
개발 중
5
설계 중
2
탐색 중
3
EAP로 제공
TeamCity: Cloud

TeamCity: Cloud

개발자들이 빌드 인프라 설치 및 유지의 번거로움 없이 수준 높은 소프트웨어를 개발할 수 있도록 도움을 드리고자 TeamCity Cloud를 제작 중입니다. JetBrains에서 전적으로 호스팅하고 관리하는 완벽한 관리형 CI/CD 솔루션을 만나보세요.

자세히 알아보기

멀티서버 확장성

멀티서버 확장성

여러 TeamCity 서버를 실행하고 함께 작동되도록 하면 CI/CD의 성능과 안정성을 완전히 새로운 수준으로 높일 수 있습니다. 보조 서버의 기능을 확장하여 TeamCity가 클러스터링 환경에서 작동하는 방식을 개선했습니다.

자세히 알아보기

CI 주요 개선 사항

CI 주요 개선 사항

보다 폭넓은 CI 제어 기능을 선사하기 위해 다양한 신규 기능을 개발하고 있습니다. 이러한 기능을 통해 한결 간편하게 DevOps 파이프라인 자동화를 실현하고 더욱 효율적인 방식으로 개발 프로세스를 관리하세요.

자세히 알아보기

Kotlin DSL

코드로서 구성

점차 더 많은 사용자들이 CD/CD 구성을 코드로 저장하는 데 큰 관심을 보이고 있습니다. 앞으로 Kotlin DSL의 표현성을 높이고 시작 방식을 다양하게 추가할 예정입니다.

자세히 알아보기

빌드 러너 및 통합

빌드 러너 및 통합

TeamCity는 빌드 도구 및 외부 서비스와 긴밀하게 통합된 기능으로 전 세계 개발자들의 큰 사랑을 받고 있습니다. 저희 팀은 최선의 방식으로 사용자를 지원하고자 노력합니다. 이 섹션에서는 추가 예정인 새로운 통합 기능에 대해 알아보실 수 있습니다.

자세히 알아보기

클라우드 기능

클라우드 기능

JetBrains는 최신 워크플로우에서 사용자에게 필요한 모든 기능이 TeamCity에 있기를 바랍니다. 그렇기에 사용자가 더욱 간편하게 클라우드에서 빌드를 설정하고 실행할 수 있도록 다양한 기능을 개발하는 것입니다.

자세히 알아보기

새로운 'Sakura' UI

새로운 "Sakura" UI

저희 팀은 빠르고 사용하기 쉬우며 신규 기능을 보다 신속히 제공하는 새로운 UI를 제작하기 위해 끊임없이 노력합니다. 최근에는 기존 UI가 사용되는 모든 주요 위치에 Sakura UI 지원을 제공하는 데 초점을 맞추고 있습니다.

자세히 알아보기

TeamCity: Cloud

개발 중

개발자들은 빌드 인프라 설치 및 유지의 번거로움 없이 수준 높은 소프트웨어를 개발할 수 있어야 합니다. 그렇기에 저희는 JetBrains에서 전적으로 호스팅하고 관리하는 완벽한 관리형 CI/CD 솔루션인 TeamCity Cloud를 개발하고 있습니다. 기존 TeamCity에서 사랑받던 모든 기능은 유지되며, 다른 사용자와 완전히 독립된 상태로 클라우드의 전용 인스턴스에서 빌드 및 테스트를 실행할 수 있습니다. 현재 사용자에게는 로컬 설치를 클라우드 솔루션으로 마이그레이션할 방법을 제공해드릴 것입니다.

TeamCity Cloud는 현재 공개 베타 버전으로 제공되고 있으며 공식 출시는 2020년 연말 이전으로 예정되어 있습니다.

베타 버전 가입하기

멀티서버 확장성

여러 TeamCity 서버를 실행하고 함께 작동되도록 하면 CI/CD의 성능과 안정성을 완전히 새로운 수준으로 높일 수 있습니다. 신규 기능으로 보조 서버의 기능을 확장하여 TeamCity가 클러스터링 환경에서 작동하는 방식을 개선했습니다.

모든 기능을 갖춘 UI

개발 중
보다 폭넓은 CI 제어 기능을 선사하기 위해 현재 보조 서버의 제한적인 UI가 모든 기능을 갖춘 버전으로 교체될 예정입니다. 이제 빌드 구성을 편집하고, 클라우드 에이전트를 관리하고, 기존에는 지원되지 않던 다양한 액션을 실행할 수 있습니다. 따라서 주 서버의 유지 보수 중에도 팀원들이 TeamCity로 작업을 이어갈 수 있을 것입니다.

빌드 대기열 처리

설계 중
현재 큰 목표는 모든 면에서 주 서버와 동일한 보조 서버의 구축입니다. 로드맵의 다음 지점은 주요 서버에서 빌드 대기열을 처리하고 빌드를 시작할 수 있는 기능을 더하는 것입니다.

CI 주요 개선 사항

트리거가 정의된 매개변수

개발 중

많은 요청이 들어온 기능 중 구현 예정인 다른 기능은 트리거가 정의된 매개변수입니다. 이를 통해 빌드 및 테스트를 보다 폭넓게 제어하고 트리거 주체에 따라 다르게 실행할 수 있습니다. 이 기능의 일반적 사용 사례는 일정으로 트리거되었을 시 야간 빌드의 자동 게시입니다(다른 트리거 제외).

지능적인 테스트 분할

설계 중

테스트 개수가 많을수록 완료 시까지 더 오랜 시간이 소요됩니다. 가끔 특정 빌드 에이전트의 테스트가 완료될 때까지 여러 빌드 에이전트가 대기 상태로 아무 작업도 수행하지 않는 경우가 있습니다. 이러한 문제를 해결하고자, 테스트가 유사한 기간별로 몇몇 그룹에 지능적으로 분할된 후 여러 빌드 에이전트에서 동시에 실행되도록 하는 신규 기능을 개발 중입니다. 이 기능을 활용하면 테스트 결과를 더 빠르게 확인할 수 있어 빌드 개수는 증가하고 대기 시간은 단축됩니다.

에이전트 없는 빌드

개발 중

TeamCity 빌드 에이전트는 여러 기능을 결합하여 다른 CI와 차별화된 범용성을 갖추었습니다. 하지만 외부 도구를 활용할 경우 외부 작업이 완료될 때까지 대기해야 하므로 다양한 모든 기능이 사용될 기회가 없습니다. 이러한 상황에서 TeamCity의 작동 방식을 최적화하기 위해 "에이전트 없는 빌드" API를 새롭게 구현하고자 합니다. 이로써 TeamCity 빌드 에이전트에 의존하지 않고도 외부 도구를 사용할 수 있습니다. 이 API를 통해 완료된 모든 작업은 TeamCity에서 자체적인 보고서, 상태 및 기록이 포함된 일반 빌드로 표시됩니다.

이 기능의 적절한 활용 사례로는 외부 배포 서비스가 사용되는 경우가 있습니다. 릴리스 파이프라인의 단계를 수동으로 승인하는 배포 서비스를 사용한다고 가정할 때, TeamCity 에이전트에서 호출하면 누군가 릴리스 승인을 내릴 때까지 대기하는 데 몇 시간, 심지어 며칠이 소요될 수 있습니다. 이때 빌드 에이전트가 필요하지 않다면 CI 설정을 훨씬 효율적으로 완료할 수 있을 것입니다! 새로운 API를 통해 이러한 상황을 방지할 수 있습니다.

여러분의 의견도 들려주세요! 앞서 설명해드린 에이전트 없는 빌드와 관련한 사용 사례 아이디어를 각 YouTrack 이슈에 공유해 주시면 감사하겠습니다.

단일 빌드의 일관성 없는 테스트 결과 해석

EAP로 제공

실패한 테스트가 항상 손상된 코드를 의미하지는 않습니다. 일반적으로 여러 번 테스트를 실행하는 동안 1회 이상 테스트가 통과된 경우 코드가 적절히 작동하는 것입니다. 예를 들어 UI 테스트가 네트워크 문제로 실패했으나 두 번째 시도에서 성공한 경우 렌더링 문제가 아니므로 테스트의 상태를 성공으로 표시하고 싶으실 겁니다.

TeamCity는 언제나 엄격한 테스트 실패 규칙을 준수하여, 테스트가 실패할 경우 빌드 단계의 실패로 이어졌습니다. 하지만 이러한 규칙은 일부 테스트 시나리오에 적합하지 않았습니다. 더욱 다양한 워크플로를 지원하고자 이러한 상황에 대처하는 방식을 선택할 수 있게 허용했습니다. 따라서 동일한 빌드에서 테스트 결과가 일관성이 없는 경우에도 빌드를 초록색으로 유지할 수 있습니다.

코드로서 구성

Kotlin DSL의 우수한 표현성 덕분에 사용자들은 CD/CD 구성을 코드로 저장하는 데 큰 관심을 보이고 있습니다. 저희는 이 기능을 지속적으로 개선하고 있으며 조만간 구현될 예정인 주요 변경 사항 몇 가지를 소개하고자 합니다.

프로젝트 구성을 DSL로 보기

개발 중

View DSL(DSL 보기) 버튼을 통해 빌드 구성을 Kotlin 코드로 표현하는 방법을 쉽게 확인할 수 있습니다. 현재 이 버튼은 빌드 구성에서만 지원되므로 완료된 프로젝트의 구성을 작성하거나 특정 작업 구성 시 적합한 코드 조각을 찾는 데에는 별 도움이 되지 않습니다. 사용자가 언제든 VCS 루트, 정리 설정 또는 전체 프로젝트를 Kotlin 코드로 구성하는 적합한 방식을 찾을 수 있도록 향후 TeamCity의 다른 섹션에도 유사한 버튼이 추가될 예정입니다.

DSL 코드의 가져오기 생략

설계 중

저희 목표는 Kotlin DSL의 심플함과 표현성을 극대화하는 것입니다. Kotlin에서 빌드 구성을 보다 쉽게 표현할 수 있도록 settings.kts 파일 시작 시 가져오기 섹션을 생략할 수 있습니다. 즉, settings.kts 파일이 project {...} 섹션으로 바로 시작되며 스크립트 컴파일에 필요한 가져오기를 명시적으로 지정할 필요가 없습니다.

UI 편집 비활성화

개발 중

TeamCity를 사용하면 선호하는 워크플로에 따라 다양한 방식으로 CI/CD 파이프라인을 설정할 수 있습니다. 프로젝트를 구성 방식도 DSL, UI 또는 두 방식을 함께 사용하는 것까지 다양하게 지원됩니다. 하지만 수동 편집 및 DSL 변경 기능을 함께 사용할 경우 막대한 혼란과 버저닝 문제가 발생할 수 있습니다. 구성의 예측 가능성과 관리 용이성을 위해, Kotlin DSL로 구성이 설정된 경우 UI를 통한 프로젝트 구성 편집을 관리자가 차단할 수 있는 새로운 옵션이 추가됩니다.

빌드 러너 및 통합

TeamCity는 빌드 도구 및 외부 서비스와 긴밀하게 통합된 기능으로 전 세계 개발자들의 큰 사랑을 받고 있습니다. 저희 팀은 최선의 방식으로 사용자를 지원하고자 노력합니다. 새롭게 추가될 예정인 신규 기능 목록을 아래에서 확인해 보세요.

.NET 5

.NET 5

개발 중

많은 사용자께서 .NET Core 및 .NET Framework가 결합된 새로운 플랫폼인 Microsoft의 .NET 5 출시를 기대하고 계십니다. .NET 5는 여러 플랫폼에서 개발 중 발생하는 간극을 좁힐 것이며, TeamCity에서도 유사한 통합을 선보일 예정입니다. 완전히 새롭게 개편된 .NET 빌드 러너는 현재 제공되는 5개의 러너를 모두 통합하여 모든 종류의 앱을 빌드할 수 있는 기능과 런타임 옵션을 함께 지원합니다.

당분간 릴리스에서 기존의 빌드 러너를 삭제할 계획은 아니지만 전반적인 목표는 새 기능을 구현하고 새 버전의 버그 수정만을 지원하는 것입니다.

Python

Python

개발 중

지난 몇 년간 Python은 엄청난 성장을 이루었으며 Python의 CI/CD 솔루션에 대한 관심도 높아졌습니다. 저희 팀은 신규 Python 러너를 구현하여 Python용 인기 개발 및 테스트 프레임워크 대부분을 지원하고, CI 워크플로의 모든 패싯에서 일관성 있는 경험을 선사할 계획입니다.

이미 Python 통합에 어떤 기능을 포함할지 일반적 아이디어를 구상해두었지만 언제든 각 YouTrack 이슈에 여러분의 의견을 들려주셔도 좋습니다.

JetBrains Space

JetBrains Space

EAP로 제공
설계 중

최근 새로운 제품 Space가 출시되었습니다. Space는 첨단 소프트웨어 개발에 필요한 모든 도구를 갖춘 팀을 위한 통합 환경을 지원하며, TeamCity와 다양한 통합의 기회도 제공합니다.

  • 풀 리퀘스트 빌드 및 빌드 상태 게시
  • 채팅 알림 전송 및 할 일 목록의 항목 생성
  • 팀 디렉토리 동기화 및 Space에서 프로젝트 사용 권한 상속
  • 그 외 수많은 기능

Space 팀과 긴밀한 협력을 통해 두 제품을 가장 유용한 방식으로 통합하고자 하며 올해 중 이러한 통합 기능을 선보일 예정입니다.

Bitbucket Cloud

Bitbucket Cloud

탐색 중

Bitbucket Cloud 풀 리퀘스트 지원을 추가하기 위한 방법을 탐색하고 있습니다. 현재로서는 Bitbucket Cloud와 통합 범위가 명확히 결정되지 않았으며 계획은 다음과 같습니다.

  1. 특정 저장소(포크 아님)에서 생성된 풀 리퀘스트 지원 구현.
  2. 초기 구현이 사용자의 니즈를 충족할 경우 피드백을 수렴하고, 니즈가 충족되지 못할 경우 더 많은 시나리오 모색.

YouTrack 이슈에서 해당 이슈에 투표하실 수 있습니다.

클라우드 기능

클라우드 에이전트를 위한 영구 캐시

설계 중

클라우드로 TeamCity를 사용하는 팀에서 로컬 설치를 활용할 경우 빌드를 최대한 빨리 완료해야 합니다. 클라우드 빌드 에이전트에서 영구 클라우드 캐시를 사용하면 소스 코드, 빌드 아티팩트 및 다양한 패키지를 다른 곳으로 신속히 이전하여 시간과 네트워킹 비용을 대폭 절약할 수 있습니다.

(다운로드 횟수를 줄이면 전력을 아끼고 탄소 발자국을 감소시켜 환경에 도움이 됩니다. 그렇기에 이 기능을 통해 빌드 속도를 높이면서 환경 보호도 실천할 수 있습니다.)

새로운 라이선스 옵션

탐색 중

클라우드에서 빌드 에이전트를 실행하면 필요한 경우 배포 파이프라인의 규모를 빠르게 확장할 수 있어 점차 더 많은 고객들이 이를 활용하는 추세입니다. 하지만 현재 TeamCity의 라이선스 정책은 피크 타임에만 사용하는 빌드 에이전트의 연간 라이선스를 필요로 하므로 제한이 있습니다. 이 문제를 해결하기 위해 클라우드 설치 시 TeamCity 라이선스 부여 방식을 재고할 예정입니다.

아직 구체적인 계획은 마련되지 않았지만 저희 팀에서 이러한 방향으로 준비하고 있다는 사실을 알리는 것이 중요하다고 생각되었습니다. 관련 사용 사례를 알고 계시다면 언제든 YouTrack 이슈에서 공유해 주세요.

새로운 "Sakura" UI

EAP로 제공
개발 중

CI/CD는 개발자가 매일 사용하는 도구인 만큼 집처럼 편안한 느낌을 선사하고자 합니다. 실험적 UI(코드 이름 "Sakura")가 작년에 새롭게 도입되어 뛰어난 성과를 입증했습니다. Sakura UI는 강력하고 현대적이며 이렇게 짧은 기간에 보여준 성과는 무척 만족스러운 수준입니다. 다음 Sakura UI 개선 시 다뤄질 영역은 아래와 같습니다.

  • 빌드 대기열 페이지
  • 헤더
  • 끄기 및 검사 페이지

많은 사용자께서 기존 UI의 존속 여부를 궁금해하셨습니다.

답을 드리자면, 기존 UI는 사라지지 않습니다. Sakura UI가 곧 기존 UI를 대체하지는 않을 것입니다. 앞으로 1년간은 Sakura UI가 기능 패리티에 도달하여 기존 UI의 사용 사례를 모두 지원할 때까지 이미 구현된 기능 개선에 집중할 예정입니다. 향후 Sakura UI를 기본으로 설정할 수 있겠지만 그때에도 기존 UI 사용 옵션은 유지될 것입니다.

다행히 JetBrains 내부에서 UI의 작은 변경 사항을 모두 테스트할 기회가 있었습니다. 개인 개발자부터 IntelliJ IDEA 및 Kotlin 등의 대형 프로젝트까지, 아주 다양한 CI/CD 사례를 갖춘 수십 개의 팀에서 TeamCity의 야간 빌드를 사용합니다. 기존 UI에는 이런 기회가 없었습니다. JetBrains와 함께 자연스럽게 성장했고, 이제 10년 이상 된 기술로 제작되었으니까요. 기존 UI는 이미 한참 전에 한계점에 다다랐으며 그로 인해 기능을 빠르게 출시하는 데 제한이 있습니다. 그렇기에 Sakura UI가 제작되는 것이며 이러한 변화가 TeamCity 및 모든 사용자를 위한 밝은 미래를 불러오리라 생각됩니다.