sonarqube는 프로그램 코드 정적 분석 도구이다
프로그램 코드 정적 분석 도구란
- 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법
- 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점 파악 및 표준 코딩 적용에 관한 내용 분석
- 변경된 코드에 관한 피드백
sonarqube 특징
- github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때
지속적인 코드 정적 분석을 위한 환경 제공
- 코드 정적 분석 내용 중앙화 관리 및 visuality 제공
- 사용자가 원하는 품질 요구사항 설정 가능
- 다양한 plugin을 제공하여 확장성 제공
sonarqube 구성 요소
- sonarqube server
- database
- scanner
Scanner(CI/CD)
- 하나 이상의 Scanner가 빌드 과정이나 CI server에서 프로젝트의 코드를 분석한다
- jenkins plugin, gradle plugin..
SonarQube Server
- 3가지 구성 요소로 이루어져 있음
- Web Server
- Search Server
- Compute Engine
- 코드 분석 리포트를 작성하고 DB에 데이터를 저장
Database Server
- 코드 스캔 중에 생성된 코드 품질 및 보안에 대한 지표를 저장
- sonarqube 설정값 저장