Rider의 새로운 기능

Rider 2023.1은 C#을 더 효과적으로 지원합니다. 예를 들어, 다양한 유형의 컬렉션 작업을 최적화하고 속도를 높이는 일련의 검사와 코드에 null 검사를 더 유연하게 도입하는 방법을 제공합니다. Rider를 사용한 게임 개발은 Unity의 데이터 지향 기술 스택(DOTS) 및 Unreal Engine 5.2가 지원되면서 더욱 강력해졌습니다. 여기에는 Blueprints 파일 형식에 대한 최신 업데이트, Godot 4 지원 및 기타 다양한 게임 개발 워크플로 개선이 포함됩니다. 또한 이 최신 버전의 IDE에는 사용 편의성을 돕는 몇 가지 에디터 기능 개선, 버전 관리 도구의 개선 및 Docker 작업 개선, 새로운 UI 및 전반적인 사용자 경험에 대한 여러 가지 개선 사항이 도입되었습니다.

주요 업데이트

Unity의 DOTS 지원 게임 개발

Unity가 객체 지향에서 데이터 지향 설계로 전환한 방향을 따라, Rider 2023.1에도 패러다임을 전환하는 CPU 친화적 게임 구축 접근 방식인 데이터 지향 기술 스택(DOTS)에 대한 지원을 도입했습니다.

자세히 알아보기

컬렉션에서 조회 수 줄이기

컬렉션에서 조회 수 줄이기 C# 지원

조회 수를 줄여 컬렉션 작업을 최적화하기 위한 검사와 해당 빠른 수정을 도입했습니다. 예를 들어, Rider는 불필요한 ContainsContainsKey 검사를 제거하거나 대신 TryAddTryGetValue 메서드를 사용할 것을 제안합니다.

Perforce용 VCS 위젯 버전 관리

Version Control Systems(VCS, 버전 관리 시스템) 위젯에 Perforce가 추가되어 Rider와 Perforce의 통합 기능이 크게 업그레이드되었습니다. Perforce용 VCS 위젯은 Commit(커밋), Revert(되돌리기), Update Project(프로젝트 업데이트)와 같은 필수 액션에 대한 빠른 액세스를 제공합니다. 여기에 현재 작업공간과 연결 상태도 표시됩니다.

문자열 변수용 비주얼라이저 디버거

디버그 세션 중에 이제 HTML, XML, JSON, JWT 또는 URL 인코딩 문자열 변수에 대해 시각화된 값을 볼 수 있습니다. Debug(디버그) 도구 창의 Threads & Variables(스레드 및 변수) 탭에서 문자열 옆에 있는 View(보기) 링크를 클릭하기만 하면 됩니다. 또는 에디터에서 변수 위로 마우스를 가져가면 나타나는 View(보기) 링크를 클릭합니다.

C# 지원

컬렉션에서 조회 수 줄이기

컬렉션의 조회 수를 줄여 다양한 유형의 컬렉션으로 작업할 때 이를 최적화하고 속도를 높이는 빠른 수정이 포함된 일련의 검사를 도입했습니다.

  • HashSet 또는 ISet 인터페이스를 구현하는 다른 컬렉션에 항목을 추가하기 전에 Contains(item) 검사를 제거합니다.
  • Dictionary 또는 IDictionary 인터페이스를 구현하는 다른 컬렉션에 항목을 추가하기 전에 ContainsKey(key) 검사를 제거합니다.
  • 가능한 경우 Dictionary 컬렉션 또는 Dictionary에서 상속된 컬렉션에 TryAdd(key, value)를 사용합니다.
  • 가능한 경우 IDictionary 컬렉션에 TryGetValue(key, out value)를 사용합니다.

Null 검사 패턴의 Syntax style(구문 스타일)

새로운 Syntax style(구문 스타일) 설정을 제공하여 패턴 내에서 not null 검사의 일관된 스타일을 적용할 수 있도록 했습니다. 여기에는 빈 재귀 패턴 구문 { }와 부정 패턴 not null의 두 가지 옵션이 있으며 후자가 디폴트 값입니다. Settings(설정)/Preferences(환경 설정) | Editor(에디터) | Code Style(코드 스타일) | C# | Syntax Style(구문 스타일) 탭으로 이동하여 언제든지 동작을 조정할 수 있습니다.

not null 패턴을 사용하면 재귀 패턴 { LastName: { } lastName }과 같이 확인된 값에 대해 변수 이름을 도입할 수 없기 때문에 단점이 있습니다. 동일한 값에 대한 모든 액세스를 통일하기 위해 not null 패턴에 Add pattern variable(패턴 변수 추가) 컨텍스트 액션을 추가하여 동일한 값에 액세스하는 표현식을 찾고(변수 이름이 도입됨) 이 모두를 새로 도입된 이름으로 대체하도록 했습니다.

ArgumentNullException.ThrowIfNull null 검사 스타일

ArgumentNullException.ThrowIfNull null 검사 스타일

