이 문서는 10.2버전부터 추가된 SonarQube Clean Code 분류 체계에 대한 정보를 공유하기 위해 작성되었다.

 





Clean Code 소개

Clean Code는 소프트웨어가 의도한 대로  작동하고 높은 품질 표준을 충족하도록 보장한다.

Sonar 솔루션은 클린 코드(Clean Code) 상태, 즉 소프트웨어를 안전하고 안정적이며 유지 관리 가능하게 만드는 특성을 지닌 코드를 달성하는 데 도움을 주기 위해 설계되었다. 

보안, 신뢰성 및 유지 관리 가능성을 소프트웨어 품질이라고 한다.





Clean Code 정의

SonarQube는 Clean Code를 일관성, 의도성, 적응성, 책임성이라는 속성을 가진 코드로 정의한다.


일관성(Consistentency)

일관성 코드는 통일되고 전통적인 방식으로 작성되며, 모든 코드는 서로 다른 시간에 여러 명의 기여자가 있더라도 유사해 보이고 규칙적인 패턴을 따른다. 형식이 지정되고 일반적이며 식별 가능하다.




의도성(Intentionality)

의도성 코드는 정확하고 목적이 있고 모든 지시사항은 의미가 있고 적절하게 구성되어 있으며 동작을 명확하게 전달한다. 명확하고 논리적이며 완전하고 효율적이다.





적응성(Adaptability)

적응성 코드는 쉽게 진화하고 자신있게 개발할 수 있도록 구성되어 있다. 부품을 쉽게 확장하거나 용도를 변경할 수 있으며 바람직하지 않은 부작용 없이 국부적인 변경을 촉진한다. 집중적이고 고유하며 모듈식이며 테스트된다.





책임성(Responsibility)

책임성 코드는 데이터에 대한 윤리적 의무와 사회적 규범을 고려한다.  합법적이고, 신뢰할 수 있으며, 존중적이다.













CleanCode 이점 : 소프트웨어 품질

Clean Code는 안전하고 안정적이며 유지 관리가 가능한 소프트웨어로 이어진다. 

보안, 신뢰성, 유지 관리성이라는 세 가지 측면을 Sonar 솔루션에서는 소프트웨어 품질(Software qualities)이라고 부르며 , 이는 소프트웨어의 장기적인 가치에 기여한다.


보안(Security)

보안은 무단 액세스, 사용 또는 파괴로부터 소프트웨어를 보호하는 것이다.

신뢰성(Reliability)

소프트웨어가 명시된 기간 동안 명시된 조건에서 성능 수준을 유지할 수 있는 방법을 측정한 것이다.

유지 관리성(Maintainability)

유지 관리성은 소프트웨어 코드를 쉽게 수정, 개선 및 이해할 수 있음을 의미한다.








Clean Code 기반의 코드 분석

Sonar 솔루션은 코드의 클린 코드를 방해하는 모든 문제를 식별하는 것을 목표로 한다.

각 Clean Code 속성은 일련의 규칙에 따라 특정 언어에 대해 평가됩니다.



하위 그림은 Sonar 솔루션의 Clean-Code 기반 분석 원리를 보여준다.