페이지 트리

이 문서는 2024년 2월 6일 출시된 SonarQube 10.4 릴리즈 노트를 공유하기 위해 작성 되었다.

https://www.sonarsource.com/products/sonarqube/whats-new/sonarqube-10-4/




병합될 때 수정될 이슈를 보여주는 풀 리퀘스트

풀 리퀘스트에서 수정된 이슈의 새로운 검토를 통하여 신규 코드에서 여러분이 무엇을 수정하는 지에 대한 추측을 제거합니다.
이제 풀 리퀘스트를 병합하기 전에 해결될 이슈를 확인할 수 있으므로 해결하고자 했던 이슈를 놓쳐 재작업해야하는 확률이 줄어듭니다. 

모든 4개의 CI 플랫폼(GitLab, GitHub, Azure DevOps, Bitbucket)에서의 풀 리퀘스트 데코레이션과 SonarQube의 풀 리퀘스트 요약은 풀 리퀘스트를 병합하자마자 해결될 이슈를 보여줍니다.

Accepted isuues와 Fixed issues 카테고리가 표시되는 SonarQube 풀 리퀘스트 요약 화면



Accepted isuues와 Fixed issues 수가 표시되는 CI 플랫폼의 풀 리퀘스트 데코레이션


Available in Developer Edition | Enterprise Edition | Data Center Edition




브랜치 요약은 이슈의 갯수를 전반적인 코드는 소프트웨어의 퀄리티를 보여줍니다.

브랜치 요약은 이전 카테고리 대신에 단일 이슈 수를 나타내는 Clean Code Taxonomy 뷰로 업데이트되어, 풀 리퀘스트 데코레이션 및 풀 리퀘스트 요약과 일치하게 됩니다.

전체 코드 탭도 높은, 중간, 낮음 중요도 문제의 품질 및 수를 보여주도록 변경하고 있습니다.

New issues와 Accepted issues 카테고리를 확인할 수 있는 New Code 탭은 SonarQube 브랜치 요약을 보여줍니다.



SonarQube 브랜치 요약에는 Accepted issue 카테고리뿐만 아니라 높음, 중간, 낮음 이슈 개수가 포함된 소프트웨어 품질 카테고리가 포함된 전체 코드 탭이 표시됩니다.


Available in Developer Edition | Enterprise Edition | Data Center Edition


"Accepted"로 표시된 이슈를 무시하고 그 수를 추적

개발자는 이슈를 "Accepted"으로 표시할 수 있으며, 이때 해당 문제를 수락하는 방법이 기술적 부채에 기여하는지에 대한 명확한 메시지가 포함됩니다.
SonarQube는 수락된 문제를 추적하고, 브랜치 요약 및 풀 리퀘스트 데코레이션에서 수락된 이슈의 수를 표시합니다. 브랜치 요약은 새로운 코드 및 전체 코드에서 수락된 이슈의 수를 보여줍니다.

선택한 CI 플랫폼의 DevOps에서는 수락된 이슈의 수를 표시합니다. 어떤 위치에서든 수락된 이슈 수를 클릭하면 해당 이슈가 왜 이슈인지에 대한 자세한 내용이 포함된 수락된 이슈 목록으로 이동합니다.

이러한 뷰를 통해 개발 팀은 이슈를 수락함으로써 기술적 부채가 어떻게 누적되는지와 Clean as You Code를 어떻게 대응하는지를 이해할 수 있습니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



더 빠른 스캔 시간

이제 스캐너는 프로젝트에 있는 파일 및 언어에 따라 분석기가 필요한 경우에만 다운로드하므로 스캔 시간과 대역폭이 크게 줄었습니다.

이전에는 프로젝트 세부 정보와 관계없이 모든 분석기를 다운로드했습니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



GitLab으로부터 사용자와 그룹 동기화 및 프로비저닝

이번 릴리스에서는 이전 릴리스에서 GitHub에 대한 자동 구성 추가와 유사하게, SonarQube에서 GitLab의 자동 구성을 지원하기 위한 첫 번째 단계를 진행합니다.

10.4 버전에서는 GitLab에서 SonarQube로 사용자 및 그룹을 프로비저닝하고 동기화할 수 있으며, 이로써 GitLab과의 인증 설정 및 관리 시간이 크게 줄어듭니다.

