ReSharper 2023.3의 새로운 기능

ReSharper 2023.3은 C# 12의 최신 기능을 지원합니다. 또한 새로운 엔티티 관계 다이어그램과 엔티티 관련 문제에 대한 검사도 포함되었습니다. 이번 업데이트에서는 최적화된 배경 코드 분석 및 코드 분석에 할당된 리소스의 양을 제어하는 기능을 포함하여 몇 가지 주요 성능 개선을 제공합니다. ReSharper 2023.3 출시 버전은 AI Assistant의 주요 업데이트를 통해 향상되었습니다.

다운로드

30일 무료 평가 이용 가능

테스트 단계를 마친 AI Assistant 정식 출시

JetBrains의 AI Assistant가 이제 생산성을 높이기 위한 여러 가지 새롭고 향상된 기능과 함께 정식 출시되었습니다. ReSharper의 최신 개선 사항은 다음과 같습니다.

  • 컨텍스트를 인식하는 AI 채팅
  • AI 액션에 대한 프로젝트 인식 향상
  • AI 기반 여러 줄 코드 완성
  • 유닛 테스트 생성
  • XML 문서 생성
  • 사용자 지정 프롬프트 라이브러리를 생성하는 기능

JetBrains AI Service 구독을 통해 ReSharper의 AI Assistant를 추가 기능으로 사용해 보세요.

데모 보기

C# 지원

최신 릴리스를 통해 ReSharper는 기본 생성자, 모든 종류의 타입을 참조하는 별칭 지시문, 컬렉션 표현식, 인터셉터 등 지원되는 C# 12 기능 목록을 확장합니다.

Rider 및 ReSharper 2023.3에 도입된 C# 지원에 대한 최신 업데이트를 알아보려면 이 블로그 게시물을 확인하세요.

데모 보기

성능

ReSharper 2023.3은 이제 입력으로 인해 중단된 코드 분석 서비스가 점진적으로 작동할 수 있는 더 많은 시나리오를 인식하고 도움을 줄 수 있습니다. 이 개선 사항은 대용량 파일을 처리하는 데 특히 유용합니다.

ReSharper 및 Visual Studio 빠른 액션의 통합 개선

또한 최신 업데이트를 통해 솔루션 전반의 코드 분석에 할당할 리소스의 양을 제어할 수 있습니다. 이제 리소스 활용도를 낮음, 보통, 높음 모드 중에서 선택할 수 있습니다.

이름에도 불구하고 높음 모드는 에디터에서의 입력을 방해하지 않고 IDE의 응답성을 저하시키지 않도록 설계되었습니다. 코드 입력에 의해 코드 분석이 중단되는 경우에만 CPU 사용량을 점진적으로 늘리기 시작하여 원활한 입력 환경을 유지하는 동시에 솔루션 전체 분석이 백그라운드에서 소스 코드를 처리합니다.

기타 성능 향상

이제 SomeType _field = new()와 같이 타깃 유형 객체 생성이 많은 솔루션의 경우 타입과 생성자의 사용 위치를 찾기가 더 빨라졌습니다. 이 개선 사항은 리팩터링 속도에도 긍정적인 영향을 미칩니다.

또한 CPU 사용량을 증가시키는 삽입된 언어 처리와 관련된 몇 가지 문제를 해결했습니다.

UX/UI

로컬 함수 추출 리팩터링을 위한 새로운 UX

로컬 함수 추출 리팩터링을 위한 새로운 UX

Extract local function(로컬 함수 추출) 리팩터링의 사용자 환경을 개선했습니다. 과거에는 사용 가능한 옵션 목록에서 새 함수의 위치를 선택하기가 어려웠으며, 해당 선택이 어떤 영향을 미칠지 명확하지 않았습니다.

업데이트된 UX를 사용하면 이제 코드 에디터에서 직접 새 함수의 시그니처를 미리 볼 수 있습니다. 이를 통해 삽입될 위치와 선택이 삽입된 함수에 어떤 영향을 미칠지 정확하게 이해할 수 있습니다. 또한 클로저가 아닌 매개변수로 변환될 변수와 새 위치에서 호출이 가능하도록 재배치될 다른 함수를 확인할 수도 있습니다.

ReSharper 및 Visual Studio 빠른 액션의 통합 개선

ReSharper 및 Visual Studio 빠른 액션의 통합 개선

Visual Studio와 ReSharper의 빠른 액션을 신중하게 사용하면 서로를 잘 보완할 수 있습니다. ReSharper 2023.3에서는 두 시스템의 장점을 쉽게 활용할 수 있습니다. 이제 ReSharper의 빠른 액션만 사용하거나, 둘 모두에 대한 제안 아이콘을 표시하거나, 단일 액세스 지점인 ReSharper의 전구 메뉴에서 모든 빠른 액션을 호출하도록 설정을 조정할 수 있습니다.

