thumbnail
1. 코드 품질 1. 내 코드를 자동으로 리뷰해주는 IDE 플러그인 sonarLint
code_quality
2022.07.07.

개발자 툴에서 sonarLint를 이용해 실시간 체크

나의 개발환경

현재 재직중인 회사에서 사용하는 코드 품질 관리 툴이다.
난 처음보는 툴이라 이게 뭔지 궁금한 마음이 들었다.

대충 보니까 Sonar Qube로 코드를 정적으로 검수한 후 이상이 없으면 배포하는 방식인 것 같다.
Sonar에 대해 알아보도록하자.

SonarLint

SonarLint는 코드 작성 시 품질 문제를 정적으로 탐지하고 해결하는데 도움을 주는 IDE확장 플러그인이다.

코드정적 분석
실제 프로그램을 실행하지 않고 코드의 형태에 대한 분석을 말한다.
위험성이 있는 코드, 미리 정의된 규칙이나 코딩 표준에 준수하는지에 대한 분석이다.

사용환경

  • IntelliJ(or Webstorm) 링크

기능

위의 링크에 들어가시면 볼 수 있듯이 코드에 문제가 있다고 판단하면 해당 코드에 ’~~~’ 모양의 밑줄이 생기고 마우스 오버시 해당 코드의 문제점에 대해 간략히 알려준다.
또한 상세 설명도 볼 수 있다.

SonarLint 플러그인을 설치하면 2개의 메뉴가 생성되는데 각 메뉴의 기능은 아래와 같다.

On-the-fly

코드를 작성할 때 문제점 목록을 간략하게 보여준다.
새로운 문제에 대해 코드 아래 표시를 해주므로 코딩에 집중할 수 있다.

Rule Description

문제가 된다고 판단되는 코드의 상세 설명과 수정 가이드 내용이 담겨있으며, 예시 코드의 내용이 있다.

품질요소 기준

Sonar는 다음 7가지 품질 요소를 기준으로 코드의 품질을 구분한다.

  • Code Smells(Maintainability)

    • 심각한 이슈는 아니지만 베스트 프렉티스에서 사소한 이슈들로 모듈성(modularity), 이해가능성(understandability), 변경가능성(changeability), 테스트용의성(testability), 재사용성(reusability) 등이 포함된다.
  • Bugs(Reliability)

    • 일반적으로 잠재적인 버그 혹은 실행시간에 예상되는 동작을 하지 않는 코드를 나타낸다.
  • Vulnerabilities(Security)

    • 해커들에게 잠재적인 약점이 될 수 있는 보안상의 이슈를 말한다.
      SQL 인젝션, 크로스 사이트 스크립팅과 같은 보안 취약성을 찾아낸다.
  • Coverage

  • Duplications

    • 코드 중복은 코드의 품질을 저해시키는 가장 큰 요인 중 하나이다.
  • Size

    • 소스코드 사이즈와 관련된 다양한 지표를 제공한다.
      (코드 라인수, 전체 라인수, 구문, 함수, 클래스, 파일, 디렉토리, 주석 수, 코멘트 비율)
  • Complexity

    • 순환복잡도(Cyclomatic Complexity) 측정
    • 코드의 논리적인 흐름상에 존재하는 독립적인 선형 경로의 개수를 의미
    • 인지복잡도(Cognitive Complexity) 측정
  • Unit Tests

    • 단위 테스트 커버리지를 통해 단위 테스트의 수행 정도와 수행한 테스트의 성공/실패 정보를 제공한다.

궁금한점

eslint와 다른 뭔가의 차별성이 있는걸까?

Thank You for Visiting My Blog, Have a Good Day 😆
© 2022 Developer hyungju-lee, Powered By Gatsby.