이 문서는 SonarQube의 핵심 개념인 클린 코드에 대해 설명한다.

 


Clean Code란?

클린코드는 소프트웨어가 의도한 대로 동작하며, 높은 품질 기준을 만족하도록 만드는 코드를 의미한다.

클린코드의 핵심 속성은 보안성, 신뢰성, 유지보수성으로, 이를 통틀어 소프트웨어 품질이라고 한다.



Clean Code 정의

클린코드는 다음과 같은 특성을 갖춘 코드를 의미합니다.

일관성(Consistentency)

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




의도성(Intentionality)

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





적응성(Adaptability)

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





책임성(Responsibility)

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





CleanCode 이점 : 소프트웨어 품질

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

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


보안(Security)

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

신뢰성(Reliability)

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

유지 관리성(Maintainability)

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



Clean Code 기반의 코드 분석

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

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