.NET 6.0 SDK에 null 검사를 위한 새로운 API인 ArgumentNullException.ThrowIfNull이 도입되었습니다. 이후 코드 분석 엔진은 이 검사 접근 방식을 인식했지만 이 API를 Rider에서 생성한 null 검사의 디폴트 스타일로 사용할 수 있는 옵션이 없었습니다.

2023.1 릴리스에서는 Rider의 Settings(설정)/Preferences(환경 설정) | Editor(에디터) | Code Style(코드 스타일) | C# | Null checking(Null 검사)ArgumentNullException.ThrowIfNull 패턴을 추가했습니다.

공통 프로퍼티 패턴 추출

공통 프로퍼티 패턴 추출

프로퍼티 패턴 일치를 많이 사용하는 경우, 빠른 수정이 포함된 검사를 사용해 보세요. 코드 흐름에 여러 프로퍼티 패턴이 함께 나타날 때 공통 요소를 추출할 수 있습니다. Extract common property pattern(공통 프로퍼티 패턴 추출) 빠른 수정으로 생성된 코드는 공통 프로퍼티 패턴을 더 높은 수준의 패턴으로 이동하여 코드 반복을 줄이는 데 도움을 줍니다.

빈 리전 제거

빈 리전 제거

C# 개발자는 #region 지시문과 IDE의 코드 접기를 사용하여 코드를 구조화하는 경우가 많습니다. 리팩터링하면 일부 #region이 비어 있을 수 있으며, 이로 인해 접었을 때 코드를 잘못 오인할 소지가 있을 수 있습니다. 이 새로운 코드 검사를 통해 접힌 상태의 빈 #region을 식별하고 해당하는 빠른 수정으로 코드를 정리할 수 있습니다.

span.SequenceEqual(“str”) 대체

span.SequenceEqual(“str”) 대체

코드 분석에 span.SequenceEqual("stringLiteral")span is "stringLiteral"로 대체할 것을 제안하는 코드 검사가 제공됩니다. 함수를 호출하는 것보다 더 깔끔하고 편리한 C# 구문 솔루션입니다.

람다에 대한 반환 타입 사양 추가

람다에 대한 반환 타입 사양 추가

C#의 람다 식은 타입이 묵시적으로 지정된 매개변수와 추론된 반환 타입을 가질 수 있습니다. 그러나 복잡한 오버로드 해결 상황에서 코드를 명확히 하기 위해 명시적 타입을 추가할 수 있습니다. C# 11부터 람다 식에 대한 반환 타입 사양을 추가하는 것도 가능합니다.

이러한 기능을 구현하기 위해 2023.1 버전에는 Insert return type specification(반환 타입 사양 추가) 컨텍스트 액션을 도입했습니다. 이 액션은 메서드, 클래스, 파일, 프로젝트 또는 전체 솔루션을 포함한 모든 범위에 적용할 수 있습니다.

Pattern is redundant(불필요한 패턴) 검사

Pattern is redundant(불필요한 패턴) 검사

C# or/and/not 패턴은 간단한 값 검사에 유용하지만 ||/&&/!와 같은 기존 표현식보다 인식하기 어려울 수 있습니다. 또한 소괄호가 빠진 경우에 찾기 어려운 버그를 만들어낼 수도 있습니다. 이 문제를 해결하기 위해 복잡한 패턴 내의 '죽은(Dead) 코드' 검사를 경고하는 새로운 코드 분석을 도입했습니다.

Convert to list pattern(목록 패턴으로 변환) 컨텍스트 액션

Convert to list pattern(목록 패턴으로 변환) 컨텍스트 액션

C# 11 목록 패턴에 대한 지원을 지속적으로 개선하고 있습니다. 새로운 Convert to list pattern(목록 패턴으로 변환) 컨텍스트 액션을 사용하면 컬렉션 길이 검사를 목록 패턴 구문으로 전환할 수 있습니다. 이 액션은 컬렉션 길이를 확인할 수 있는 모든 컨텍스트에서 작동합니다.

게임 개발

Unity

DOTS 지원

데이터 지향 기술 스택(DOTS)은 크게 달라진 Unity의 새로운 아키텍처입니다. 연속 벡터에 구성 요소 데이터를 저장하므로, 시스템이 보다 CPU 효율적인 방식으로 해당 데이터에 액세스하고 수정할 수 있습니다. 이를 통해 특히 규모가 크고 야심 찬 프로젝트에서 성능이 개선됩니다.

이번 릴리스에서는 게임 개발을 위한 가장 혁신적인 IDE로서 Rider의 명성을 더욱 드높이기 위해 Unity DOTS에 대한 지원을 도입했습니다.

Rider 2023.1에서는 다음과 같은 새로운 기능을 활용할 수 있습니다.

  • 새 파일 템플릿.
  • DOTS 타입을 위한 Code Vision.
  • 제작 컴포넌트를 '베이커' 매핑 코드로 자동 생성.
  • 새로운 DOTS 스타일에서 작동하도록 코드베이스를 작성하고 업데이트하는 데 도움을 주는 검사와 빠른 수정.

