Rider 2019.3′의 새로운 기능

Rider 2019.3은 T4 템플릿, .NET Core용 크로스 플랫폼 프로파일러, Unity용 크로스 플랫폼 테스트 커버리지를 지원합니다. 시작이 더 빨라지고 디버거가 Docker Compose를 지원하며 버전 관리 지원 및 Xamarin 지원이 전반적으로 향상되었습니다.

T4 템플릿 지원

T4 템플릿 지원

사용자의 요청에 따라 T4 텍스트 템플릿 지원을 제공합니다. 자체 생성기를 기반으로 하여 사전 설치된 플러그인으로서 제공되는 T4 템플릿 지원을 만나보세요. 

Rider에서 모든 T4 템플릿을 쉽게 실행, 처리, 디버그할 수 있습니다. 에디터에서 다음과 같은 새로운 지원 기능을 즐기시기 바랍니다.

  • 코드 강조 표시, 탐색, 코드 완성, 입력 지원, 리팩터링, 컨텍스트 액션, 검사, 서식 지정 등 코드 블록에서 풍부한 C# 지원 기능을 제공합니다.
  • 검사, 입력 지원, 접기 및 짝이 되는 괄호 표시와 같은 T4용 기능을 지원합니다.
  • C# 코드를 최대한 정확하게 해결하기 위해 include 지시문에 대한 광범위한 지원을 제공합니다.
  • 검사, 빠른 수정, 코드 강조 표시, 탐색 등 모든 종류의 지시문에 대한 지원을 제공합니다.

이러한 모든 기능은 Windows, macOS, Linux에서 작동합니다.

.NET Core용 크로스 플랫폼 프로파일러

.NET Core용 크로스 플랫폼 프로파일러

Rider 2019.1에서는 macOS 및 Linux에서 성능 프로파일러를 지원했지만 당시 Mono 및 Unity Mono 애플리케이션만 대상으로 했습니다. 이번 릴리스에서는 큰 진전이 이루어져 이제 포함된 dotTrace 플러그인을 사용하여 Linux 및 macOS에서 .NET Core 애플리케이션을 프로파일링할 수 있게 되었습니다. 이 말은 Windows, macOS, Linux에서 모든 .NET 애플리케이션을 프로파일링할 수 있게 되었다는 뜻입니다.

단, .NET Core 3.1을 대상으로 하는 프로젝트만 완벽하게 지원됩니다. .NET Core의 일부 제한 사항 때문에 .NET Core 3.0 이전 버전을 대상으로 하는 프로젝트를 프로파일링하면 프로파일링된 애플리케이션이 중단되거나 충돌하는 경우가 드물게 발생합니다.

Unity용 테스트 커버리지

Unity용 테스트 커버리지

JetBrains는 Unity 스크립팅 경험을 향상하고 모든 릴리스에서 뛰어난 기능을 제공하기 위해 노력하고 있습니다. 이번에 소개해 드릴 기능은 Unity Edit 모드 테스트를 위한 크로스 플랫폼 테스트 커버리지 및 지속적인 테스트입니다.

흥미로운 새로운 기능 중 일부는 다음과 같습니다.

  • 플레이 모드 유닛 테스트가 이제 유닛 테스트 러너에서 지원됩니다.
  • UIElements에 구문 강조 표시, 코드 완성, UXMLUSS 파일의 스키마 유효성 검사를 지원합니다.
  • .asmdef 파일을 다시 지원합니다.
  • 디버그 프로세스를 나열할 때 Unity 에디터에 프로젝트 이름이 표시됩니다.
  • 프로젝트가 처음 로드될 때 애셋을 구문 분석하는 성능이 향상되었습니다.
  • Rider의 로그 뷰어 도구 창에서 “Clear on play”(재생 중 지우기)가 지원됩니다.
  • Rider가 C# 8 기능을 제안할 때 발생하던 성가신 버그가 수정되었습니다.
  • 다양한 특수 사례에서 리팩터링 중 .meta 파일을 최신 상태로 유지할 때 발생하는 문제가 수정되었습니다.

이상은 단지 주요 기능에 대한 소개일 뿐입니다. 언제나 그렇듯이 이번 릴리스에는 기타 여러 가지 소소한 수정 및 기능이 포함되어 있습니다. 전체 목록은 변경 내역에서 확인하세요.

성능 향상

성능 향상