코드 참조 복사를 위한 연상 기호

코드 참조 복사를 위한 연상 기호

ReSharper 2023.3에는 Copy Code Reference(코드 참조 복사) 액션을 위한 액세스 키가 도입되었습니다. 이제 한 번의 키 입력으로 컨텍스트 메뉴의 각 코드 참조 타입을 선택할 수 있습니다.

C++ 지원

ReSharper C++ 2023.3에서는 비활성 코드 작업이 훨씬 쉬워졌습니다. 조건부 전처리기 브랜치 내 현재 비활성 코드 블록의 코드 완성 기능이 이제 전역 범위의 심볼을 제안합니다. Find Usages(사용 위치 찾기)도 업데이트되어 이제 전용 결과 섹션에 비활성 코드와 매크로 본문에 있는 사용 위치가 표시됩니다.

ReSharper C++ 2023.3의 새로운 기능에서 C++ 업데이트에 대해 자세히 알아보세요.

코드 서식 지정

새로운 Razor용 코드 서식 지정 엔진

새로운 Razor용 코드 서식 지정 엔진

ReSharper 2023.3에는 Razor를 위한 새로운 서식 지정 엔진이 도입되었습니다. 이는 ReSharper의 현재 C# 서식 지정 도구와 호환되므로 최근 몇 년 동안 도입된 C# 언어 구성 및 ReSharper의 새로운 C#용 서식 지정 옵션 대부분을 지원합니다. 새로운 서식 지정 도구는 또한 더 빠르게 작동하며 문제가 더 적을 것으로 예상됩니다. 그러나 일부 코드의 디폴트 서식 지정이 수정되므로 Razor의 이전 서식 지정 엔진으로 되돌리는 옵션을 도입했습니다. Code Editing(코드 편집) | Razor | Code Style(코드 스타일)에 있는 ReSharper의 Options(옵션)에서 관련 메뉴를 찾을 수 있습니다.

Entity Framework

Entity Framework 관련 문제를 대상으로 하는 검사

ReSharper 2023.3에서는 잠재적으로 런타임 예외를 일으킬 수 있는 Entity Framework 관련 코드의 메서드 사용에 대한 몇 가지 새로운 검사 기능을 제공합니다.

데모 보기

이러한 새로운 검사가 적용되는 두 가지 경우는 다음과 같습니다.

  1. Entity Framework 또는 Entity Framework Core 내에서 SQL로 변환할 수 없는 상태로 데이터베이스 컨텍스트에서 호출될 때 예외를 생성하는 메서드
  2. 데이터베이스 함수로서 독점적으로 구현된 상태로 데이터베이스 컨텍스트 외부에서 호출될 때 예외를 생성하는 메서드
로컬 함수 추출 리팩터링을 위한 새로운 UX

엔티티 관계 다이어그램

이번 릴리스에는 엔티티 관계 다이어그램(ERD)이 도입되었습니다. ReSharper의 ERD는 데이터베이스 모델의 그래픽 표현, 엔티티 간의 관계는 물론 데이터베이스 모델 분석 정보도 제공합니다.

ReSharper 2023.3의 Entity Framework 관련 분석은 무제한 문자열 프로퍼티 길이 및 종속성 루프와 같은 잠재적인 문제가 EF 모델에 있는지 코드를 검사합니다. 그런 다음 해당 검사에서 컨텍스트 메뉴를 호출하고 Show Entity Relationship Diagram(엔티티 관계 다이어그램 표시)을 선택하면 문제를 시각적으로 조사할 수 있습니다.

Entity Framework 관계 시각화와 새로운 검사에 대해 자세히 알아보려면 이 블로그 게시물을 확인하세요.

유닛 테스트

AI 기반 테스트 생성
베타

이전 릴리스에는 유닛 테스트를 쉽게 생성하는 기능이 도입되었습니다. ReSharper 2023.3 내 AI Assistant의 최신 업데이트 버전은 LLM의 기능을 활용하여 유닛 테스트 내에서 코드를 생성할 수 있는 옵션을 제공합니다.

문법 및 철자 검사

새로운 Razor용 코드 서식 지정 엔진