Available in Developer Edition | Enterprise Edition | Data Center Edition



SonarQube와 SonarLint 연결의 이점

SonarQube의 이슈에서 직접 IDE에서 코드로 이동하여 이슈를 확인하고 수정할 수 있습니다. 이렇게 하면 코드에서 문제를 찾는 데 걸리는 시간이 절약됩니다.
그러나 SonarQube를 SonarLint와 연결하지 않은 경우 IDE로 이동하는 버튼이 작동하지 않습니다.

이제 SonarQube에서 버튼을 클릭하고 SonarLint에 연결되지 않은 경우, SonarQube가 SonarLint에 연결하는 방법을 안내하여 코드 수정을 시작할 수 있습니다.

또한, 10.4 릴리스 버전에서 새로운 기능으로 SonarQube Enterprise Edition은 사용자 정의 비밀 규칙을 SonarLint로 다운로드합니다.

SonarLint는 코드를 작성하는 동안 이러한 비밀을 강조하여 실수로 리포지토리로 전송되는 것을 방지합니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



scanning Helm Chart 지원

SonarQube는 이제 Helm을 기반으로 Kubernetes 배포에 대한 Helm 차트 스캔을 지원합니다.

이때 다른 YAML 파일에 적용되는 Kubernetes 규칙과 동일한 Kubernetes 규칙이 적용됩니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



폐기된 API와 API 매개변수를 보여주는 새로운 로그 파일

업그레이드를 더욱 원활하게 진행하기 위해, 사용 중인 웹 API를 호출하거나 웹 API 파라미터를 사용할 때 발생하는 상세 정보가 포함된 로그 파일을 추가했습니다.

이제 더 이상 사용되지 않는 API나 API 매개변수를 사용할 때 신속한 피드백을 받게 됩니다. 이 새로운 로그 파일은 SonarQube의 관리 섹션에서 다운로드할 수 있으며 파일 시스템에서 직접 액세스할 수 있습니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



Clean Code 분류 체계를 채택한 새로운 룰 속성

템플릿에서 생성한 새로운 룰 속성은 새로운 클린 코드 분류체계로  전환되습니다. 이전에는 룰을 생성할 때 클린 코드 분류 체계와 레거시 속성이 모두 표시되었습니다.

이제는 룰을 생성할 때 클린 코드 분류 체계 값만 표시됩니다. 새로운 룰을 생성하는 템플릿은 레거시 속성에서 클린 코드 분류 체계 값으로의 기본 매핑을 포함하여 Sonar가 새로운 클린 코드 분류 체계 값을 권장하는 내용을 보여줍니다.

그러나 이 기본값을 사용할 필요는 없습니다. 사용자가 선택한 클린 코드 분류 체계 속성으로 룰을 설정할 수 있습니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



Learn as You Code 개선

1,700개의 룰이 "How Can I Fix it?"과 "More Info" 섹션에 대한 개선과 추가로 업데이트되었습니다. 코드 스멜과 보다 심각한 문제 간의 관련성을 설명하는 중요하고 유용한 정보가 포함되어 있습니다.

Available in Community Edition | Developer Edition | Enterprise Edition | Data Center Edition



언어 업데이트

JavaScript/TypeScript:

  • 18 Accessibility rules for React.js
  • Javascript/TypeScript/CSS analyzer will come bundled with the correct Node.js version, removing the need to install and update Node.js in your scanning environment.
  • End of support for NodeJS v14

Java/Kotlin:

  • 10 new rules for Spring Boot, bringing the total up to 40
  • Replicated the 30+ rules from Javax to Jakarta so that both packages now have the same coverage

C/C++

  • 12 new MISRA C++ 2023 rules
  • Detect issues in C++ macros
  • Added support for Wind River’s ccarm compiler

.NET 

  • 5 new Blazor rules
  • 30 .NET rule updates, including false positives, false negatives, and performance improvements

Python:

  • Reached 90% True Positive Rate (TPR) on top 3 Python SAST Benchmarks: DVGA, DSVW, and skf-labs-python
  • Added support for Graphene (GraphQL for Python)
  • Added support for FastAPI framework, rounding out our support of the top 3 API frameworks for Python, including Flask and Django
  • 레이블 없음