이 문서는 SoanrQube를 사용하기 위해 알아야할 내용을 간단히 소개 하기 위해 작성되었다. 


SonarQube는

SonarQube는 지속적인 인스펙션 패러다임을 지원하는 최상의 제품입니다. 지속적인 코드 인스펙션은 소프트웨어 개발 라이프사이클의 완전한 부분으로 내부 소프트웨어 품질 향상 시킬 수 있는 코드 품질 관리 패러다임입니다. 

지속적인 코드 품질 관리를 통해 개발 조기에 코드 문제를 해결하고 자동화된 코드 감사를 통해 최신 상태의 코드 문제를 확인할 수 있게 해줍니다. 


SonarQube 주요 특징

SonarQube 데모 사이트

SonarQube 소프트웨어 품질

SonarQube는 다음 7가지 품질 요소를 기준으로 소프트웨어 품질을 구분하고 관리하고 있다.

1.Code Smells(Maintainability)

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

2.Bugs(Reliability)

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

3.Vulnerabilities(Security)

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

4.Duplications

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

5.Unit Tests

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

Unit Test Coverage

Unit Test Result

6.Complexity

순환복잡도(Cyclomatic Complexity) 측정

인지복잡도(Cognitive Complexity)  측정

7.Size

소스코드 사이즈와 관련된 다양한 지표를 제공합니다.

주요 용어

Continuous Inspection

Technical Debt

Issues

Quality Metric

Quality Measure