News

JetBrains Qodana 2023.3: 새로운 코드 품질 기능

Read this post in other languages:

JetBrains 팀은 여러분의 의견을 수렴하여 코드 품질을 향상하고 규정을 보다 효과적으로 준수하는 데 도움이 되는 새로운 기능을 만들기 위해 열심히 노력하고 있습니다. 최신 릴리스인 JetBrains Qodana 2023.3에서 무엇을 기대할 수 있는지 살펴보겠습니다.

.NET에 어떤 기능이 새롭게 도입되었을까요?

.NET용 Qodana Community linter의 EAP 출시

이전에는 IDE 외부(CI/CD 서버)에서 커뮤니티 버전의 ReSharper 코드 분석을 실행하려면 ReSharper 명령줄 도구에서 InspectCode를 사용해야 했습니다.

이번 2023.3 릴리스에서는 .NET용 Qodana Community linter 얼리 액세스 프로그램(EAP)을 출시하여 이를 대체합니다!

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

Qodana를 사용하면 다음과 같은 이점이 있습니다.

  • Qodana Cloud의 시그니처 선버스트 다이어그램을 이용해 분석 결과를 확인할 수 있습니다.
  • 프로젝트의 전반적인 상태를 신속하게 평가할 수 있습니다.
  • 베이스라인을 사용하여 기술 부채를 관리할 수 있습니다.

지금 당장은 ReSharper 명령줄 도구를 중단하지 않을 예정이지만 앞으로는 IDE 외부에서 커뮤니티 버전의 ReSharper 분석을 실행하는 데 .NET용 Qodana Community linter가 선호되는 방법이 될 것입니다.

종속성 감사

이제 .NET용 유료 Qodana linter를 사용하면 타사 라이선스 감사를 실행하고 취약한 종속성을 감지할 수 있습니다. ReSharper에는 두 가지 모두 포함되어 있지 않습니다.

Qodana 라이선스 감사는 기업이 라이선스를 점검하고 규정을 준수하는 데 도움을 주는 두 가지 수준의 기능으로 구성됩니다.

이번 릴리스의 라이선스 감사에 새로운 기능이 있나요?

  1. 라이선스 정보 수집: License Audit(라이선스 감사) 탭의 프로젝트 종속성에서 모든 라이선스 정보를 자동으로 수집하고 표시합니다.
  2. 라이선스 준수 검사기: 라이선스 준수 여부를 평가하고 종속성 라이선스와 관련된 잠재적인 법적 위험을 식별합니다.

라이선스 감사 결과를 보고 다운로드하려면 검사가 실행된 Qodana Cloud의 프로젝트를 열고 License audit(라이선스 감사)으로 이동하세요.

라이선스 감사 Qodana

그리고나서

  1. 종속성 트리를 보려면 목록을 확장합니다.
  2. 모든 라이선스 또는 호환되지 않는 라이선스만 보기 사이를 전환합니다.
  3. 호환성에 대한 라이선스 규칙을 확인합니다.
  4. Download license list(라이선스 목록 다운로드) 버튼을 클릭하여 MD, XML, HTML, CSV 또는 고급 SPDX 형식으로 종속성 목록을 다운로드합니다.

Qodana Ultimate Plus에서 사용 가능

라이선스 감사에 대해 자세히 알아보기

.NET Framework용 .NET 네이티브 모드

이제 Qodana는 네이티브 환경에서 실행되므로 비공개 NuGet 피드의 패키지를 사용하고 Windows 에이전트에서 .NET 프레임워크를 대상으로 하는 프로젝트를 분석할 수 있습니다. 배포판을 빌드하는 데 사용하는 동일한 컴퓨터에서 Qodana를 실행할 수 있습니다. 분석을 시작하기 전에 ‘qodana.yaml’ 파일의 ‘bootstrap:’ 섹션에 빌드 명령어를 입력하여 소스를 빌드하는 것이 좋습니다.

모든 요금제에 사용 가능

라이선스 감사 ‘소프트웨어 품목 명세서'(SBOM) 내보내기

SPDX 형식에는 종속성 목록뿐 아니라 프로젝트 구조, 라이브러리 체크섬, 저작권 및 포함된 라이선스 텍스트도 포함되며, 모두 소프트웨어 품목 명세서(SBOM)에 들어 있습니다.

라이선스 감사 보고서를 가져오려면 Download license list(라이선스 목록 다운로드) 버튼을 클릭하기만 하면 됩니다.

Qodana Ultimate Plus에서 사용 가능

.NET, Go 및 Python에 대한 코드 커버리지

