Rider 2024.1은 애플리케이션의 성능을 모니터링하고 주요 메트릭을 수집하는 새로운 기능, 코드의 현재 위치를 더 잘 파악하고 더 빠르게 탐색할 수 있는 고정된 줄, 더 빠르고 간편한 프로젝트 구성을 위해 업데이트된 New Project(새 프로젝트) 대화상자를 제공합니다. 이번 업데이트는 컬렉션 비주얼라이저를 제공하고 두 중단점 사이의 단계별 실행 시간을 표시하여 디버그하는 동안 도움을 줍니다. 게임 개발자는 인기 있는 Unity 애셋인 Odin Inspector의 새로운 기능 모음과 Unreal Engine의 Slate UI 프레임워크 지원을 활용할 수 있습니다.
Rider 2024.1에는 실행 또는 디버그 중에 .NET 애플리케이션 성능을 모니터링하고 백그라운드에서 주요 메트릭을 수집할 수 있는 Monitoring(모니터링) 도구 창이 도입되었습니다.
대규모 파일 작업과 새 코드 베이스 탐색을 단순화하기 위해 에디터 내 고정된 줄 기능을 도입했습니다. 이 기능을 사용하면 스크롤할 때 클래스나 메서드의 시작 부분과 같은 주요 구조 요소를 에디터 상단에 고정할 수 있습니다. 이렇게 하면 범위가 항상 표시되고, 고정된 줄 중 하나를 클릭하여 코드를 즉시 탐색할 수 있습니다.
배열, 목록, 사전 및 기타 열거 가능한 타입과 같은 컬렉션을 검사하여 디버그하는 동안 프로그램 데이터의 상태를 더 잘 이해하고 데이터 처리와 관련된 잠재적인 문제를 확인할 수 있습니다.
새 프로젝트를 쉽게 구성할 수 있도록 New Project(새 프로젝트) 대화상자를 완전히 새롭게 바꾸었습니다. .NET 관련 프로젝트 구성 및 사용자 지정 템플릿 매개변수가 포괄적으로 지원되고, 대화상자에서 바로 타깃 SDK와 해당 MAUI 워크로드를 설치할 수 있습니다.
새 프로젝트를 구성하는 동안 인지 부하를 줄이기 위해 New Project(새 프로젝트) 대화상자를 대대적으로 개선했습니다. 구체적으로 대화상자의 다음과 같은 부분이 새롭게 개선되었습니다.
이전에는 전체 IDE를 확대 및 축소하면서 동시에 모든 UI 요소의 크기를 조정할 수 있었습니다. 원래 크기 범위는 100~200%로 제한되었으나 이제 IDE의 크기를 70%까지 줄일 수 있어 크기와 관련하여 유연성이 더욱 높아졌습니다.
이번 빌드에서는 Terminal(터미널) 도구 창이 시각적 및 기능적으로 새롭게 개선되어 터미널 기반 작업의 편리성과 단순성을 높여줍니다. 이번 업데이트로 도구가 시각적으로 개선되고 기능 모음이 확장되었습니다.
Settings(설정)/Preferences(환경 설정) | Tools(도구) | Terminal(터미널) | Enable New Terminal(새 터미널 활성화)에서 새 터미널을 활성화할 수 있습니다.
개선된 터미널에 대한 자세한 내용은 IntelliJ IDEA의 이 블로그 게시물에서 확인하세요.
이제 소스 코드의 더 많은 코드 구성을 빈 배열이나 ImmutableArray
선언 및 초기화와 같은 C# 12의 컬렉션 표현식으로 변환할 수 있도록 제안 받게 됩니다.
Possible 'System.InvalidOperationException': Collection was modified'(잠재적 'System.InvalidOperationException: 컬렉션이 수정됨')라는 검사가 새롭게 추가되었습니다. 이 검사는 foreach
루프 내에서 반복 처리가 진행되는 동안 컬렉션이 수정되면 런타임에 예외가 발생할 수 있음을 경고합니다. 이 분석에서는 컬렉션 수정 후 루프가 종료되는 경우를 인식하며 이러한 경우에는 경고가 발생하지 않습니다. 이 검사에는 문제를 즉시 해결하는 데 도움이 되는 적절한 빠른 수정이 함께 제공됩니다.
Generate(생성) | Formatting Members(서식 지정 멤버)를 사용하면 상용구 코드를 생성하여 ToString()
메서드를 재정의하고 타입에 의미 있는 문자열을 반환할 수 있습니다. 2024.1 버전부터 이 기능은 ISpanFormattable
, IUtf8SpanFormattable
, IFormattable
과 같은 더 많은 타입을 지원합니다.
[MustDisposeResource]
어노테이션 개선: 이제 C# 코드 분석을 통해 Task<IDisposable>
및 ValueTask<IDisposable>
에 래핑된 리소스를 포함하여 async 메서드에서 반환된 리소스가 올바르게 폐기되도록 하여 작업 자체가 의도치 않게 폐기되는 것을 방지할 수 있습니다. .ConfigureAwait(...)
, .AsTask()
또는 .Result
를 통해 검색된 리소스도 포함하도록 보장합니다. Change Signature(시그니처 변경) 리팩터링에 다음과 같이 몇 가지 개선 사항이 도입되었습니다.
Deconstruct
메서드를 지원합니다. 매개변수를 추가, 제거, 재정렬하고 이름을 바꿀 수 있으며 이러한 변경 사항은 메서드 선언과 해당 사용 위치 모두에 반영됩니다. List<>
에 대한 타입을 지정해야 할 때 코드 완성을 사용하면 int
와 같이 필요한 타입을 쉽게 선택할 수 있습니다. System.Collections.Generic.List<System.Int16>
타입을 지정하면 결과 코드에서 타입이 자동으로 List<short>
로 단축됩니다. in
및 ref readonly
제어자와 record
타입을 포함하여 더 많은 최신 버전의 C# 기능을 지원합니다.이번 릴리스에서는 Make Static(static으로 만들기) 리팩터링이 기본 생성자의 매개변수를 지원합니다. 이러한 매개변수는 Introduce parameters(매개변수 삽입) 목록에 표시되며 쉽게 구별할 수 있도록 별도의 아이콘이 있습니다. 이 리팩터링은 지역 함수에도 사용할 수 있습니다.
솔루션 전체 분석에서 높은 리소스 사용률 모드를 개선하여 CPU 병렬 처리의 효율을 더욱 높임으로써 분석 시간을 크게 줄이려고 노력하고 있습니다. 가비지 컬렉션에 소요되는 시간을 최소화하기 위해 코드 분석 활동의 메모리 할당 프로파일을 개선했습니다. 개선 작업이 진행되는 동안 이 모드를 사용해 보고 어떻게 느끼셨는지 알려주시면 감사하겠습니다.
protobuf-net
라이브러리 지원 코드 분석에서 이제 protobuf-net
라이브러리의 ProtoContract
속성 및 ImplicitFields
열거형이 지원됩니다. 이 두 가지 모두 직렬화에 묵시적으로 사용되는 멤버를 표시하는 데 사용할 수 있습니다. 결과적으로, 해당 멤버에 더 이상 unused members(사용되지 않는 멤버) 경고 플래그가 지정되지 않습니다.
이제 누락된 멤버에 대한 새로운 빠른 수정, 코드 완성 및 Generate(생성) 리팩터링을 통해 객체 표현식에서 재정의 생성을 사용할 수 있습니다.
이제 공용체 사용 위치를 검색할 때 공용체 케이스도 볼 수 있습니다. 그러면 타입 인스턴스가 생성되고 패턴이 일치되는 방식을 쉽게 확인할 수 있습니다.
클래스 및 인터페이스에 대한 레코드 타입과 객체 표현식의 인스턴스를 생성하는 new
접미사 템플릿을 추가했습니다.
F#에 고정된 줄 지원이 구현되어 이제 긴 타입과 함수로 작업할 때 컨텍스트를 확인하기가 더 쉬워졌습니다.
그 밖에도 F# 지원을 위한 새로운 빠른 수정과 컨텍스트 액션이 더 많이 있습니다. GitHub의 전체 릴리스 노트에서 이를 포함해 다른 변경 사항을 확인할 수 있습니다.
ReSharper에 이어 Rider의 새로운 철자 및 문법 검사기도 업그레이드되었습니다. 새로운 철자 검사기는 20개 이상의 언어를 지원하며 Rider가 지원하는 프로그래밍 언어(C#, C++, VB.NET), 마크업 언어(HTML, XML, XAML) 및 주석 내에서 자연어 오류를 찾아냅니다.
Rider 2024.1의 컬렉션 비주얼라이저는 컬렉션(배열, 목록, 사전 및 기타 열거형 타입)을 그래픽으로 표현해 주므로 요소를 확장 및 축소하고, 개별 값을 확인하고, 데이터 구조를 쉽게 탐색할 수 있습니다. 디버그하는 동안 프로그램 데이터의 상태를 이해하고 컬렉션, 조작 또는 데이터 처리와 관련된 문제를 진단하는 데 도움이 됩니다.
디버거가 두 중단점 사이의 코드를 실행하는 데 걸리는 시간을 평가하면 디버그할 때 매우 유용할 수 있습니다. 단계별 실행 시간이 지나치게 길면 코드에 성능 문제가 있을 수 있습니다. Rider로 애플리케이션을 디버그할 때 이제 마지막 중단점과 현재 중단점 사이에 경과된 시간을 표시하는 인라인 힌트가 표시됩니다.
이번 업데이트부터 Rider에서는 여러 구문이 있는 경우 코드 한 줄에 여러 중단점을 설정할 수 있습니다. 관련 인라인 힌트를 사용하거나 단축키(Ctrl + F8)를 통해 중단점을 설정할 수 있습니다.
2024.1 릴리스에서는 Skip to cursor(커서 위치로 건너뛰기) 옵션을 IntelliJ IDEA에서의 작동 방식에 맞춰 제공합니다. 새로운 Run to Cursor(커서 위치까지 실행) 인레이를 이용하면 디버그하는 동안 특정 코드 줄로 빠르게 이동할 수 있습니다. 프로그램이 일시 중지되면 실행을 계속하려는 코드 줄 위로 마우스를 가져가면 됩니다. 그런 다음 Run to Cursor 팝업을 사용하여 커서가 위치한 줄에 도달할 때까지 코드를 실행할 수 있습니다.
이제 Blazor WebAssembly(WASM) 애플리케이션을 실행하고 디버그하는 데 Hot Reload를 사용할 수 있으며, .cs
, .razor
및 .css
파일(범위가 지정된 .razor.css
파일 포함)이 지원됩니다.
이 기능은 기본적으로 활성화되어 있습니다. Settings(설정)/Preferences(환경 설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Hot Reload로 이동하여 구성할 수 있습니다.
디버그할 때 프로세스 덤프가 제공되면 문제를 쉽게 재현할 수 없더라도 오류 발생 시 프로그램 상태를 검사할 수 있으므로 큰 도움이 됩니다. 이전에는 Rider가 C++ 코어 덤프만 처리할 수 있었습니다. 이제 IDE에서 .NET 프로세스용 덤프를 가져올 수도 있습니다.
프로세스 덤프를 가져오려면 Run(실행) | Debug Core Dump(코어 덤프 디버그)로 이동하거나 덤프 파일을 간단히 에디터로 드래그 앤 드롭하세요.
실패한 유닛 테스트나 실패한 빌드에 대해, 또는 디버그 세션 중에 발생한 예외나 오류 메시지 바로 옆에 새로운 Explain with AI(AI로 설명) 버튼이 추가되었습니다.
지역 변수의 이름을 바꾸면 코드 완성 팝업에서 AI 기반의 이름 제안을 받게 됩니다.
2024.1 버전에서는 AI Assistant가 번들로 제공되지 않으며 별도의 플러그인으로 사용할 수 있습니다. 이러한 변경은 AI 기반 기술 사용과 관련된 의사 결정의 유연성을 높이고 작업 환경에서 선호도와 요구 사항을 더 잘 제어할 수 있어야 한다는 생각에 따라 이루어졌습니다. 이전과 같이 AI Assistant를 사용하려면 활성화된 JetBrains AI 구독이 필요합니다.
C++ 지원에서 주목할 만한 개선 사항은 다음과 같습니다.
Rider의 C++ 지원은 ReSharper C++를 기반으로 합니다. 자세한 내용은 ReSharper C++ 2024.1의 새로운 기능을 확인하세요.
디버거 호출 스택에 Blueprint 지원이 추가되었습니다. 호출 스택에 익명의 메모리 주소를 나타내는 대신 Rider에서 이제 기존 C++ 코드와 함께 인터리빙된 Blueprint 호출 정보를 표시합니다. RiderLink 플러그인을 최신 버전으로 업데이트하세요!
이번 릴리스에는 Unreal Engine의 Slate UI 프레임워크에 대한 지원이 추가되어 Rider에 Go to Definition(정의로 이동) 및 Find Usages(사용 위치 찾기) 명령어 사용법과 Slate 매크로에 의해 선언된 심볼의 이름을 바꾸기 위한 Rename(이름 변경) 리팩터링의 사용법을 알려줍니다.
이제 사용자가 서식 다시 지정 액션으로 직접 호출하거나 코드를 입력할 때 Rider에서 Slate DSL 코드 서식을 올바르게 지정합니다.
Blueprint 기능과 Rider 스마트 통합의 연장선으로 UENUM
인스턴스 이름 변경 시 코어 리디렉션 추가 지원과 C++ 코드의 리소스 이름에 대한 애셋 경로 완성이 제공됩니다.
Perforce 지원을 계속해서 개선하고 있습니다. 세션 만료 시 더 쉽게 로그인하고 Rename(이름 변경) 리팩터링 중에 파일을 올바른 변경 목록에 넣을 수 있도록 하는 등 일상 작업의 편의성을 높이는 몇 가지 유용한 개선이 진행되었습니다.
또한 이전에 Visual Studio에서 빌드한 프로젝트를 완전히 다시 빌드해야 하는 원인이 되었던 UnrealBuildTool 문제도 해결했습니다. 그 결과 두 IDE의 사용 경험이 크게 개선됩니다. 이 수정 사항은 Unreal Engine 5.4 및 모든 버전의 Rider에 적용됩니다.
ReSharper C++ 엔진의 C++ 변경 사항도 잊지 말고 모두 확인하세요.
인기 있는 Odin Inspector Unity 애셋을 지원하기 위해 Sirenix의 동료들과 협력하고 있다는 반가운 소식을 전해 드립니다. Rider는 Odin Inspector에 의해 직렬화된 필드와 프로퍼티를 인식하고 강조 표시하며, 레이아웃 속성에서 그룹 이름에 대한 완성 및 검사 기능을 제공하고, Odin의 GUIColor
클래스 미리보기를 표시합니다. 또한 Odin의 범위 속성을 인식하고 Rider의 자체 정수 값 분석에 이러한 값을 사용하여 값이 범위를 벗어나면 경고합니다.
Rider 2024.1은 2023.3 버전에 도입된 셰이더 키워드 지원을 기반으로 구축되었습니다. 셰이더 파일을 편집하는 동안 다양한 키워드를 활성화하거나 비활성화할 수 있으며, 결과적으로 다양한 전처리기 브랜치에서 강조 표시와 코드 분석을 활성화하거나 비활성화할 수 있습니다. 이번 릴리스에는 묵시적 셰이더 키워드, 단계별 로컬 키워드 및 _KEYWORD_DEFINED
접미사가 있는 전처리기 지시문에 대한 지원이 추가되었습니다.
이번 릴리스에서는 기본 게임 객체의 수명 주기를 확인하기 위해 Unity에서 null
상등 비교를 예상치 못하게 처리할 경우, Rider가 이를 강조하는 방식이 업데이트되었습니다. 최신 C# null
검사가 수명 주기 검사를 우회하는 경우, 이제 Rider는 경고를 표시하는 대신 null
비교가 검사를 수행할 때 강조 표시합니다.
이에 대해서는 향후에 블로그 게시물에서 더 자세히 다루겠습니다.
Watches(감시) 창에서 IJobEntity
인스턴스를 검사할 때 Entity
하위 노드를 추가하는 등 Rider의 DOTS 관련 지원이 더 확장되어 디버그 성능이 향상되었습니다. DOTS 시스템에서도 작동하도록 일시 중단점이 업데이트되었습니다. 텍스처 디버그 값 비주얼라이저에서 몇 가지 버그가 수정되었으며, 컬렉션 비주얼라이저가 새로 추가되어 게임 객체 컬렉션에 도움을 줍니다.
또한 애셋 분석의 일부 성능 개선, 직렬화된 필드 인식에 대한 수정을 비롯해 기타 여러 가지 세부적인 수정과 업데이트가 이루어졌습니다. 변경 로그에서 자세한 내용을 읽어보세요.
설정의 Plugins(플러그인) 탭에서 설치할 수 있는 플러그인 옵션을 추가적으로 업데이트하여 Godot을 계속해서 지원합니다. 최근 변경 사항은 다음과 같습니다.
.gd
, .tscn
, .tres
, .godot
등 더 많은 Godot 파일 형식에서 구문을 강조 표시하고 .gdshader
에 대한 강조 표시를 개선했습니다. launchSettings.json
에서 Godot 테스트를 실행하거나 디버그하기 위한 올바른 .NET 런타임을 자동으로 탐지합니다(JetBrains/godot-support#125). @addTagHelper
및 @removeTagHelper
지시문에 대한 참조 해결 Rider는 이제 Razor 뷰의 @addTagHelper
및 @removeTagHelper
지시문 내에 지정된 어셈블리 이름의 참조를 해결합니다. 따라서 이제 코드 완성, 사용 위치 찾기, 편리한 코드 탐색 등의 이점을 누릴 수 있습니다.
또한 Rider는 해결되지 않은 어셈블리 이름을 경고로 강조하여 나타내므로 Razor 뷰에서 쉽게 알아볼 수 있습니다.
이제 Blazor Component(Blazor 구성 요소) 파일 템플릿을 생성할 때 .razor.cs
, .razor.css
, .razor.js
와 같은 추가 파일을 생성할 수 있습니다.
Rider 2024.1에는 prop과 상태를 즉시 생성할 수 있는 몇 가지 새로운 React용 빠른 수정이 도입되었습니다. 단축키 Alt+Enter를 사용하면 이러한 빠른 수정을 적용할 수 있습니다.
웹 개발 개선 사항에 대한 자세한 내용은 이 페이지를 참조하세요.
이번 릴리스에서는 다음을 포함하여 Rider의 VCS 지원 업데이트가 제공됩니다.
여기에서 모든 변경 사항에 대해 알아보세요.
Rider 2024.1을 사용하여 데이터베이스 작업 시 가장 눈에 띄는 개선 사항은 다음과 같습니다.
INSERT
문에 대해 일관되게 적용되는 코드 스타일GROUP BY
절에 대한 열 완성 기능데이터베이스 작업 개선 사항에 대한 자세한 내용은 이 페이지를 참조하세요.
.NET 8 SDK에는 .NET 스택 내 분산형 애플리케이션 구축과 관련된 복잡한 문제를 해결하는 새로운 접근 방식인 .NET Aspire가 도입되었습니다. 이러한 혁신에 대응하여 JetBrains는 Rider용 .NET Aspire 플러그인이라는 새로운 통합 도구를 제공합니다.
이 플러그인은 Rider 2024.1에서 사용할 수 있으며 JetBrains Marketplace에서 직접 다운로드하거나 Settings(설정)/Preferences(환경 설정) | Plugins(플러그인)을 통해 얻을 수 있습니다.
이 블로그 게시물에서 .NET Aspire와 새 플러그인에 대해 자세히 알아보세요.
내장된 dotMemory 프로파일링 도구에서 이제 Frozen Object Heap(FOH)이 지원됩니다. 이 기능은 가비지 컬렉션 성능 개선의 일부로 .NET 6 SDK에 처음 도입되었습니다.
FOH는 불변 객체에 전용 메모리 영역을 할당합니다. 이러한 객체는 할당된 후에도 변경되지 않으며 가비지 컬렉션 대상이 아닙니다. 이 기술의 지원으로 dotMemory가 FOH의 불변 객체에 사용되는 메모리를 더 상세하게 분석하여 메모리 사용을 더욱 최적화할 수 있습니다.
내장된 dotTrace 및 dotMemory 프로파일러가 이제 MAUI 및 .NET macOS 애플리케이션을 지원합니다.
지원되는 대상 프레임워크:
net8.0-windows
, net7.0-windows
net8.0-maccatalyst
, net7.0-maccatalyst
net8.0-macos
, net7.0-macos
사용 가능한 프로파일링 모드에 대한 자세한 내용을 알아보려면 여기를 클릭하세요.
새로운 Azure Toolkit for Rider 플러그인은 .NET 개발자가 가용성과 확장성이 뛰어난 웹 앱을 쉽게 생성, 개발, 구성, 테스트, 관리하고 Azure에 배포하도록 도와주는 오픈 소스 프로젝트입니다.
이 플러그인은 JetBrains Rider 내에서 다운로드하여 설치할 수 있으며 JetBrains Marketplace에서도 이용할 수 있습니다.
이번 릴리스에서는 GitHub Actions에 대한 지원이 향상되었습니다. 효율성을 높이고 GitHub Actions를 위해 특별히 설계된 지능적 기능을 제공하여 CI/CD 워크플로를 강화하는 데 개발 중점을 두었습니다.
구체적으로 다음과 같은 기능 향상이 이루어졌습니다.
action.yml
의 브랜딩 기능자세한 내용은 IntelliJ IDEA 블로그의 이 게시물을 확인하세요.
2023.3 릴리스에 도입된 타입 종속성 다이어그램의 기능이 다음과 같이 다이어그램을 구성하는 새로운 방법을 포함하여 업그레이드되었습니다.
애플리케이션에 맞는 타입 종속성 다이어그램을 생성하는 더 많은 방법을 알아보려면 이 블로그 게시물을 참조하세요.
Rider의 Assembly Explorer(어셈블리 탐색기)에서 이제 WebAssemblies용 WebCIL 패키징 형식을 지원합니다.
지원 내용은 다음과 같습니다.
.wasm
파일 확인