ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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' 를 설치한다.

    IntelliJ 버전에 따라 플러그인 설치하는 방법이 다를 수 있다. 나는 계정 사용기간 만료되서 2017.03 버전..ㅠㅠ

     

    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 홈페이지에 프로젝트가 등록된다.

    Maven 실행 후 화면
    실행 완료되면, SonarQube에 프로젝트가 정상적으로 생성된다.

     

     

     

    프로젝트 명을 클릭하면, (부끄러운) 품질검사 결과 상세 화면이 나온다.

     

     

     

    Major issues를 클릭하면, 어느 코드에서 이슈가 발생했는지 알 수 있는데, 같은 원인으로 발생한 이슈들이 많았다.

    처음엔 이슈가 엄청 많아서 당황했는데, 막상 들어가서 까보면 e.printStackTrace() 지우라는 이슈들이 100개 있었다;;

    짜잘한 이슈들 처리하고나면, 이제 진짜 처리해야할 것들이 남아있다.

     

    위 화면에서 첫번째 이슈 'The use of java.util.Random is predictable.' 옆에 '...' 버튼을 클릭하면

     

    이런 식으로 이슈 해결 방법을 알려준다. 근데 이게 꼭 정답은 아닌 것 같은 느낌..?

    그리고 이미 공통 프레임워크에서 별도로 보안/품질 검사를 하고 있는 경우에는 코딩규칙을 수정해서 거를 수 있다.

     

     

     

    이제 이슈를 잡아보자~~~!

     

Designed by Tistory.