CheckStyle
Checkstyle은 소스 코드가 준수하면 바람직한 많은 스타일 규칙을 제공하고 있다. 다음 표는 Checkstyle이 지원하는 코딩 스타일 규칙 중 기본적으로 탑재된 Sun 코딩 스타일 규칙[1] 중 일부를 보여준다.
범주 | 설명 |
Javadoc Comments | 패키지, 메소드, 변수에 대한 문서화 스타일 검사 |
Naming Conventions | 표준 명명 규약 검사를 위한 규칙 |
Imports | 불필요하거나 중복된 Import 검사 |
Size Violations | 과도하게 긴 문장, 메소드 혹은 많은 매개변수 |
Blocks | 불필요하거나 필요하지만 생략된 괄호 검사 |
Coding Problems | 하드코딩, 불필요한 표현이나 문장 검사 |
Class Design | 불필요하거나 필요하지만 생략된 Modifier 또는 생성자 검사 |
Miscellaneous | 배열 스타일, 매개변수 스타일 등의 기타 스타일 규칙 |
추가적으로 Checkstyle은 코딩 스타일을 새롭게 정의하거나 기존의 코딩 스타일을 수정하여 확장할 수 있는 기능도 제공하고 있다. Eclipse의 Windows -> Properties 창의 Checkstyle에서 New 버튼을 클릭하여 새로운 규칙을 추가할 수 있다.
참고로 Checkstyle이 제공하는 스타일 규칙에 대한 설명은 다음에서 확인할 수 있다. http://checkstyle.sourceforge.net/availablechecks.html
코딩 스타일 검사는 소스 코드를 구성하는 클래스/메소드/변수 등의 이름과 문장들의 형태의 일관성을 유지함으로써 소스 코드의 가독성을 높이고 결함의 가능성이 있는 문장 패턴을 검출하여 제거함으로써 소스 코드의 신뢰성을 높이는 것을 목표로 한다.
코딩 스타일 검사에서는 소스 코드를 구성하는 클래스/인터페이스/메소드/필드 등의 명명 방법과 코드의 작성 형태에 대한 규칙을 검사한다. 예를 들어 “한 행에 하나의 선언만을 한다.” 스타일이 있다. 다음은 이 스타일을 준수하지 않는 코드(좌측)와 준수하는 코드(우측)를 보여준다.
비 권장 | 권장 |
int age, grade ; |
int age ; int grade ; |
일관된 코드를 통해서 가독성을 높이기 위해서는 개발자들이 공통적으로 사용하는 코딩 스타일을 정의할 필요가 있다. 코딩 스타일은 Java, C++ 등과 같은 언어에 따라서 별도로 정의가 된다. 다음은 Java 언어와 C++ 언어의 대표적인 코딩 스타일을 보여 준다.
언어 | 대표적인 코딩 스타일 정의 |
Java |
|
C++ |
|
[2] http://source.android.com/source/code-style.html
[3] http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
[4] http://gcc.gnu.org/codingconventions.html
출처 : http://soft-tnq.com/wordpress/?p=5532