코드분석도구 - SonarQube

정적코드분석도구

Posted by Yan on December 28, 2021

정적 분석

실제로 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법

  • 소스코드의 모든 부분을 확인할 수 있다.
  • 실행 환경에서의 상태를 정확히 알 수 없다.
  • 실행할 때에만 알 수 있는 데이터가 필요한 경우 정확히 분석할 수 없다.
  • 코드 상의 문제나 실수를 찾을 수 있다.

동적분석

프로그램을 실제 환경이나 가상 환경에서 실행해보면서 분석하는 방법

  • 프로그램을 실행할 수 있는 환경을 구축하기 어려울 때가 많다.
  • 소스코드의 모든 부분을 테스트해보기 힘들다.

소나큐브 SonarQube

정적코드분석도구

  • 버그, 코드스멜, 보안 취약점을 발견할 목적
  • 정적 코드 분석으로 자동 리뷰를 수행
  • 코드품질 검사용 오픈소스 플랫폼
  • SonarSource가 개발
  • 중복코드, 코딩 표준, 유닛테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점 보고서 제공
  • Github, Jenkins와 연동 가능

장점

  • 지속적인 통합과 같이 빌드와 연동해서 코드에 대한 인스펙션 수행
  • 개발된 코드의 품질을 중앙 저장소에서 가시화하고 단일 위치에서 관리
  • 다양한 빌드 시스템, CI엔진과 통합되어 Devops 실천을 지원
  • 품질 게이트를 통해 표준화된 코드 품질 요구사항을 설정
  • 20개가 넘는 프로그래밍 언어에 대한 코드분석 지원
  • 플러그인을 통해 기능 확장 가능
  • 오픈소스 프로젝트로 특정 범위까지 무료로 사용 가능
reference

코드 분석 도구 적용기 - 3편, SonarQube 적용하기