JetBrains Grazie가 ReSharper의 새로운 내장 문법 및 철자 검사기로 사용됩니다. Grazie는 20개 이상의 언어를 지원하며 ReSharper가 지원하는 프로그래밍 언어(C#, C++, VB.NET), 마크업 언어(HTML, XML, XAML) 및 주석 내에서 자연어 오류를 찾아냅니다. Grazie에 다른 자연어를 추가하려면 ReSharper에서 Options(옵션) | Grammar and Spelling(문법 및 철자) | General(일반)로 이동하세요.

.NET용 Qodana Community linter

오래된 예기지만, CI/CD 서버의 IDE 외부에서 ReSharper Code Analysis를 실행하려면 ReSharper 명령줄 도구의 InspectCode 도구를 사용하는 것 외에 다른 선택은 없었습니다. 최근 Qodana는 .NET 도구 라인업을 처음 선보였으며 .NET용 Qodana Community linter에 대한 얼리 액세스 프로그램을 시작했습니다.

Qodana는 ReSharper와 동일한 정적 코드 분석 엔진을 기반으로 하지만 다음과 같은 몇 가지 추가적 이점을 제공합니다.

  • 사용자는 Qodana Cloud의 시그니처 선버스트 다이어그램을 통해 분석 결과를 검사하고 프로젝트의 전반적인 상태를 신속하게 판단할 수 있습니다.
  • 기준선을 사용하여 기술 부채를 관리합니다.

또한 .NET용 유료 Qodana linter를 사용하면 타사 라이선스 감사를 실행하고, 코드 커버리지를 분석하고, 취약한 종속성을 감지할 수 있습니다.

ReSharper 명령줄 도구를 중단하지는 않겠지만, 지금부터는 IDE 외부에서 ReSharper 분석을 실행하는 데 .NET용 Qodana Community linter가 선호되는 방식이 될 것입니다.

dotMemory

Linux 및 macOS의 dotMemory 독립 실행형 dotUltimate 베타

이제 Linux 및 macOS 운영 체제에서 dotMemory의 독립 실행형 버전을 실행할 수 있습니다.

디컴파일러

어셈블리 Diff

이전 릴리스에 도입된 Assembly diff(어셈블리 Diff) 기능을 통해 이제 NuGet 패키지, 폴더 및 .zip 파일을 비교할 수 있습니다.

어셈블리 Diff

이제 어셈블리 비교 기능에 더 많은 비교 옵션이 있습니다. 여러 Diff 모드(Show all(모두 표시), Show only differences(차이만 표시), Show only signature differences(시그니처 차이만 표시), Show only public API differences(공개 API 차이만 표시)) 중에서 선택할 수 있습니다. 또한 Diff에서 멤버/속성 순서 차이와 null 가능 참조 타입 어노테이션의 차이를 무시하도록 지정할 수 있습니다.

어셈블리 탐색기

어셈블리 탐색기 업데이트

  • 이제 Assembly Explorer(어셈블리 탐색기)에서 NuGet 패키지를 탐색할 때 해당 NuGet 패키지 내에 포함된 모든 파일과 폴더를 볼 수 있습니다.
  • 크기와 유형(파악 가능한 경우)을 포함한 Win32 리소스 노드를 이제 노드 표시 트리와 Properties(프로퍼티) 패널에서 볼 수 있습니다.

기타 업데이트:

  • 이제 Win32 문자열 테이블 리소스를 디코딩하는 기능이 도입되었습니다.
  • 이제 ReSharper는 어셈블리/비 어셈블리, 번들 내의 파일, 아카이브, NuGet 패키지, 비교된 어셈블리 및 Win32 리소스와 관련하여 Properties(프로퍼티) 패널 내에 열린 파일의 크기를 표시합니다.
  • 이제 어셈블리 인증코드 시그니처 유효성 검사를 사용할 수 있습니다.
  • 명시적인 #nullable disable 지시문은 디컴파일링된 소스에 표시됩니다.

기타

ASP.NET Core 프레임워크를 타깃으로 하는 애플리케이션용의 새로운 검사

ASP.NET Core 프레임워크를 타깃으로 하는 애플리케이션용의 새로운 검사

Dynamic Program Analysis에는 ASP.NET Core 프레임워크를 타깃으로 하는 애플리케이션에 대해 세 가지 새로운 검사가 도입되었습니다. 이러한 검사는 애플리케이션의 반응을 저하시킬 수 있는 잠재적인 백엔드 성능 문제를 경고하도록 설계되었습니다.

자세히 알아보기

취약한 API 사용을 식별하기 위한 새로운 검사

취약한 API 사용을 식별하기 위한 새로운 검사 보안

Rider 2023.3에는 공개된 취약점을 더욱 명확하고 쉽게 이해하도록 설계된 새로운 보안 검사 기능이 도입되었습니다.

새로운 검사는 프로젝트에서 취약한 NuGet 패키지를 식별하고 코드에서 이러한 라이브러리의 취약한 메서드를 사용하는 인스턴스를 강조 표시합니다. 취약점이 감지되면 시스템이 문제가 있는 코드를 강조 표시하고 이를 해결하기 위한 빠른 조치를 제공합니다. 이러한 조치에는 최신 패키지 버전으로의 업데이트를 권장하고 발견된 취약점에 대한 심층 정보를 제공하는 등이 포함됩니다.

다운로드

30일 무료 평가 이용 가능