이 블로그 글과 데모에서 Rider의 DOTS에 대한 모든 내용을 알아보세요.

USB를 통해 Android 기기에서 디버그

WiFi를 통해 Android 게임을 디버그하는 것이 가능했지만 때로는 케이블을 사용하는 것이 더 나을 수도 있습니다. Rider 2023.1은 이제 USB를 통한 Android 게임 디버그를 지원합니다.

Attach to Unity Process(Unity 프로세스에 연결) 대화상자를 사용하여 연결된 기기에서 실행 중인 프로젝트를 확인하고 디버그를 시작하면 됩니다.

연결된 플레이어의 임시 실행 구성

연결된 플레이어의 임시 실행 구성

Rider 2023.1은 Attach to Unity Process(Unity 프로세스에 연결) 대화상자를 통해 플레이어를 디버그할 때 임시 실행 구성을 자동으로 생성합니다. 이 덕에 다른 디버그 세션을 더 쉽게 시작할 수 있습니다. 사용자는 이 실행 구성을 저장하여 영구적으로 유지하고 팀과 공유할 수 있습니다. 이 기능은 데스크톱, 모바일 기기, 콘솔 및 USB 기기(iOS 또는 Android)를 포함하여 지원되는 모든 플레이어에서 작동합니다.

문서

문서

Rider는 이미 .NET 기본 클래스 라이브러리 및 핵심 Unity API에 대한 온라인 문서를 제공합니다. 이에 더해 이번 릴리스에서는 DOTS를 포함해 Unity 레지스트리 패키지에 대한 온라인 문서에 빠르게 액세스할 수 있도록 했습니다. F1 키를 누르거나 심볼 위로 마우스를 가져가면 나타나는 Quick Documentation(빠른 문서) 팝업을 참조하여 문서 링크를 볼 수 있습니다.

Rider의 Unity 지원에 표시되는 텍스트는 나머지 제품과 마찬가지로 한국어, 중국어 및 일본어로 현지화되었습니다. 또한 Rider는 Unity 온라인 도움말과 툴팁 요약에도 가능한 경우 현지화된 문서를 사용합니다.

UI 툴킷 친화적인 파일 템플릿

Unity 2022.2부터 UI Toolkit(UI 툴킷)이 Unity 에디터용 UI 확장을 작성하는 데 권장됩니다. 우선, UI Toolkit을 기반으로 하는 3가지 새로운 사용자 지정 가능 파일 템플릿(에디터 창, 프로퍼티 드로어 또는 커스텀 인스펙터 에디터 생성)을 추가했습니다. 이러한 템플릿은 Unity 2022.2 이상에서만 사용할 수 있으며 IMGUI 버전은 계속 사용할 수 있습니다.

물론 여기서 끝이 아닙니다!

항상 그렇듯이, 파생 타입 및 [SerializeReference] 속성을 사용하는 복잡한 시나리오에 대한 지원을 포함하여 코드에서 직렬화된 필드를 더 정확하게 탐지하는 등, 다른 많은 변경 사항과 업데이트가 있습니다. 또한 Unity 애니메이션에서 C# 코드의 사용 위치를 찾고 메서드를 이벤트 핸들러로 강조 표시하기 위한 지원을 개선했습니다. [Header] 속성을 별도의 줄에 배치해 달라는 요청이 많았던 만큼, 서식 지정 엔진이 그에 따라 업데이트되었습니다.

Unreal Engine

Unreal Engine 5.2 지원

Epic Games는 Unreal Engine 5.1 및 5.2에서 UnrealHeaderTool(UHT)을 UnrealBuildTool(UBT)로 병합했습니다. Rider 2023.1에도 이러한 변경 사항이 적용되었으며 Rider의 UHT 통합 기능이 새로운 Unreal Engine 버전에서 작동합니다. Rider는 이제 Unreal Engine 5.2에 포함될 Blueprints 파일 형식에 대한 최신 업데이트도 지원합니다.

새 UE 클래스 컨텍스트 액션

Unreal Class... 컨텍스트 액션을 재작업하여 이제 선택할 수 있는 다양한 상위 클래스와 클래스가 공개인지 비공개인지 지정하는 옵션을 제공합니다. 전반적으로 이제 대화상자가 Unreal Engine의 해당 부분과 외관 및 작동 방식에서 더 잘 일치합니다.

Blueprint 오류 구문 분석

Rider에서 Blueprint 파일의 구문이 분석되지 않는 경우, Rider는 이제 Problems(문제) 뷰 창의 별도 Blueprints(블루프린트) 탭에 구문 분석 오류를 표시합니다. 이를 통해 기본 파일 시스템 탐색기에서 문제가 있는 파일을 찾을 수 있습니다. 각 문제에는 탐지된 오류의 종류에 대한 간단한 설명이 포함되어 있습니다.

Clang 컴파일 메시지 구문 분석

Clang 컴파일 메시지 구문 분석

