Skip to content

SonarQube

왜 쓰나 — 리뷰로는 안 잡히는 것들

사람이 리뷰에서 잘 놓치는 것들을 기계가 대신 잡습니다.

분류
보안SQL 인젝션 가능 경로, 하드코딩된 자격증명
버그null 역참조, 닫히지 않는 리소스, 도달 불가 코드
냄새중복 코드, 과도한 복잡도, 죽은 코드

이 프로젝트가 ${whereClause} 같은 문자열 SQL 을 금지하고 테스트로 강제하는 것도 보안 스캐너 지적을 구조적으로 없애기 위해서입니다 → Java/Spring 컨벤션 · 문자열 SQL 금지

설치는 선택입니다

로컬 설치 없이도 개발에 지장은 없습니다. 아래는 로컬에서 미리 확인하고 싶을 때의 절차입니다.

1. SonarQube 설치

1.1 소나큐브, 스캐너 설치

bash
brew install sonarqube
brew install sonar-scanner

1.2 소나큐브 실행 및 접속

bash
brew services start sonarqube
  • 웹 관리자 접속: http://localhost:9000
  • 기본 계정: admin / admin

2. 마켓플레이스에서 플러그인 설치

  1. Administration 탭 > Marketplace 에서 플러그인을 검색하여 설치
  2. CheckStyle 플러그인을 설치
  3. 소나큐브 재시작

sonarqube_01

3. 커스텀 룰셋 등록

3.1 룰셋 복사

  • 예시로 정확한 indent size 를 위해 CheckStyle 플러그인에서 지원하는 룰셋 1개만 등록해보자.
  1. Quality Profiles 탭 > Java 로 검색하여 기본 룰셋을 복사
  2. 복사한 룰셋의 Rules 로 이동 sonarqube_02

3.2 Rules 설정

  1. 모든 Rules 를 비활성화
  2. indent size 에 대한 Rules 만 활성화 sonarqube_03

3.3 프로젝트 등록

  1. Quality Profiles 탭으로 이동
  2. 룰셋 profile 로 이동
  3. 스캔할 프로젝트를 등록 sonarqube_04