본문으로 건너뛰기

자바 코드 스타일

일관성 있는 코드 품질을 유지하기 위해 코드 스타일을 정의합니다.

editorconfig

에디터 레벨에서 스타일을 정의하기 위해서 다음 사항을 적용 합니다.
프로젝트 디렉토리 최상위에 .editorconfig 파일이 등록되면 자동으로 IDE 에서 작동 합니다.

.editorconfig
root = true


[*]
charset = utf-8
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 128
trim_trailing_whitespace = true


[*.java]
ij_any_variable_annotation_wrap = split_into_lines
ij_any_field_annotation_wrap = split_into_lines
ij_any_keep_line_breaks = true


[{*.html,*.jsp}]
max_line_length = off


[*.md]
trim_trailing_whitespace = false
적용이 안된다!

기본적으로 IDE 인식하지 못한다면, 플러그인을 확인해 보세요.

등록되지 않는 파일에 대해서...

추가적으로 스타일이 필요한 파일의 확장자에 대해서는 의견 주시면, 맞춰서 유연하게 추가할 계획입니다.
담당자에게 의견 주세요!

checkstyle

자바 코드에 대한 품질과 규칙 준수를 강제하기 위해 사용됩니다.

git commit을 실행하거나 프로젝트가 빌드되는 과정에서 Maven 의 checkstyle:check goal 이 실행 됩니다. 위반 사항이 있을 경우, commit 또는 빌드가 실패합니다.

설정

코드 스타일을 일관되게 관리하기 위해 Maven의 parent 프로젝트를 사용하여 중앙집중식으로 checkstyle.xml 설정을 관리합니다.
이 방법은 모든 하위 프로젝트가 동일한 코드 스타일 규칙을 공유하고 준수하도록 합니다.

스타일 요청 및 수정

변경이 필요한 경우 상의에 의해서 규칙을 재정의 할 수 있습니다. 편하게 담당자에게 요청주시면 조율 하겠습니다.

pom.xml
<parent>
<groupId>ai.langsa</groupId>
<artifactId>ccaas-starter</artifactId>
<version>0.4</version>
</parent>

위반사항 확인

commit 또는 빌드를 실행하고 실패했을 때, console 의 로그를 확인 합니다.

위와 같이 3개의 checkstyle이 실행되고 그 아래에 [ERROR]가 표출 됩니다.

Failed during checkstyle execution: There are 3 errors reported by Checkstyle 10.17.0 with checkstyle.xml ruleset.

위반사항 해결

자세한 오류사항은 다음과 같습니다.

[ERROR] boilerplate-spring-boot/src/main/java/ai/langsa/test.java:3:14: Type name 'test' must match pattern '^[A-Z][a-zA-Z0-9]*$'. [TypeName]

test.java 파일의 3라인, 4번째 칸이 문제라는 내용입니다.
문제사항은 TypeName 인데, type 이 정규표현 패턴의 ^[A-Z][a-zA-Z0-9]*$ 항목에 맞지 않다고 합니다.

정상적으로 해결된 경우 아래와 같이 BUILD SUCCESS 가 확인 됩니다.