코드 정적 분석 : SonarLint와 SonarQube
개요
코드 정적 분석이라는 것은 코드가 실행되기 전에 소스 코드를 분석하여 품질, 오류, 보안 취약점 등을 평가하는 과정이다.
이 방법은 프로그램의 실행 없이 코드의 구조와 내용을 평가할 수 있기 때문에, 사전에 문제를 발견하고 수정하는 데 유용하다.
지금까지 대규모 트래픽을 모의하여 테스트를 진행해보고 모니터링을 거친 후 타겟 메서드에 캐싱을 적용하여 웹 애플리케이션의 조회 성능을 크게 개선 시킨 경험이 있다.
다음으로 무엇을 시도해볼까 생각하다가 발견한 것이 코드 정적 분석 도구이다.
이 코드 정적 분석 도구를 활용하여 작성된 코드에 문제는 없는지 코드 스타일 등이 일관되어 있는 지 등 코드 자체를 평가해보는 작업을 진행해볼 것이다.
해당 작업을 진행하기 앞서 IDE의 플러그인으로 사용할 수 있는 코드 정적 분석 도구인 SonarLint와 SonarQube에 대해 알아보고 적용해보는 것을 목표로 진행한다.
SonarLint
SonarLint는 IDE 플러그인으로, 코드 작성 중 실시간을 코드 품질을 분석할 수 있다.
분석을 통해 코드의 문법 오류나 스타일 문제, 잠재적 버그 등을 즉시 피드백 해준다.
이 SonarLint는 비쥬얼 스튜디오, 인텔리제이, 이클립스 등 다양한 IDE에서 사용할 수 있으며 개발자가 코드를 작성하는 환경에서 직접적인 피드백이 가능하다.
주로 개발 초기 단계에서 코드 품질을 유지하고 일관된 코드를 작성하는 데 도움을 주어 개선하는 데 초점을 맞추고 있다.
주로 개인 개발자나 소규모 팀에서 유용하게 사용할 수 있다.
SonarQube
SonarQube는 서버 기반의 플랫폼으로, 전체 프로젝트의 코드 품질을 분석하고 보고서를 생성한다.
코드의 복잡도, 중복, 보안 취약점 등을 종합적으로 평가할 수 있다.
CI/CD 환경에서 통합되어 사용할 수 있으며, 주로 대규모 팀이나 조직에서 여러 프로젝트를 관리하고 품질을 모니터링하는 데 적합하다.
코드 품질을 지속적으로 관리하고 프로젝트 전반에 걸쳐 품질 기준을 설정하는 데 중점을 둔다.
특히 팀원 간의 협업을 통해 코드 리뷰 및 품질 개선을 지원한다.
요약
정리하자면
SonarLint 는 실시간 피드백을 제공하는 IDE 플러그인으로 소규모 개발 시에 적합하며,
SonarQube는 서버 기반의 코드 품질 관리 도구로, 대규모 개발 시 팀 협업에 적합하며, 종합적인 코드 품질 분석 및 모니터링 기능을 제공한다.
계획
코드 정적 분석 도구의 간단한 내용을 알아 보았으며 한 가지 도구를 활용하여 샐로그 애플리케이션에 적용해보는 것을 목표로 다음 포스트를 작성할 것이다.
소규모 애플리케이션이고, IDE에서 플러그인으로 바로 사용해볼 수 있는 SonarLint를 중점적으로 다뤄볼 예정이다.