본문 바로가기
개발

소나큐브 설치 및 사용법

by 코타 2023. 1. 9.

소나(Sonar, SOund Navigation And Ranging)는 음파에 의해 수중목표의 방위 및 거리를 알아내는 장비를 의미하며 음파탐지기, 음향탐지기 혹은 음탐기로도 불린다.

소나큐브(SonarQube, 이전 이름: 소나/Sonar)는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다. 소나소스(SonarSource)가 개발하였다.

개발을 하다 보면 내 소스에 문제가 있는지 분석을 하고 싶을 때가 있다.

이럴 때 소나큐브를 통해 소스 분석을 할 수 있다.

 

// 소나큐브 설치

https://www.sonarqube.org/

 

the home of clean code

Sonar’s industry leading solution enables developers and development teams to write clean code and remediate existing code organically.

www.sonarsource.com

 
1.소나큐브 공식홈페이지에 들어가서 소나큐브 프로그램을 다운로드 한다.
2.sonarqube-9.7.1.62043.zip zip 파일을 받고 압축을 푼다.
3.Getting started guide에 들어가서 찬찬히 따라해본다.
4.도커를 통한 소나큐브 설치도 가능하다.
 

// 소나큐브 실행

1.압축을 푼 디렉터리로 이동해서 소나큐브를 실행한다.

2.소나큐브가 실행되면 어드민에 접속이 가능하다.
http://localhost:9000/
초기계정: admin/admin

3. Create new project 버튼을 눌러서 프로젝트를 추가할 수 있다.
Azure, Bitbucket, GitHub, GitLab
등을 추가할 수 있고, 로컬 소스도 가능하다.

 

// 소나스캐너 설치 및 실행

1.소나큐브를 사용하는 방법은 여러 가지가 있다. 젠킨스 연동, IDE 플러그인 연동, 소나스캐너. 이번엔 소나스캐너를 사용해 보겠다.

2.https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
공식문서에 접속해서 설치 파일을 다운로드할 수 있다. 소나큐브와 마찬가지로 zip파일, 도커 이미지 등을 사용 가능하다.

3.zip 파일을 풀고 bin 폴더 아래 sonar-scanner.bat 파일을 통해 소나스캐너를 실행할 수 있다. bin 폴더를 path에 등록해 두면 편하게 사용 가능하다.

실행 명령어 형식

sonar-scanner -Dsonar.projectKey=myproject -Dsonar.sources=src1

 

// 소나큐브 분석

- 소나큐브 분석 페이지

1.소나 스캐너를 실행한 뒤 어드민에 접속하면 분석 결과를 확인할 수 있다.

2.버그, 취약점, 보안 위험성, 코드 스멜, 커버리지, 코드 중복 등의 항목의 분석결과가 나온다.

3.A,B,C 등의 등급이 표시되고 A가 좋은 등급, E가 나쁜 등급이다.

 

- 보안 위험성 분석 페이지

1.보안 위험성 분석페이지를 보면 http 프로토콜로 통신하는 것에 대해 경고하는 것을 볼 수 있다.

2.해당 소스의 위치, 라인이 상세하게 나오고 간단하게 조치 방법도 가이드를 해준다.

3.어디에, 무엇을, 취약한 부분, 수정 방법 등이 탭으로 구분되어서 설명이 되어있다.

4.How can I fix it 탭에서 취약점에 대한 수정 방법을 자세하게 설명하고 있다.

 

- 측정 페이지

1.Measures 탭을 눌러서 항목별로 분석 결과를 볼 수 있다.

2.불필요한 화이트 스페이스, 한 줄에 120자 이상의 긴 코드 등도 나쁜 코드로 진단한 것을 볼 수 있다. 꽤 자세하게 진단을 한다.

3.각 항목마다 등급으로 표시가 되어있어서 취약한 곳이 어디인지 파악하기에 용이하다.

 

- 코드 분석 페이지

1.Code 탭을 눌러서 파일별로 분석 결과를 볼 수 있다.

2.분석한 항목들을 파일별로 보기에 적합하다.

3.Coverage 항목은 테스트코드를 얼마나 작성했는지에 관한 지표이다.

 

// 사용 후기

코드 분석 프로그램인 소나큐브의 장단점을 확인하였고,

취약점이 나온 코드에 대해서 수정 가이드가 나온 점이 좋았다.

 

장점

오픈소스.

다양한 언어 지원.

자세한 분석 페이지 제공.

 

단점

한국어 미지원.

한 번에 하나의 언어만 분석 가능.

잘 활용하기 위해선 러닝커브가 다소 있음.

 

반응형

'개발' 카테고리의 다른 글

phpstorm 화면 깨짐 오류  (0) 2023.05.25
Apache Options  (0) 2023.01.19
React 와 Vue 비교  (0) 2021.12.19
리액트 특징  (4) 2021.12.18
AWS 이용 후기  (0) 2020.12.08

댓글