본문 바로가기
IT/Knowledge

SonarQube 란?

by 성준하이 2024. 6. 23.
반응형

정적 분석 도구로 알려진 소나큐브에 대해서 알아볼 것이다.

먼저 위키백과에서의 정의는 아래와 같다.

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

https://ko.wikipedia.org/wiki/%EC%86%8C%EB%82%98%ED%81%90%EB%B8%8C

 

소나큐브 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 소나큐브(SonarQube, 이전 이름: 소나/Sonar)[3]는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰

ko.wikipedia.org

 

소나큐브는 중복코드, 코딩표준, 유닛테스트, 코드커버리지, 코드복잡도, 주석, 버그 및 보안 취약점 등 보고서를 추출할 수 있다.

 

대규모 프로젝트일수록 중복이나 보고서 등 많이 필요한데 그럴때 적절하게 사용해주면 된다.

 

  • github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때 지속적인 코드 정적 분석을 위한 환경 제공
  • 코드 정적 분석 내용 중앙화 관리 및 visuality 제공
  • 사용자가 원하는 품질 요구사항 설정 가능
  • 다양한 plugin을 제공하여 확장성 제공
사용방법


현재는 두가지 방법으로 사용되고 있다.

 

  • master 브랜치에 merge/push 되는 경우
    - 개발한 코드를 remote branch에 push.
    - master branch에 push한 branch를 Pull Request를 날림.
    - Pull Request가 master branch에 merge 되었을 때 등록된 web-hook으로 jenkins에 알림.
    - triggered 된 jenkins job에서 master branch의 코드를 빌드 & 정적분석
    - 정적분석 결과를 소나큐브에서 확인할 수 있음.
  • Pull request 분석
    - 개발한 코드를 remote branch에 push.
    - 지정한 branch (develop, master)에 Pull Request를 올림.
    - web-hook으로 pull request 전용 jenkins job이 triggered 됨.
    - 소나큐브로 변경된 파일을 정적분석하고 결과값을 jenkins에 return.
    - 정적분석이 완료된 jenkins는 결과값을 해당 pull request에 댓글로 리포팅.
반응형

'IT > Knowledge' 카테고리의 다른 글

Bitbucket 이란?  (15) 2024.07.08
CGI, WSGI, ASGI 에 대해서  (13) 2024.07.02
서버리스(ServerLess) 란?  (12) 2024.06.22
Baas / Faas 란?  (11) 2024.06.21
웹 통신의 흐름  (19) 2024.06.14

댓글