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

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



주요 언어 업데이트

Java 21 LTS 및 TypeScript 5.4 지원

Sonar는 최신 언어의 발전을 지원하기 위해 Java 21 LTS를 새롭게 지원합니다.
이를 위해 기존 규칙을 언어 변경 사항에 맞게 업데이트하고, Java 21의 새로운 언어 기능을 다루는 열한 가지 새로운 규칙을 추가했습니다.
TypeScript 개발자를 위해서는 최신 TypeScript 버전 5.4를 지원합니다.

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

C++23 지원

Sonar는 C++의 초기 도입자들을 위해 C++23 지원을 추가하여 그 길을 열어가고 있습니다.
C++20의 도입이 순조롭게 진행되고 있으며, Sonar는 C++23의 도입도 이 추세를 이어갈 것으로 기대합니다.
이제 C++23에서도 SonarQube의 모든 보안 기능을 이용해 코딩할 수 있습니다. 기존의 모든 C++ 규칙은 새 버전의 변경 사항을 반영하도록 업데이트되었습니다.

Available in Developer Edition | Enterprise Edition | Data Center Edition


더욱 빨라진 비밀 검출 분석

멀티코어/멀티 CPU 장비에서 비밀 검출 엔진이 실행될 때, 엔진은 비밀 스캐닝을 위해 병렬 CPU를 활용합니다. 
이를 통해 비밀 검출 분석이 전체 분석 성능에 미치는 영향이 전혀 없도록 보장합니다.

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


Deeper SAST를 위한 추가 라이브러리

Sonar의 계속적인 Deeper SAST(정적 애플리케이션 보안 테스트) 개선을 위해, 공개된 Java 라이브러리에 대한 커버리지를 크게 확장했습니다.
이제 Sonar는 개발자들이 가장 많이 사용하는 2000개의 공개 라이브러리를 커버합니다. 그 결과로 Deeper SAST는 깊게 숨겨진 취약점을 감지하는 기능이 더욱 강력해졌으며, 코드에서 더 많은 문제를 발견할 수 있게 되었습니다.

Available in Developer Edition | Enterprise Edition | Data Center Edition



Kubernetes 및 Helm 차트 개선

Kubernetes와 Helm Chart의 인기가 증가함에 따라, SonarQube는 Kubernetes와 Helm Charts에 대한 보안 규칙을 16개, 유지 관리 최적화 규칙을 16개로 두 배로 늘렸습니다.

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


Python 에서 TensorFlow, Date 및 Time 라이브러리 

Sonar는 AI/ML 개발에 널리 사용되는 주요 Python 라이브러리 중 하나인 TensorFlow 라이브러리를 지원하게 되었습니다.
이로써 Machine Learning 실무자들이 사용하는 주요 Python 라이브러리인 TensorFlow, NumPy, Pandas에 대한 지원이 강화되었습니다.
Python 개발자를 돕기 위한 지속적인 개선 노력의 일환으로, Date & Time 라이브러리 사용 시 발생할 수 있는 문제를 피할 수 있도록 7개의 새로운 규칙을 추가했습니다.

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


.NET에서 C# 로깅 베스트 사례

로깅은 강력한 애플리케이션을 개발하는 데 중요한 부분이며 이제 SonarQube는 .NET 프레임워크에서 C# 로깅 베스트 사례를 지원합니다.
15개의 새로운 로깅 규칙을 사용하면 일반적인 함정을 피하고 로깅 모범 사례를 따를 수 있습니다.


Cover HTML로 접근성 확장

프론트엔드 애플리케이션을 위한 액세스 가능한 코드 작성을 돕기 위해 16개의 규칙을 자바스크립트에서 HTML로 이식하여 자바스크립트, 타이프스크립트 및 HTML 간의 액세스 가능성 규칙의 총 수를 100개 미만으로 제공하게 되었습니다. 

이는 JavaScript 및 React 코드 작성 시와 동일한 접근성 적용 범위가 이제 HTML 코드 작성 시에도 적용된다는 의미입니다.

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


Java에서 코드 효율성 향상

코드의 유지 가능성을 향상시키기 위해 Java 엔터프라이즈 및 Java Android 모바일 개발자를 위한 11개의 새로운 규칙을 추가하여 코드 효율성을 향상시켰습니다.
이러한 새로운 규칙은 애플리케이션의 전력 및 배터리 소비를 줄이는 데 도움이 되는 Sonar의 첫 단계 입니다.

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


전체적인 메인프레임 생태계 청소

Sonar는 COBOL Code뿐만 아니라, 전체적인 메인프레임 생태계를 청소하는데 도움을 줍니다.

이제 COBOL 프로그램의 실행을 조정하는 데 일반적으로 사용되는 메인프레임 스크립팅 언어인 JCL(Job Control Language)을 다루는 규칙이 있습니다.

Available in Enterprise Edition | Data Center Edition



단순화된 프로젝트 온보딩 및 분석 구성

Monorepo에서 모든 프로젝트의 구성 안내

Monorepo는 여러개의 프로젝트를 담는 단일 레포지토리입니다.
이번 릴리즈를 통해서, GitHub나 GitLab으로부터 monorepo를 가져올 수 있으며, SonarQube는 monorepo에서 개별 프로젝트를 설정하는 과정을 안내합니다.
프로젝트의 안내된 온보딩 동안, SonarQube는  프로젝트명에 대한 말머리를 제안합니다.
그런 다음 프로젝트 참조와 키를 추가하고 새 코드 정의를 선택하고 분석을 설정하면 프로젝트가 풀 리퀘스트 데코레이션으로 자동 설정됩니다.

Available in Enterprise Edition | Data Center Edition


모든 파일을 스캔하는 Maven Scanner

Maven 버전 3.11에 대한 새로운 SonarScanner는 이제 Dockerfile, CI 구성 파일, src/main/resources 등을 포함하여 Maven 프로젝트의 루트에서 모든 파일을 자동으로 스캔합니다.

이 릴리스 이전에 Maven 스캐너는 표준 Java 프로젝트의 파일만 분석했습니다. src/main/java 및 src/test/java. 더 이상 루트 Maven 디렉터리의 모든 파일을 재정의 sonar.sources하고 검색할 필요가 없습니다 .

 sonar.tests이 기능은 기본적으로 비활성화되어 있으므로 스캐너가 의도치 않게 갑자기 파일을 선택하지 않습니다. 이 기능을 활성화하려면 set sonar.maven.scanAlltrue로 설정하세요.

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


새로운 C, C++ 및 Objective-C GitHub 작업

이 마일스톤에서는 C, C++ 및 Objective-C 코드를 스캔하기 위해 GitHub Action을 수동으로 설정할 필요가 없습니다.

 GitHub Action Marketplace 에서 Sonar가 제공하는 공식 GitHub Action을 찾을 수 있습니다.

Available in Developer Edition | Enterprise Edition | Data Center Edition



기타 변경 사항