Rider 2019.3에는 최근 JetBrains가 수행한 장기간의 품질 향상에서 IntelliJ 플랫폼에 추가한 모든 성능 최적화가 자동으로 포함되어 있습니다. 몇가지 주요 개선 사항으로는 크게 향상된 시작 성능, 부드러워진 마우스 스크롤, 다양한 UI 멈춤 현상 해소가 있습니다. 관심이 있으신 경우 IntelliJ IDEA 블로그에서 모든 성능 개선 사항을 자세히 읽어보실 수 있습니다.

디버거에 Docker Compose 지원 추가

디버거에 Docker Compose 지원 추가

2018.2 릴리스에서는 Docker 지원이 디버거에 추가되어 Rider의 Dockerfile에서 빌드된 컨테이너를 디버그할 수 있었습니다.서 그러나 이때 Docker Compose(docker-compose.yml)로 생성한 컨테이너의 디버그는 지원되지 않았습니다.

하지만 기다림은 끝나고 마침내 Docker Compose 지원이 디버거에 추가되었습니다. 이제 마우스 클릭 한 번으로 멀티 컨테이너 도커 애플리케이션을 디버그 할 수 있습니다.

편집 및 계속 기능 향상

편집 및 계속 기능이 더욱 향상되었습니다. Windows만 해당

이제 Edit & Continue(편집 및 계속) 기능에서 실행 중인 애플리케이션(일시 정지된 것 제외)에 변경 내용을 적용할 수 있게 되어 애플리케이션이 중단점에서 멈출 필요가 없어졌습니다. 에디터 탭 상단의 툴팁에서 “Apply Changes”(변경 내용 적용) 링크를 클릭하면 언제든지 변경 내용을 적용할 수 있습니다. 또한 Edit & Continue 변경 내용의 자동 적용을 비활성화하려면 Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Debugger(디버거) | Editing during debug(디버그 중 편집)로 이동하여 “Step“(스텝) | ”Resume”(재개) | ”Jump to Statement”(구문으로 이동) 액션을 사용하면 됩니다.

단, Edit & Continue는 여전히 Windows에서만 지원됩니다.

디버거 개선 사항

디버거 개선 사항

디버거의 다른 부분도 많이 변경되었습니다. 첫째, Breakpoints(중단점) 뷰의 Exceptions(예외 항목) 트리가 크게 업데이트되었습니다.

  • 이제 접힌 노드도 검색됩니다.
  • 예외 항목이 유형(User/System)과 네임스페이스별로 그룹 지정됩니다.
  • 주요 노드의 이름이 “CLR Exceptions”로 바뀌었습니다.

둘째, Remote Debugging(원격 디버그)에서 두 가지가 업데이트되었습니다.

  • 이제 Remote Debugging을 사용할 때 발생할 수 있는 오류에서 더 정확한 설명과 알림이 표시됩니다.
  • Remote Debugging에 비밀번호 또는 암호 구문이 지정되어 있지 않으면 원격 서버에 연결할 때 해당 정보를 묻는 메시지가 나타납니다.

마지막 변경 내용은 다음과 같습니다.

  • 수많은 디버거 액션의 이름이 해당 액션의 기능을 더 정확히 알려주는 새로운 이름으로 변경되었습니다.
  • “Pin to top”(상단에 고정) 기능이 재귀 평가를 지원합니다.
  • “Jump to Type Source”(유형 소스로 이동) 액션이 제공됩니다.
  • 예외 중단점에 대한 “Just my code”(내 코드만) 옵션이 Mono에서 훨씬 잘 작동하도록 향상되었습니다.
업데이트된 VCS 지원

업데이트된 VCS 지원

JetBrains에서는 Git과 같은 버전 관리 시스템을 사용할 때의 사용자 인터페이스 및 사용자 경험 개선을 실험하기 시작했습니다. 이번 릴리스에서는 훨씬 나은 사용자 경험을 제공할 수 있도록 코드 에디터 탭에서 새로운 라이브 diff 미리보기가 열립니다.

또한 변경 목록, 커밋 설명 등이 표시되는 수직 화면 공간을 더 넓게 남겨두기 위해 기본적으로 왼쪽에 표시되는 새로운 Commit(커밋) 도구 창을 적용했습니다.

Rider 2019.3을 처음 시작할 때 Version Control(버전 관리) 탭이 안 보인다고 당황하지 마세요. 이 탭은 여전히 있지만 이름이 Repository(저장소)로 바뀌었습니다.