Rider 2023.1은 이제 macOS 및 Linux에서 Unreal Engine 게임을 빌드할 때 Clang 컴파일러에서 생성된 메시지를 분석할 수 있습니다. 파일 링크를 포함하여 Build Output(빌드 출력) 도구 창의 모든 Clang 경고와 오류가 올바르게 분석됩니다. 링크를 두 번 클릭하면 경고 또는 오류가 있는 코드의 정확한 위치로 이동합니다.

매크로 대체 미리보기

매크로 대체 미리보기

매크로 위로 마우스를 가져가면 툴팁에서 전체 구문 강조 표시 및 적절한 코드 서식 지정과 함께 확장 미리보기를 볼 수 있습니다. 이전과 같이 Substitute macro call(매크로 호출 대체) 컨텍스트 액션을 사용하여 에디터에서 바로 확장이 가능하지만 즉시 미리보기를 이용하면 매크로 작업이 더 쉬워집니다.

UInterface 라이브 템플릿

UInterface 라이브 템플릿

Rider는 이제 Unreal Engine 솔루션을 위한 기본 UInterface 라이브 템플릿을 제공합니다. 기존 UCLASS, USTRUCTUENUM 라이브 템플릿과 마찬가지로 UInterface를 사용하면 Unreal Engine 규칙을 따르는 새로운 인터페이스 클래스를 빠르게 추가하여 수동으로 생성할 때보다 시간과 노력을 절약할 수 있습니다.

셰이더 매핑

이제 가상 및 물리적 셰이더 디렉터리에 대한 매핑을 지정할 수 있습니다. 게임 또는 엔진 프로젝트에 RiderLink가 설치되어 있으면 Unreal Engine에서 셰이더 매핑 정보를 로드할 수도 있습니다.

Godot

Godot 플러그인

Rider용 Godot 플러그인의 최신 버전이 다음 업데이트 및 수정과 함께 제공됩니다.

  • res:// 완성 기능이 개선되어 유용성과 가시성이 향상되었습니다. 알려진 특정 API 호출(예: GD.LoadPackedScene)의 경우 res:// 접두사를 입력하기 전에도 문자열 리터럴 완성을 즉시 사용할 수 있습니다.
  • Godot 4는 Mono 대신 .NET6 런타임에 의존하므로 변화를 수용하기 위해 몇 가지 수정이 필요했습니다. 이제 Godot 애플리케이션을 디버그하고 중단점에 도달하면 Current Scene(현재 씬)Immediate Window(즉시 실행 창) 내에 자동으로 생성됩니다. 또한 Immediate Window(즉시 실행 창) 내의 모든 Godot.NodeChildren(하위) 그룹이 추가되며, 이 그룹을 사용하면 Godot.Node의 하위 항목과 그 하위 항목을 재귀적으로 표시할 수 있습니다.

코드 에디터

선택한 코드에서만 공백을 표시하는 옵션

선택한 코드에서만 공백을 표시하는 옵션

Settings(설정)/Preferences(환경 설정) | Editor(에디터) | General(일반) | Appearance(모양) | Show Whitespaces(공백 표시)Selection(선택) 체크박스가 새롭게 추가되었습니다. 해당 체크박스를 누르면 코드를 선택한 경우에만 Rider에서 공백을 작은 점으로 표시합니다.

색상 및 브러시 미리보기

색상 및 브러시 미리보기

Rider 내의 코드 에디터는 이제 WPF 애플리케이션에서와 마찬가지로 Avalonia XAML(.axaml) 및 C# 파일 내의 값 및 참조에 대한 색상과 브러시 미리보기를 렌더링합니다.

타입 변환 힌트를 숨기는 옵션

타입 변환 힌트를 숨기는 옵션

Rider에서 선택한 연산자에 대한 타입 변환 힌트를 숨길 수 있게 했습니다. 인레이 힌트를 숨기려면 연산자 옆에 캐럿을 놓고 Alt+Enter 단축키를 사용하여 컨텍스트 메뉴를 트리거한 다음, Configure Inlay Hints(인레이 힌트 구성) | Type Conversion Hints(타입 변환 힌트)로 이동하여 Hide for…(숨길 대상) 액션을 선택합니다.

Settings(설정)/Preferences(환경 설정) | Editor(에디터) | Inlay Hints(인레이 힌트) | C# | Type Conversion Hints(타입 변환 힌트)로 이동하여 타입 변환 힌트를 숨길 연산자 목록을 구성할 수도 있습니다.

해시 및 특수 값에 대한 맞춤법 검사 제거

해시 및 특수 값에 대한 맞춤법 검사 제거

이제 해시 및 특수 값의 철자는 검사하지 않고, 철자 오류로 보고하지 않도록 Typo(오타) 검사를 업데이트했습니다. 이번 업데이트에 포함된 사항은 다음과 같습니다.

  • Md5, Sha1Sha256 16진수 값.
  • shaNNN- 접두사가 붙은 Sha384Sha512 Base64 인코딩된 무결성 값.
  • JWT 토큰.
xUnit 속성에 대한 매개변수 이름 힌트

xUnit 속성에 대한 매개변수 이름 힌트

