VScode Java코드품질검사 확장 SornarLint vs CodeScene

코드 리뷰를 받을 수 없는 솔로 개발자 혹은 사실상(?) 솔로 개발자의 필수품-정적 코드 분석기, VS code-Java에도 역시나 있다.

VS Code 공식 확장 마켓에서 가장 많은 설치 건수를 자랑하는 2개의 확장 프로그램들을 재빨리 비교해보자.

SonarLint

실제 동작 방식을 살펴보자.

아래는 어떤 문제가 있는 소스다. 그래서 해당 구문에 SonarLint가 노란색 물결무늬 밑줄을 그어줬다. 그 위에 마우스를 올리면 SonarLint의 경고 내용을 확인할 수 있다.

htop

혹은 problems 창에서 해당 경고를 마우스 오른쪽 버튼으로 클릭 후 “SonarLint Open description of rule ‘java:Sxxxx’“를 클릭하면

htop

상세 내용을 볼 수 있다.

htop

상세 내용을 보면 다음 내용을 확인 할 수 있는데

  1. 어떤 유형의 이슈인지
  2. 얼마나 심각한지
  3. 이 이슈가 왜 문제인지
  4. 어떻게 개선할 수 있는지
  5. 기타 참고 사이트 목록

잘 짜여진 학습자료를 보는 느낌이다.

CodeScene

  • codescene에서 제공하는 코드 건강(?) 분석 서비스의 무료 stand alone 버전
  • rule 편집 가능(.codescene/code-health-rules.json 수정)
  • 마켓플레이스 보기
  • CHANGE COUPLING이라는 기능을 쓰려면 유료 클라우스 서비스를 사용해야 한다. 이 기능은 모듈 간의 논리적 의존성까지 검사해 준다고. 이 확장은 사실상 이 기능을 홍보하려고 만든 것 같다.

실제 동작 방식을 살펴보자.

이슈를 발견했을 때 해당 메소드 바로 위 편집기에 해당 제목이 뜬다.

htop

혹은 problems에도 띄워 준다.

htop

해당 제목을 클릭하면 상세 정보를 확인할 수 있다.

htop

결론

  • SonarQube는 코딩 규칙 검사기에 가깝다면 CodeScene은 설계 검사에 가까운 듯 하다. 상호 보완적이므로 둘 다 쓰지 않을 이유가 없다.
  • 이 2개의 도구에서 지적하지 않더라도 뭔가 찜찜한 코드가 있을 때 추가로 생성형 AI에게 반드시 물어보자.