-
SonarQube를 이용한 API 품질 검사■ Back-End/- Java 2019. 4. 4. 17:54
1. IntelliJ에 SonarQube 적용하기
우선 SonarQube 서버는 DevOps 팀에서 만든 상태여서, 나는 개발 중인 서비스를 새 프로젝트로 생성해서 품질검사를 하면 된다.
(1) 프로젝트 토큰 생성
SonarQube 사이트에 들어가서 우측 상단에 있는 '+' 버튼을 클릭한 뒤, '내 계정'을 들어간다.
'보안' 탭에 들어가면 Token을 생성할 수 있다.
토큰 이름에는 보통 사용자 ID나 닉네임을 넣지만, 나는 곧...(읍읍).. 나중에 유지 보수를 위해 서비스 명으로 적었다.
토큰 이름을 입력하고 '생성하기' 버튼을 누르면
위와 같이 토큰이 생성되고, 이 때 반드시 저 토큰을 복사해야 한다. 따로 메모장이나 wiki에 적어둬야 한다.
(2) IntelliJ에 SonarQube 연동하기
IntelliJ > Preferences > Plugins > Browse repositories... > 'SonarLint' 를 설치한다.
Maven에 SonarQube 서버를 생성해야 한다.
IntelliJ 상단 > Run/Debug Configurations 을 클릭!
설정 창이 뜨면, 좌측 상단에 '+' 버튼을 클릭해서 Maven을 추가해준다.
서버 이름(Name) 입력해주고,
품질검사를 할 프로젝트 경로(Working Directory)를 지정해주고,
Command line 에는
sonar:sonar -Dsonar.host.url=서버주소 -Dsonar.login=사용자토큰 -Dsonar.sourceEncoding=UTF-8 -Dsonar.projectKey=프로젝트키 -Dsonar.projectName=프로젝트이름
이런식으로 적어준다.
(참고: projectName은 SonarQube 홈페이지에 보여질 프로젝트 이름)
입력 완료 후, OK 버튼을 눌러준다.
(3) SonarQube 홈페이지에 프로젝트 생성하기
(2)에서 설정한 Maven을 실행하면, SonarQube 홈페이지에 프로젝트가 등록된다.
프로젝트 명을 클릭하면, (부끄러운) 품질검사 결과 상세 화면이 나온다.
Major issues를 클릭하면, 어느 코드에서 이슈가 발생했는지 알 수 있는데, 같은 원인으로 발생한 이슈들이 많았다.
처음엔 이슈가 엄청 많아서 당황했는데, 막상 들어가서 까보면 e.printStackTrace() 지우라는 이슈들이 100개 있었다;;
짜잘한 이슈들 처리하고나면, 이제 진짜 처리해야할 것들이 남아있다.
위 화면에서 첫번째 이슈 'The use of java.util.Random is predictable.' 옆에 '...' 버튼을 클릭하면
이런 식으로 이슈 해결 방법을 알려준다. 근데 이게 꼭 정답은 아닌 것 같은 느낌..?
그리고 이미 공통 프레임워크에서 별도로 보안/품질 검사를 하고 있는 경우에는 코딩규칙을 수정해서 거를 수 있다.
이제 이슈를 잡아보자~~~!
'■ Back-End > - Java' 카테고리의 다른 글
[Java] Java 8 에서 추가된 기능 사용해보기 (0) 2019.07.02 [Java] String.concat(), '+'연산자, StringBuilder, StringBuffer에 대하여 (0) 2019.07.02 [자료구조] Java로 Tree 구현하기 (0) 2019.05.19 [자료구조] 01. 배열과 문자열 (0) 2019.05.15 [Java] Thread_쓰레드 (0) 2019.05.15