NUnit에서와 마찬가지로 Rider에서도 이제 xUnit 테스트에서 InlineDataInlineAutoData 속성에 대한 매개변수 이름 힌트를 표시할 수 있습니다.

웹 개발

Angular에서 코드 완성 시 가져오기

Rider 2023.1에서는 Angular 템플릿에서 전역 심볼 및 내보낸 심볼로 작업하면서 코드 완성 또는 빠른 수정을 사용할 때, IDE가 해당 심볼에 대한 가져오기를 구성 요소에 자동으로 추가합니다.

Vue 템플릿 표현식에서 TypeScript 지원

Rider 2023.1에 Vue 템플릿 표현식의 TypeScript 지원이 포함되었습니다. 이제 Vue 템플릿 표현식이 스크립트 태그에 추가될 때 lang=”ts”와 동기화됩니다. 그 결과, Rider가 TypeScript를 더 잘 평가하여 스크립트 태그 내에 있는 내용과 일치하는 환경 설정과 관련 리팩터링을 제공할 수 있습니다. 그 동안 순수 .js.ts 파일에 대한 설정과 리팩터링 사이에 차이가 있음을 알아차리셨을지도 모르겠습니다. 이제 lang 속성이 일치합니다.

문자열을 템플릿 리터럴로 자동 변환

문자열을 템플릿 리터럴로 자동 변환

