Study/CI&CD

SonarLint & Connected Mode를 STS(Eclipse)에서 사용해보기

Bluesky_ 2022. 7. 8. 23:36
반응형

SonarLint 소개

IDE에 설치해서 버그와 취약점을 찾아주는 무료 확장이다.

sonarqube를 사용하면 확인할 수 있는 리포트를 이 플러그인만 설치하면 간단하게 IDE에서 확인할 수 있어서 편리하다.

JetBrains, Eclipse, Visual Studio, VS Code를 지원한다.

https://www.sonarlint.org/

 

SonarLint | Free and Open Source Code Quality & Security IDE Extension

Find and fix Code Quality and Security issues as you code, directly in your IDE of choice, including JetBrains, Eclipse, Visual Studio and VS Code.

www.sonarlint.org

SonarLint 사용해보기

SonarLint 설치하기

내 경우 STS를 사용하고 있어서 Eclipse plugin을 설치했다.

Help -> Eclipse Marketplace에서 SonarLint를 검색하고 설치한다.

설치 후 재시작하면 사용할 수 있다.

SonarLint 사용하기

사용은 매우 간단하다.

Package Explorer의 대상 프로젝트에서 오른쪽 마우스 -> SonarLint ->  Analyze를 실행한다.

실행을 하고 나면 다음과 같이 분석 결과를 확인할 수 있다.

각 항목을 클릭해서 해당 문제 위치를 가보면 SonarLint가 경고를 파란색 밑줄로 알려주며 마우스를 올리면 해당 내용을 확인할 수 있다.

해당 파란 줄이 있는 코드에서 Ctrl + 1을 누르면 어떻게 고쳐야 할지 안내를 확인할 수 있는 Open Description 항목이 있다.
(마찬가지로 SonarLint Report 창의 해당 항목에서 오른쪽 마우스를 클릭해도 동일하게 확인할 수 있는 Rule description 항목이 있다.)

Rule description을 선택하면 다음과 같이 확인할 수 있다.

전체 분석을 하지 않더라도 파일을 열 때마다 SonarLint On-The-Fly에 해당 파일과 관련한 리포트를 해주기 때문에 그냥 플러그인을 깔고 소스코드에 파란 라인이 뜨는지만 확인해도 편하게 사용할 수 있다.

Connected Mode 사용하여 Soarqube와 연동하기

Connected Mode 소개

sonarqube와 IDE의 sonarlint를 연결해서 사용할 수 있는 기능이 추가되었다.

IDE 별 설정 방법에 대해 안내되어 있다.

STS를 사용하는 경우의 안내 페이지는 다음과 같다.

https://github.com/SonarSource/sonarlint-eclipse/wiki/Connected-Mode

 

GitHub - SonarSource/sonarlint-eclipse: SonarLint for Eclipse

SonarLint for Eclipse. Contribute to SonarSource/sonarlint-eclipse development by creating an account on GitHub.

github.com

한 가지 유의해야 하는 부분이 있다.
SonarLint만 사용할 경우 IDE에 있는 프로젝트의 코드를 분석하여 리포트하고 그걸 기반으로 코드를 관리한다.
Connected Mode를 사용하면 IDE에 있는 분석 결과를 Sonarqube로 반영하는 게 아니다.
Sonarqube의 분석 결과를 지속적으로 내 IDE로 가져오는 것이다.
즉 일관성 있게 각 개발자들이 Sonarqube의 리포트를 전달받고 IDE에서 수정하면 Sonarqube로 리포트를 갱신하는 건 따로 진행해야 한다.

Connection 설정하기

STS의 File -> New -> Other를 선택해서 나오는 창에서 SonarLint의 New SonarQube/SonarCloud Connection을 선택한다.

sonarcloud, sonarqube를 선택하여 설정할 수 있다.

sonarqube를 선택했다.

인증과 관련한 설정은 Token과 Username + Password가 있는데 Token을 권장한다.

Token은 Sonarqube에 로그인한 후 우측 상단에서 My account를 선택한 후

Security 메뉴에서 생성하면 된다.

연결이 정상적으로 설정되었으면 적당한 connection name을 설정하고 알림을 받을지 여부를 선택하면 연결 설정을 마치게 된다.

프로젝트 bind 하기

연결 설정을 마치게 되면 Sonaqube에 연결할 프로젝트를 설정하는 창이 뜬다.

연결할 대상 프로젝트를 선택해 주면 된다.

선택한 프로젝트가 Sonarqube에 어떤 프로젝트와 연결되어야 하는지 선택한다.

선택을 하고 나면 연결된 항목을 Window -> Show View -> Other에서 SonarLint Bindings를 선택하여 확인할 수 있다.

 

개인적인 사용 후기

Connected mode의 경우 여러 사람이 사용하면 효율이 있을지는 모르겠지만 개인이 사용하기엔 불편하다고 느꼈다.
주기적으로 계속 IDE가 sonarqube를 조회하는지 계속 변화가 있다고 윈도 하단에 표시가 되는 게 역으로 불편했다.
무료 버전 사용자의 경우 sonarqube의 branch가 default master로 표시되는데 그거 영향인지 연동한 프로젝트 binding이 표시되고 있는지 확인하기 어려웠다.
개인적인 용도로 Connected mode를 사용하는 것은 그리 효율적이지 않다고 느꼈다.

반면에 SonarLint 플러그인 자체만으로 코드를 작업하면서 상당히 많은 도움을 주었다.
작성할 때 놓치는 많은 오류들을 잡아주면서 sonarqube 같은 외부 도구의 사용에 들이는 비용이 없다는 부분도 편했고 오래된 문법을 사용한 코드에 대해 Java 상위 버전에서 지원하는 문법으로 변경을 권장하여 자연스럽게 JDK 버전 변경에 대한 부분을 공부할 수 있어 좋았다.

앞으로 SonarLint 플러그인은 계속 사용할 것 같고 반면에 Connected mode는 쓰지 않을 것 같다. 

반응형