2023.2 릴리스 이후, 코드 커버리지는 Java, JavaScript, PHP 사용자가 선호하는 기능으로 자리잡았습니다. Qodana 2023.3에서는 코드 커버리지를 측정할 수 있는 언어 목록에 .NET, Go 및 Python이 추가되었습니다.

최신 Qodana 릴리스에는 메서드, 클래스 또는 파일의 커버리지가 미리 정의된 임곗값 미만인지 확인하는 데 도움을 주는 검사가 추가되었습니다. 결과적인 커버리지는 명령줄 인터페이스(CLI) 출력과 Qodana Cloud UI 모두에 계산되어 표시됩니다.

기본적으로 검사가 활성화되며 검사 프로파일인 Starter(스타터)Recommended(권장)에 모두 포함되어 있습니다. 테스트 커버리지 결과를 보려면 테스트 데이터를 제공하기만 하면 됩니다.

이 기능을 사용하려면 커버리지 보고서가 있는 디렉터리를 Docker 이미지를 사용하는 경우 ‘/data/coverage’ 디렉터리에 매핑하거나 분석 중인 프로젝트 루트 폴더의 ‘.qodana/code-coverage’에 넣을 수 있습니다. 테스트는 개발자가 실행해야 하며 실행 시 데이터가 저장됩니다.

코드 커버리지를 계산하려면 테스트 프레임워크에서 제공하는 추가 정보가 필요합니다.

  • .NET
    • .NET 코드 커버리지를 얻으려면 코드 커버리지 프레임워크인 Coverlet에 액세스합니다.
  • Python
    • 유닛 테스트를 실행하고 결과를 XML 형식으로 변환하려면 coverage.py를 사용합니다.
  • Go
    • 유닛 테스트를 실행하려면 ‘% go test –coverprofile=coverage.out’을 사용합니다. 추가 변환이 필요하지 않습니다.

코드 커버리지 문서

VS Code 확장 

JetBrains는 VS Code를 사용하는 개발자와 가장 널리 사용되는 JetBrains IDE를 사용하는 개발자가 모두 있는 팀에서 JetBrains 코드 품질 인텔리전스를 확장할 수 있다는 발표를 최근에했습니다.

모든 요금제에 사용 가능

VS Code용 확장 프로그램 다운로드

취약점에 대한 검색 기능 강화

Qodana는 팀이 프로젝트에서 취약한 종속성을 찾는 데 도움을 줄 수 있습니다. 하지만 여기서 또 다른 중요한 질문이 제기됩니다. “코드가 실제로 취약한 API를 사용하고 있나요?”

이제 이 질문에 Java, Kotlin, PHP뿐만 아니라 Go, JS, Python에 대해서도 답할 수 있습니다. 이 기능은 JetBrains Qodana는 물론 JetBrains IDE에서도 기본적으로 작동합니다.

Qodana Ultimate Plus에서 사용 가능

Qodana IDE 플러그인의 새로운 업데이트 

Qodana 팀은 최신 버전의 Qodana IDE 플러그인에서 UI를 업그레이드하기 위해 새로운 디자인을 채택했습니다. 브랜치 사이를 전환할 때 혼란을 피하기 위해 이제 IDE에서 브랜치와 일치하는 분석 결과를 볼 수 있습니다.

IDE 플러그인에 대해 자세히 알아보려면 Qodana IDE 플러그인으로 코드 품질을 높이는 내용을 소개하는 개발자 애드버킷 Anton Arhipov의 동영상을 시청하세요.

모든 요금제에서 사용 가능 

동영상 보기

오늘은 여기까지입니다. 그 밖에 소개해 드리지 못한 많은 내용들이 있다는 점을 잊지 마세요! Qodana 2023.3과 관련하여 여기에 다루지 않은 보다 자세한 내용과 추가 기능을 알아보려면 릴리스 노트를 살펴보세요.

코드 품질을 높일 수 있는 방법에 관해 Qodana 팀에 문의하세요

질문 또는 제안 사항이 있거나 Qodana가 팀과 비즈니스에 어떻게 도움을 줄 수 있는지 자세히 알아보고 싶다면 여기에 댓글을 남기거나, X(이전의 Twitter) 또는 LinkedIn에서 JetBrains를 태깅하거나, qodana-support@jetbrains.com으로 문의하세요.

즐겁게 개발하세요!

Qodana 팀

60일 무료 평가판 사용해 보기

게시물 원문 작성자

Jessie Cho

Kerry Beetge

Qodana Advocate, Tech Journalist and IoT enthusiast.

image description

Discover more