Rider에서 ${를 입력할 때마다 작은따옴표 또는 큰따옴표로 묶인 문자열을 템플릿 리터럴로 자동으로 변환하는 기능도 추가되었습니다. 이 기능은 원시 문자열 및 JSX 프로퍼티에도 사용할 수 있습니다.

자세히 알아보기: WebStorm 2023.1의 새로운 기능

UX/UI 개선 사항

전체 IDE 확대/축소

전체 IDE 확대/축소

이제 Rider를 확대 및 축소하여 모든 UI 요소의 크기를 한 번에 늘리거나 줄일 수 있습니다. 메인 메뉴에서 View(보기) | Appearance(모양)를 선택하고 IDE의 배율을 조정하면 됩니다.

새로운 Remember size for each tool window(각 도구 창 크기 기억) 설정

새로운 Remember size for each tool window(각 도구 창 크기 기억) 설정

Rider 2023.1에서 새로운 레이아웃 옵션을 통해 사이드 도구 창의 너비를 통합하거나 레이아웃을 사용자 지정하여 크기를 조정할 수 있습니다. 새로운 Remember size for each tool(각 도구 창의 크기 기억) 체크박스는 Settings(설정)/Preferences(환경 설정) | Appearance & Behavior(모양 및 동작) | Tool Windows(도구 창)에서 설정할 수 있습니다.

<i>Search Everywhere(전체 검색)</i> 시 ML 기반 클래스 검색 기본 지원

Search Everywhere(전체 검색) 시 ML 기반 클래스 검색 기본 지원

더욱 관련성 높고 정확한 검색 결과를 제공하기 위해 머신러닝 순위를 Search Everywhere(전체 검색)(Shift 두 번 누르기) 기능에 통합하기 위한 노력을 지속하고 있습니다. 이제 Classes(클래스) 탭의 정렬 알고리즘, Actions(액션)Files(파일) 탭의 결과는 기본적으로 머신러닝을 기반으로 표시됩니다.

새 UI 변경 사항 베타

도구 창의 세로 분할

도구 창의 세로 분할

새 UI의 경우 도구 창 영역을 분할하여 이러한 창을 편리하게 정렬할 수 있는 옵션을 도입했습니다.

이 영역에 도구 창을 추가하여 아래쪽에 배치하려면 사이드바를 따라 해당 아이콘을 드래그하여 구분선 아래에 놓으면 됩니다. 또는 아이콘을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 호출하고 Move to(다음으로 이동) 액션을 사용하여 도구 창에 대한 새 위치를 지정할 수 있습니다.

Compact Mode(콤팩트 모드)

Compact Mode(콤팩트 모드)

더 작은 화면에서 Rider의 새로운 UI로 작업할 때 사용자 환경을 개선하기 위해 Compact Mode(콤팩트 모드)를 도입했습니다. 이 모드에서는 툴바와 도구 창 헤더의 높이가 줄어들고 여백이 축소되며 아이콘과 버튼이 더 작아져, 한층 통합된 모양과 느낌을 제공합니다.

Compact Mode를 켜려면 View(보기) 메뉴로 이동하여 Appearance(모양) | Compact Mode(콤팩트 모드)를 선택합니다.

macOS의 프로젝트 탭

macOS의 프로젝트 탭

새로운 UI와 관련하여 가장 많은 요청을 받은 기능 중 하나인 macOS 사용자를 위한 프로젝트 탭이 구현되었습니다. 여러 프로젝트가 열려 있는 경우, 메인 툴바 아래에 표시된 프로젝트 탭을 사용하여 프로젝트 사이를 쉽게 전환할 수 있습니다.

숨겨진 탭 표시

숨겨진 탭 표시

새 UI에 Show Hidden Tabs(숨겨진 탭 표시) 기능을 추가했습니다. 열린 탭 옆에는 이전에 숨겨졌을 수 있는 열린 탭의 전체 목록을 표시하는 드롭다운이 있습니다.

새롭게 디자인된 Run(실행) 위젯

메인 창 헤더의 Run(실행) 위젯 디자인이 한층 차분한 색을 사용하여 더 은은해지고 보기 편해졌습니다.

버전 관리 도구

GitHub 코드 검토 워크플로 개선

Rider 2023.1에서는 IDE 내의 코드 검토 프로세스를 세밀하게 조정했습니다. 자체적으로 조사한 바에 따르면 사용자는 일반적으로 코드 검색이 필요한 경우 GitHub와 IDE 사이를 전환합니다. 그래서 이 워크플로를 개선하기 위해 Pull Requests(풀 리퀘스트) 도구 창을 재작업했습니다.

이제 창에 풀 리퀘스트별 전용 탭이 있으며, 사용자가 해당 작업에만 집중할 수 있도록 필수 정보만 표시합니다. 또한 풀 리퀘스트의 현재 상태에 대한 가장 중요한 액션을 쉽게 실행할 수 있는 버튼도 추가되었습니다.

Create New Branch(새 브랜치 생성) 팝업에서 자동 완성 지원

Create New Branch(새 브랜치 생성) 팝업의 자동 완성

Rider 2023.1의 Create New Branch(새 브랜치 생성) 팝업에 자동 완성 기능이 구현되었습니다. 새 브랜치 이름을 입력하기 시작하면 IDE에서 기존 로컬 브랜치의 이름을 기반으로 적절한 접두사를 제안합니다.

Branches(브랜치) 팝업 개선

Branches(브랜치) 팝업 개선

Branches(브랜치) 팝업의 사용 편의성이 개선되었습니다. 브랜치는 그룹으로 설정되어 확장 가능한 목록에 저장되므로 브랜치 간 탐색이 더 간편해졌습니다.

데이터베이스 도구

데이터베이스 스키마 비교

Schema Compare(스키마 비교)는 데이터베이스 개발 및 유지 관리에 필수적인 도구입니다. 이를 통해 사용자는 두 데이터베이스를 비교하여 차이점을 빠르게 식별하고 불일치가 없는지 확인하며 데이터를 최신 상태로 유지할 수 있습니다.

Rider 2023.1에는 연결된 데이터베이스, SQL Server 데이터베이스 프로젝트 및 .dacpac 파일을 위한 Schema Compare가 도입되었습니다. 비교를 시작하려면 Solution Explorer(솔루션 탐색기)에서 데이터베이스 프로젝트 파일을 마우스 오른쪽 버튼으로 클릭하고 Schema Compare…를 선택합니다.

Schema Compare(스키마 비교)(.scmp) 파일을 보고 편집할 수 있는 전용 에디터 창을 만들었습니다. 또한 Problems(문제) 뷰 창에는 이제 데이터베이스 비교 결과로 식별된 문제뿐만 아니라 데이터베이스 모델의 유효성 검사로 발견된 문제도 표시됩니다.

중요: Rider의 Schema Compare 구현은 SQL Server Data Tools를 기반으로 하므로 컴퓨터에 Microsoft Visual Studio(버전 2017 이상)가 설치되어 있어야 합니다.

Docker

빠른 모드 실행

이제 Fast Mode(빠른 모드)를 사용하여 Rider에서 Docker 프로젝트를 실행할 수 있습니다. 이전에는 디버그 시에만 이 모드를 사용할 수 있었습니다. 또한 더 광범위한 Dockerfile에서 Fast Mode를 사용할 수 있도록 했습니다. 마지막으로, 솔루션 시작 중에 Docker 이미지를 가져와 검사하는 식으로 Fast Mode를 더욱 빠르게 만들었습니다.

자동 생성된 실행 구성

Rider 2023.1에서는 솔루션을 열 때 자동으로 .dcproj 프로젝트 파일에서 Docker Compose 실행 구성을 생성할 수 있습니다. 또한 launchSettings.json 파일에 Docker 프로파일이 포함되어 있거나 지정된 DockerfileFile 프로젝트 프로퍼티가 있을 때마다 Dockerfile 실행 구성을 생성할 수 있습니다.

시작 설정 프로파일에서 httpPort, sslPort, publishAllPortsuseSSL 프로퍼티를 지정하여 추가적으로 사용자 지정할 수 있습니다.

생성된 SSL 인증서 공유

Fast Mode(빠른 모드)에서 Docker에 애플리케이션을 배포할 때마다 생성된 HTTPS 개발 인증서를 호스트와 컨테이너 간에 공유해야 합니다. 이에 Docker 실행 구성에 대해 Share generated SSL certificate(생성된 SSL 인증서 공유) 옵션을 추가하여 이 단계를 자동화했습니다. 단, Windows 및 macOS에서만 신뢰할 수 있는 인증서를 공유할 수 있으며, Linux에서는 수동으로 인증서를 신뢰해야 합니다.

Docker Compose

Docker Compose

이제 프로젝트에 Docker Compose를 추가하여 한 번에 여러 컨테이너를 쉽게 처리할 수 있습니다. 이렇게 하려면 프로젝트의 컨텍스트 메뉴를 호출하고 Add(추가) | Docker Compose File(Docker Compose 파일)을 선택하여 다음을 생성합니다:

  • 없는 경우 프로젝트의 Dockerfile.
  • 트리에서 모든 프로젝트 위의 Solution Items 솔루션 폴더에 있는 docker-compose.yml 파일.
  • Dockerfile 또는 docker-compose.yml을 실행하기 위한 몇 가지 실행 구성.

모든 Docker Compose 컨테이너에서 병합된 로그

Docker Compose 노드의 Dashboard(대시보드) 탭은 이제 모든 Docker Compose 컨테이너의 로그를 병합하여 업데이트된 모든 로그를 실시간으로 한 곳에 표시합니다.

Azure Container Registry 지원

이제 Azure Container Registry에 간편하게 연결할 수 있습니다. Settings(설정)/Preferences(환경 설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Docker | Docker Registry(Docker 레지스트리)에서 Registry(레지스트리) 입력 필드의 Docker V2 옵션을 선택하여 설정하면 됩니다.

실행/디버그

실행 구성

경우에 따라 사용자 지정 폴더에 설치된 런타임에서 애플리케이션을 실행해야 할 수도 있습니다. 이를 위해 Run/Debug Configurations(실행/디버그 구성) 페이지의 Runtime(런타임) 설정에 Add Custom Runtime(사용자 지정 런타임 추가) 옵션을 도입했습니다.

Runtime(런타임) 드롭다운 목록에 디폴트 런타임 버전에 대한 경로도 추가했습니다.

Rider 2023.1은 Roslyn 구성 요소를 쉽게 디버그할 수 있도록 launchSettings.json 파일에서 DebugRoslynComponent 명령어도 지원합니다.

Reattach to Process(프로세스에 다시 연결) 액션

Reattach to Process(프로세스에 다시 연결) 액션

이제 메인 메뉴에서 간단히 Run(실행) | Reattach to Process(프로세스에 다시 연결)...로 이동하거나 키보드 단축키 Ctrl+Alt+Shift+F5를 사용하여 Rider의 디버거가 연결되었던 마지막 프로세스에 다시 간편하게 연결할 수 있습니다. 새 액션은 첫 번째 디버그 세션 후에 활성화됩니다.

WASM 시작 코드 디버그

Rider는 이제 WebAssembly(WASM) .NET 애플리케이션의 시작 코드를 디버그할 수 있습니다. 이전에는 포트 계산, 연결 초기화 등을 수행하는 데 약간의 시간이 필요했기 때문에 WASM 디버거가 대부분의 프로젝트에서 앱 초기화 완료 후에만 연결할 수 있었고, 이러한 지연으로 인해 시작 코드를 디버그할 수 없었습니다.

이제 Rider는 페이지 타깃의 초기화를 기다렸다가 디버거를 연결한 다음에만 실제 앱 로드를 시작합니다. 이를 통해 앱 초기화 논리의 초기 단계에서 설정된 중단점을 포착할 수 있습니다.

디버그 종료 시 브라우저 탭 닫기

Rider에서 ASP.NET Core 애플리케이션에 대한 디버그 세션을 시작하면 IDE에서 새 브라우저 창이나 탭이 열립니다. 이전에는 여러 디버그 세션을 실행할 경우 여러 개의 열린 탭이 남아 있어 수동으로 닫아야 했습니다.

이제 사용자가 JavaScript 디버거가 활성화된 상태로 ASP.NET Core 애플리케이션을 디버그할 때 프로세스가 중지되면 Rider가 해당 브라우저 탭을 항상 닫습니다.

F# 지원

코드 완성

Create New Branch(새 브랜치 생성) 팝업에서 자동 완성 지원

필요한 상용구 코드를 쉽게 작성할 수 있도록 새로운 접미사 템플릿인 match, forwith를 도입했습니다.

Create New Branch(새 브랜치 생성) 팝업에서 자동 완성 지원

match 표현식을 시작할 때 union, enum, bool 및 튜플 값에 대한 모든 케이스를 생성할 것을 제안합니다.

정규식 언어 삽입

정규식 언어 삽입

F#용 문자열 리터럴의 정규 표현식 지원을 추가했습니다(Saul Rennison의 많은 도움을 받음). [RegexPatternAttribute] 또는 [StringSyntax(StringSyntaxAttribute.Regex)] 어노테이션이 추가된 문자열 매개변수를 전달할 때, 또는 문자열 리터럴 옆에 주석 //language=regex가 있는 경우, Rider는 문자열을 정규식으로 처리하고 구문과 오류를 강조 표시하며 자동 완성 기능을 제공합니다.

빠른 수정

빠른 수정

  • match 표현식에서 누락된 패턴 브랜치를 생성하는 빠른 수정이 새로 추가되었습니다.

F# 업데이트 및 수정 사항의 전체 목록은 여기에서 확인할 수 있습니다.

플러그인

현지화 베타

Rider 2023.1의 한국어, 중국어, 일본어 현지화를 처음으로 선보입니다! Unity 및 Unreal Engine 지원을 위한 부분을 포함하여 일부 현지화된 UI, 코드 검사, Alt+Enter 메뉴, 도구 창 및 알림이 제공됩니다.

IDE를 현지화하려면 Settings(설정)/Preferences(환경 설정) | Plugins(플러그인)으로 이동하고 Marketplace에서 원하는 언어로 된 언어 팩 플러그인을 검색하세요. 플러그인을 설치하고 IDE를 다시 시작하면 변경 사항이 적용됩니다. 또는 JetBrains Marketplace 웹사이트에서 중국어, 한국어 또는 일본어 언어 팩 플러그인을 다운로드하고 Settings/Preferences | Plugins | ⚙️ | Install Plugin from Disk(디스크에서 플러그인 설치)로 이동하여 설치할 수 있습니다.

Trigger Continuous Testing(연속 테스트 트리거) 액션

Trigger Continuous Testing(연속 테스트 트리거) 액션 dotUltimate

Trigger Continuous Testing(연속 테스트 트리거) 액션과 이에 대한 단축키를 설정하는 옵션을 도입했습니다. 이전에는 프로젝트를 빌드하거나 저장하여 간접적으로만 가능했지만 이 액션을 통해 연속 테스트를 직접 트리거할 수 있습니다.

이 액션에 단축키를 지정하려면 Preferences(환경 설정)/Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Unit Testing(유닛 테스트) | Continuous Testing(연속 테스트)으로 이동하여 Trigger Continuous Testing on…(연속 테스트 트리거)을 선택하고 원하는 단축키를 설정하면 됩니다.

Astro 지원

Rider에서 사용할 수 있는 새로운 플러그인과 함께 초기 Astro 지원이 시작되었습니다. JetBrains Marketplace에서 Astro 플러그인을 다운로드하거나 Preferences(환경 설정)/Settings(설정) | Plugins(플러그인)으로 이동하고 'Astro'를 검색하여 IDE에서 바로 설치할 수 있습니다.

이 플러그인은 구문 강조 표시, 자동 가져오기를 통한 코드 완성, 리팩터링, 탐색, 인텐션, 코드 접기, Emmet 지원 및 올바른 서식 지정과 같은 기본 기능을 제공합니다.

기타 기능

Structure(구조)

Rider 2023.1에는 코드 탐색을 위한 여러 개선 및 수정 사항이 포함되어 있습니다. 이제 Rider는 Structure(구조) 뷰 도구 창에 상속된 멤버를 표시하며 Structure 뷰에서 디컴파일링된 코드의 클래스 멤버를 표시하는 Rider 기능이 복원되었습니다.

Go to File Member(파일 멤버로 이동) 명령어가 실행되면 IntelliJ IDEA의 Structure 뷰 팝업이 사용됩니다. 이를 통해 IDE는 파일 구조를 표시하고 컴파일링된 기본 타입의 심볼을 표시할 수 있습니다. 또한 팝업 내에 그룹화를 구현하여 각 항목의 위치를 한 눈에 알 수 있게 했습니다.

코드 정리

코드 정리

Reformat inactive preprocessor branches in file(파일의 비활성 전처리기 브랜치 서식 다시 지정)은 ReSharper 2023.1에 도입되는 새로운 코드 정리 작업 유형입니다. 이 작업을 통해 비활성 전처리기 브랜치의 서식을 다시 지정할 수 있습니다. 단, 한 번에 전체 파일에만 적용할 수 있으며 C# 소스에서만 작동합니다.

항상 false인 전처리기 지시문 #if 뒤에 숨겨진 코드는 이 작업으로 서식을 다시 지정할 수 없습니다. 이 제한을 가장 잘 보여주는 두 가지 예로 #if false ... #endif#define A #if !A ... #endif 구문을 들 수 있습니다.

유닛 테스트 트리용 텍스트 필터

유닛 테스트 트리용 텍스트 필터

Unit Tests(유닛 테스트)Unit Test Coverage(유닛 테스트 커버리지) 도구 창에서 유닛 테스트 트리에 텍스트 검색 필터를 적용하면, 이제 툴바의 Run(실행) 버튼을 사용하여 테스트를 실행할 때 반영됩니다. 즉, 검색 조건을 충족하는 테스트만 목록에 남고 실행됩니다.

Rename(이름 변경) 리팩터링

Rename(이름 변경) 리팩터링

Rider가 프로젝트에서 파일 이름 변경을 처리하는 방식을 개선했습니다. 이번 버전부터 솔루션 내에서 파일의 이름을 바꿀 때마다 변경 사항과 일치하도록 모든 관련 심볼(클래스, 인터페이스 등)의 이름을 바꾸기 위한 옵션이 있는 대화상자가 나타납니다.