이 외에도 “Compare with Current”(현재와 비교) 뷰를 개선하고 Clone(복제) 대화상자를 새롭게 작업했으며 비활성화된 브랜치를 푸시할 수 있도록 변경했습니다.

자세한 내용은 블로그 게시물, 새로운 커밋 방법! Rider 2019.3의 커밋 및 저장소 도구 창 소개를 참조하세요.

Rider에 AWS Toolkit 플러그인 추가

Rider에 AWS Toolkit 플러그인 추가

이번 릴리스 주기에서는 .NET 개발자를 위한 AWS Toolkit 플러그인을 최적화하고 Rider와 호환되도록 많은 노력을 기울였습니다.

  • 사전 정의된 프로젝트 템플릿을 사용하여 AWS 서버리스 애플리케이션을 새로 생성할 수 있습니다.
  • AWS Lambda를 로컬 및 원격으로 생성, 실행, 디버그할 수 있습니다. 또한 여백 아이콘만 사용하여 에디터에서 바로 그 모든 작업을 수행할 수 있습니다.
  • 서버리스 앱을 AWS에 배포할 수 있습니다.
  • Cloud Debugging(클라우드 디버그)이 지원됩니다. Amazon ECS에서 실행되는 클라우드 .NET Core 애플리케이션을 로컬 에뮬레이션 없이 클라우드의 원격 컨테이너 내부에서 AWS Fargate를 사용하여 바로 디버그할 수 있습니다.
  • 이 플러그인은 Rider 2019.2 및 2019.3 버전 모두에서 사용할 수 있습니다.

AWS Toolkit for Rider 플러그인을 설치하면 AWS 서버리스 애플리케이션 작업을 바로 시작하는 데 필요한 모든 기능을 갖출 수 있습니다.

향상된 Xamarin 지원

향상된 Xamarin 지원

JetBrains는 Rider를 훌륭한 Xamarin 개발용 IDE로 만들기 위해 계속 노력 중이며 이번에는 Xamarin Android 및 Xamarin iOS를 모두 대상으로 한 유용한 개선 사항을 몇가지 제공했습니다.

  • 통합된 JetBrains AppCode 구성 요소 덕분에 이제 Mac에서 Apple 기기 및 시뮬레이터가 더 잘 인식됩니다.
  • 연결된 Apple 기기 목록이 도구 모음에 표시됩니다.
  • mtouch(iOS용 Mono 컴파일러) 기기 빌드가 지원됩니다.
  • Xamarin Android 프로젝트에서 “Publish Android APK”(Android APK 게시)를 사용할 수 있습니다. 프로젝트의 컨텍스트 메뉴에서 “Archive or Publish”(보관 또는 게시) 액션을 확인하세요.
  • Project Properties(프로젝트 프로퍼티)에서 Android 관련 프로젝트 프로퍼티를 편집할 수 있습니다.

Xamarin Forms에 대한 지원도 잊지 않고 x:DataTypeClass 속성 지원과 같은 몇가지 중요한 수정 사항을 적용했습니다.

훨씬 향상된 C# 8 지원

훨씬 향상된 C# 8 지원

새로운 Rider 릴리스는 C# 8을 훨씬 더 잘 처리합니다. 현재 다음의 기능이 포함되어 있습니다.

  • notnull 제약 조건에 대한 지원을 포함하여 Nullable Reference 유형에 대한 이해 향상
  • 대상 유형의 switch 표현식
  • 기본 인터페이스 메서드 조기 지원
  • 빠른 수정과 함께 제공되는 "Local function can be static"(지역 함수가 정적일 수 있음)이라는 새로운 힌트
  • 솔루션 내 파일, 프로젝트 또는 모든 프로젝트에서 nullable 어노테이션 및 경고를 지원하는 새로운 빠른 수정 기능
  • EnumeratorCancellation 속성을 async 반복자의 CancellationToken 매개변수에 추가하는 새로운 빠른 수정 기능

또한 코드 검사, "Type or type member is never used"(유형 또는 유형 멤버가 사용되지 않음)가 2개의 별도 옵션으로 분리되었습니다. 하나는 유형에 대한 검사인 Type is never used(유형이 사용되지 않음), 다른 하나는 유형 멤버에 대한 검사인 Type member is never used(유형 멤버가 사용되지 않음)입니다.

코드 생성

코드 생성

