Java/Java 자료실

[SonarLint] 내 코드 품질을 지켜주는 정적 코드 분석기 IntelliJ IDE 플러그인 설치하기

Chipmunks 2023. 11. 29.
728x90

안녕하세요.

내 코드를 대신 리뷰해주고 코드 품질을 지켜주는 플러그인을 소개합니다.

바로 SonarLint 플러그인입니다.

 

SonarLint - IntelliJ IDEs Plugin | Marketplace

SonarLint is a free IDE extension to find and fix coding issues in real-time, flagging issues as you code, just like a spell-checker. More than a linter, it also...

plugins.jetbrains.com

 

SonarLint 가 뭐예요? 설치하면 어떤 점이 좋아요?

SonarLint 는 실시간으로 코드 이슈를 찾고 고칩니다.

IDE 편집기에서 스펠링 확인 기능처럼, 코드 품질 이슈를 밑줄로 표시해줍니다.

표시만 해주는 린터 기능을 넘어서 풍부한 가이드를 제공합니다.

왜 코드 품질 이슈가 발생했는지, 어떤 위험성이 있는지, 어떻게 고칠 수 있는지 등의 가이드를 제공합니다.

궁극적으로 개발자의 실력까지 올려주는 고마운 플러그인입니다.

SonarLint 을 사용하는 것 만으로 생산성을 향상시키고 코드에 오너쉽을 가지게 해줍니다.

 

출처. SornarLint 공식 플러그인 주소 - https://plugins.jetbrains.com/plugin/7973-sonarlint

 

SonarLint 어떻게 설치하나요?

인텔리제이에서 무료로 설치가 가능합니다.

인텔리제이 환경 설정에 들어갑니다.

'Plugins' 메뉴에 들어갑니다.

Marketplace 탭에서 SonarLint 를 검색하여 설치합니다.

Restart IDE 가 나오면 버튼을 눌러 IDE 를 재시작합니다.

Settings - Plugins 설정 화면

 

또는 인텔리제이 SonarLint 플러그인 홈페이지에서 설치하는 버튼이 있습니다.

플러그인 제목 우측에 Install to IntelliJ IDEA 2023.2.4 버튼을 눌러주세요.

인텔리제이 SonarLint 플러그인 홈페이지

 

SonarLint 를 CI / CD 에서도 사용할 수 있습니다!

CI(Continuous Integration)는 자동화된 빌드 또는 테스트를 수행한 후, 개발자가 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식입니다.

( CI 의 자세한 설명은 AWS - 지속적 통합이란 무엇인가? 를 참고해주세요. )

 

지속적 통합이란 무엇입니까? – Amazon Web Services

지속적 통합은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식입니다. 지속적 통합은 소프트웨어 릴

aws.amazon.com

 

CD(Continuous Delievery)는 짧은 주기로 소프트웨어를 개발하면서, 언제든 소프트웨어를 손쉽게 배포할 수 있고 수동 매뉴얼로 배포하는 작업 없이도 실제 프로덕션과 유사한 환경으로 파이프라인을 따르는 소프트웨어 개발 방식입니다. 빠른 주기와 속도로 소프트웨어를 빌드, 테스트, 배포하는 걸 목표로 합니다.

( CI 의 자세한 설명은 위키피디아를 참고해주세요. )

 

Continuous delivery - Wikipedia

From Wikipedia, the free encyclopedia Software engineering approach of short cycles Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time

en.wikipedia.org

 

이 때, CI/CD 에서 SonarLint 를 규칙으로 사용할 순 없을까요?

바로 SonarQube 와 SonarCloud 으로 연동할 수 있습니다.

위 서비스는 대부분 유료로 제공하고 있습니다.

자바 뿐 아니라 코틀린, C#, C++, VB, JS, TS, Python, PHP 언어 등을 지원합니다. (참고로 C, C++ 는 유료 버전에서만 가능)

코드형 인프라 스트럭쳐인 Terraform, Cloudformation 등도 지원합니다.

 

SonarQube 는 커뮤니티 에디션을 무료로 설치할 수 있습니다.

보통 도커로 SonarQube 커뮤니티 에디션을 설치하여 웹 서버를 구동합니다.

유료 기능인 PR 로 답글을 달아주는 기능도 모종의 방법으로 설치가 가능하다고 합니다.

SonarQube 웹서버를 따로 두고 저렴한 컴퓨팅 비용만으로

팀 내에서 고퀄리티의 정적 코드 분석 시스템을 구축할 수 있다고 합니다.

참고 링크 : https://dlwnsdud205.tistory.com/350

 

[Sonarqube] Sonarqube 설치 + PR decoration 하기

Sonarqube 설치 + PR decoration 하기 이번 포스팅에서는 docker로 sonarqube를 설치하고 PR decoration까지 하는법을 알아보겠습니다. 최종적으로 아래 사진과 같이 PR에 sonarqube가 리포트를 달아줍니다. 스펙 1.

dlwnsdud205.tistory.com

 

프로덕션의 코드 퀄리티를 보장해주는 SonarLint,

다양한 팀에서도 적극 사용한다고 하니 적게는 SonarLint 플러그인 사용을 장려하고

더 나아가 SonarQube 시스템 서버를 만들어 프로덕션의 코드 퀄리티도 지켜보시는 게 어떨까요?

댓글