[Springboot] M1 Mac 환경에서 SonarQube 설치하고 Intellij 프로젝트에서 활용하기

winluck·2023년 9월 28일
0

Springboot

목록 보기
6/18

지난 여름 개발했던 Springboot 서버 프로젝트의 리팩토링을 위해, 그리고 현재 진행 중인 프로젝트의 코드 품질 개선을 위해, M1 Mac 환경에서 클린코드를 위한 정적분석 tool인 SonarQube를 설치하고 Intellij에서 활용하는 방법을 정리하였다.

SonarQube 설치

brew install sonar
brew install sonar-scanner

만약 Warning: No available formula ~로 대표되는 오류가 발생하면
아래와 같이 코어 파일을 날려버린다.

rm -rf "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core"
brew tap homebrew/core

다시 코어 파일을 세팅하는 데 시간이 걸리니 기다리도록 하자.
작업이 완료되면 터미널에 아래 3가지 명령어를 입력한다.

export SONAR_HOME=/usr/local/Cellar/sonar-scanner/3.2.0.1227/libexec  
export SONAR=$SONAR_HOME/bin
export PATH=$SONAR:$PATH

터미널에서 다음 명령어를 입력하여 소나큐브를 활성화할 수 있다.
/opt/homebrew/opt/sonarqube/bin/sonar console

만약 백그라운드에 항상 실행시켜두고 싶다면 아래와 같이 입력하면 된다.
brew services start sonarqube


로그인 및 비밀번호 설정과 프로젝트 페이지를 생성한 직후의 화면이다. Create project manually에 들어가자.

내 프로젝트는 Gradle 기반이기에, build.gradle에 위에서 시키는 대로 plugins에 코드를 추가한다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.13'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'
	id "org.sonarqube" version "4.2.1.3168"
}

이후 이 페이지 아래에 존재하는 다음과 같은 형태의 명령어를, 분석하고 싶은 프로젝트 패키지에서 실행하면 된다.

./gradlew sonar \
  -Dsonar.projectKey=guidance \
  -Dsonar.projectName='guidance' \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.token=sqp_7e58e1e072d08c58a929b8eb8346b8fefaf86836

이 명령어는 따로 저장해두자.
명령어를 실행한 뒤 locahost:9000에 들어가 해당 프로젝트에 접속하자.

위와 같이 버그나 보안 문제, 코드 스멜 등을 정적으로 분석해주는 것을 확인할 수 있다. Code Smells를 클릭해보자.

Clean Code를 위한 여러 가지 규칙을 위반하는 코드에 대해 지적하고 있다.

클릭 시 특정 파일의 특정 line을 가리키며 문제점을 지적하고 있다.

Why is this an issue?를 클릭하면 왜 이 코드가 문제가 되고 있는지, 어떻게 개선할 수 있는지 설명해준다.

Intellij에 적용하기

이제 Springboot 프로젝트에 적용하기 위해 Intellij에 SonarQube를 설정하자.

먼저 Intellij에서 SonarLint 플러그인을 설치한다.
SonarLine를 성공적으로 설치했다면 Intellij를 종료한다.

이후 위에서 언급한 것처럼 SonarQube를 실행하고 Intellij에 들어가면, 오른쪽 아래 SonarQube 탭을 확인할 수 있다.

이제 프로젝트 개발 도중 특정 코드 파일을 클릭하면 Code Smell의 여부를 판정하고 문제가 되는 부분을 체크해주는 것을 확인할 수 있다.

profile
Discover Tomorrow

0개의 댓글