Generate(생성) 액션은 C# 8을 자세히 이해하고 있으며 다음 기능을 통해 사용자의 학습을 도와줍니다.

  • 열거형 값을 철저하게 검사하는 새로운 빠른 수정 기능인 "Add missing arms"(누락된 arm 추가)
  • switch 표현식에서 유형 패턴을 생성하는 새로운 빠른 수정 및 컨텍스트 액션
  • 상등/관계 멤버/비교자를 생성할 때 Nullability 고려

또한 C# 및 VB.NET에 대한 상등 멤버 또는 상등 비교자를 생성할 때 System.HashCode를 사용하여 GetHashCode를 구현하는 새로운 옵션이 있으므로 코드를 더 깔끔하게 만들 수 있습니다.

유형 이름 힌트

유형 이름 힌트

Rider 2019.1에서 소개한 Parameter Name(매개변수 이름) 및 Code Annotations(코드 주석) 힌트가 마음에 드셨기 바랍니다. 이번 릴리스에서는 여기에서 더 나아가 Type Name(유형 이름) 힌트를 마련했습니다. 이러한 힌트는 다음 위치에서 사용할 수 있습니다.

  • 람다의 매개변수
  • 패턴 매칭 및 Turple 구조 분해를 포함한 모든 var 사용 위치
  • LINQ 구문 내의 범위 변수
  • 메서드 호출 체인의 줄 끝
탐색 및 사용 위치 검색

탐색 및 사용 위치 검색

대부분의 사용자는 코드에서 특정 참조가 사용되는 위치를 알고 싶어 합니다. 오랫동안 참조의 유형 또는 유형 멤버가 있는 모든 위치는 해당 참조에서 “Find dependent code”(종속 코드 검색) 액션을 실행하여 찾을 수 있었습니다. 그러나 여기에는 다소 제한 사항이 있었습니다. 이번 릴리스에서는 그러한 제한 사항 중 몇가지를 없애어 Find dependent code가 NuGet 참조에서 작동하고 단지 프로젝트가 아닌 전체 솔루션을 대상으로 실행되도록 만들었습니다.

이제 Rider는 더 다양해진 혜택을 다음과 같이 제공합니다.

  • 코드 에디터에서 Quick definition(빠른 정의) 오버레이 툴팁이 모든 심볼에 제공되어 현재 컨텍스트를 벗어나지 않은 채 심볼의 정의를 빠르게 검토할 수 있습니다.
  • Consuming APIs에서 “Navigate to”(다음으로 이동) 액션을 확장합니다. 이 기능은 특정 유형의 객체를 받는 모든 메서드를 해당 매개변수에 나열하려는 경우 도움이 될 수 있습니다.
  • Find dependent code(종속 코드 검색)Find results(결과 검색) 창에 새로운 필터가 추가되었습니다.
  • 이제 소스 심볼 패키지가 있는 NuGet 패키지의 외부 소스를 탐색할 수 있습니다.
코드 스타일

코드 스타일

이 릴리스에서는 사용자가 오랫동안 기다려온 요청 사항을 하나 더 제공합니다. 이제 C# 이름 지정 설정에서 EditorConfig에서 읽기 및 EditorConfig로 내보내기를 지원합니다.

이 커다란 변화 외에도 코드 스타일을 더 강력하게 제어할 수 있는 몇 가지 소소한 변경 내용도 있습니다.

  • 이니셜라이저 표현식의 유형이 명확한 경우에만 명시적 유형 대신 'var'를 사용하려는 사용자들을 고려하여 이제 Rider에서 더 명확한 사례를 탐지합니다. 또한 Roslyn 동작에 맞는 “호환성” 모드도 있습니다.
  • StyleCop 및 Roslyn과 호환되는 새로운 코드 스타일 옵션이 제공되어 동일한 그룹의 다른 연산자와 중첩된 연산자 그룹에 대해서만 우선순위를 명시하는 괄호를 추가할 수 있습니다. 예를 들어 && 또는 || 중 무엇이 우선하는지 기억 나지 않는 경우 이 옵션을 사용하면 괄호로 우선순위를 명시할 수 있습니다.
  • Comment Code(코드에 주석 추가)에서 이제 기본적으로 주석에 들여쓰기를 추가합니다. 이 기능을 끄려면 “Place comments at first column when commenting out code”(코드에 주석을 추가할 때 첫 번째 열에 주석 배치)라는 새로운 설정을 사용하면 됩니다.
  • Autodetect indent size and value(들여쓰기 크기 및 값 자동 탐지) 설정이 켜져 있을 때 들여쓰기를 설정하는 옵션 페이지에 적절한 알림이 표시됩니다.

C# 서식 지정 도구 옵션 페이지에는 Configure formatting(서식 구성)Autodetect formatting(서식 자동 탐지) 기능을 설명하는 알림 툴팁도 있습니다.

프로젝트 모델 개선 사항

Rider의 프로젝트 모델이 TypeScript 파일 등의 웹 언어 파일에 적용된 모든 리팩터링을 모든 프로젝트 파일로 확장합니다. 예를 들어 TS 클래스를 별도의 파일로 이동하면 해당하는 .csproj 파일에 해당 변경이 업데이트됩니다. 또한 Solution Explorer(솔루션 탐색기)에서 “Not Built(빌드되지 않음)” 프로젝트 상태의 UX도 개선되었습니다.

.NET Core 1.* SDK 버전은 지원 종료일에 도달함에 따라 JetBrains에서도 지원을 중단하니 유념해 주세요.

MongoDB 조기 지원

Rider에 MongoDB에 대한 조기 지원 일부를 추가했습니다(자세히 읽어보기). 또한 Rider의 데이터베이스 지원을 Oracle PL/SQL 디버거로 확장하고, 새로운 검사 및 경고, 인라인 쿼리 진행 상황 표시기를 추가하였으며, 연결 오류를 간편하게 Google로 검색하는 방법도 추가했습니다.

자세한 내용은 DataGrip 2019.3의 새로운 기능을 확인해 보세요.

웹 개발

웹 개발

여느 때와 마찬가지로 웹 개발자를 위한 다양한 혜택이 제공됩니다.

  • Vue.js.에 지원되는 코드 완성 기능 대폭 향상
  • Vue.js 프로젝트에 빠른 문서 지원
  • propTypes 없는 React 구성 요소 속성에 대한 지원 향상
  • Angular 지원 향상
  • TypeScript 3.7 지원 추가 및 JavaScript/TypeScript 지원에서 기타 개선 사항 구현
  • CSS/SASS 지원에 대한 몇가지 업데이트
  • 곧 출시되는 Yarn 2 릴리스 지원

자세한 내용은 WebStorm 2019.3의 새로운 기능을 확인해 보세요.

기타 기능

기타 기능

  • 코드 완성 기능이 다양한 MSBuild 항목을 인식하도록 변경하여 프로젝트 파일(.csproj 파일 등)에 대한 Rider의 지원을 개선했습니다. <TargetFramework>/<TargetFrameworks> 유효성 검사를 위해 검사 및 빠른 수정을 사용할 수도 있습니다.
  • 사전 정의된 실행 구성이 더 스마트한 방식으로 생성되므로 추가 이동이나 조정 없이 해당 구성을 실행할 수 있습니다. 또한 이 구성에는 지루한 “Default”대신 적절한 자동 생성 이름이 지정됩니다.
  • $(ProjectDir)launchSettings.json 파일에 지정된 MSBuild 프로퍼티가 더 많이 지원됩니다.
  • Parameter Info(매개변수 정보) 팝업을 Tuple에 사용할 수 있습니다.
  • 새 줄을 삭제하고 새 줄 앞을 삭제하는 코드 입력 지원 기능은 이제 토큰을 분리하거나 서식 규칙에서 요구할 때 공백을 남깁니다.
더 많은 기타 기능

더 많은 기타 기능

  • 식별자 강조 표시가 별도의 C#용 페이지, 전처리기 지시문에 대한 별도 색상, 정적 메서드, 필드 등으로 완전히 새롭게 작업되었습니다.
  • 새로운 NUnit 검사에서 매개변수화된 유닛 테스트의 개별 매개변수 및 조합된 유닛 테스트를 포함합니다.
  • 왼쪽 도구 모음에 전체 확장 버튼이 다시 추가되었습니다.
  • 새로운 반응형 TFS 클라이언트가 실험 모드로 릴리스되었습니다. 사용하려면 간단히 Settings(설정) | Version Control(버전 관리) | TFVC를 열어 해당 모드를 켜면 됩니다. 이 모드를 사용하면 "Checking for changes"(변경 내용 확인) 액션의 속도가 크게 향상됩니다(내부 테스트 기준 현재 약 100~1000배 빠름). Commit(커밋) 및 History(기록) 액션 등 다양한 작업이 초기 릴리스 후에 새 클라이언트로 이식됩니다.