지난 프리 프로젝트를 하면서 프로젝트에 코딩 컨벤션을 적용하고, 빌드에 포함시키면서 작업을 하였다.
힘들기도 했지만, 깔끔하고 가독성이 좋게 코드가 정리가 되었던 경험이 좋았다.
해당 과정에서 알게 된 방법들을 정리하려고 한다.
📌 코딩 컨벤션
- 가독성이 좋고 관리하기 쉬운 코드를 작성하기 위한 코딩 스타일 규약
- 작성한 코드를 효율적으로 유지 보수 하기 위한 공통의 규칙
- 코딩 컨벤션을 준수하면 가독성이 좋아지고 성능에 영향을 주거나 오류를 발생시키는 잠재적인 요소를 줄여주어 유지 보수 비용 절감
📌 네이버 컨벤션 적용
- 네이버 핵데이 코딩 컨벤션 : https://naver.github.io/hackday-conventions-java/
- 다운로드 : https://github.com/naver/hackday-conventions-java/tree/master/rule-config
- 위의 링크에서 naver-intellij-fommater.xml 다운로드
- Intelli J 파일에서 Intelli J 👉🏻 preference 로 환경설정(Setting)을 연다.
- 에디터(Editor) 👉🏻 코드 스타일(Code Style) 👉🏻 Java
- 구성표(Schema)에서 톱니바퀴를 눌러 내보내기(Import Schema) 안의 IntelliJ IDEA code style XML 선택
- 저장된 위치로 이동하여 naver-intellij-fommater.xml 선택
📌 저장 시 코딩 컨벤션 자동 적용
사실 이 부분은 잘 모르겠다.
따라해 보았으나 필자는 잘 적용이 안되었다.
그래서 이후 밑에 나오는 build에 추가하여 사용했다.
- Intelli J 파일에서 Intelli J 👉🏻 preference 로 환경설정(Setting)을 연다.
- 도구(Tools) 👉🏻 저장 시 액션(Actions on Save) 👉🏻 코드 서식 재지정(Reformat code)
📌 Check Style 플러그인 설치
- Intelli J 파일에서 Intelli J 👉🏻 preference 로 환경설정(Setting)을 연다.
- 플러그인(plugin)에서 CheckStyle-IDEA plugin 설치 후 인텔리 제이 재 실행
- 아래의 우측 이미지처럼 IntelliJ 하단에 Check Style 확인 가능
📌 Check Style Build 적용
필자는 체크 스타일이 저장 되지 않아 빌드에 적용하는 것을 선택했다.
- Build에 적용시키고 싶지 않다면 다음으로 이동.
- check style을 어길 시 build를 실패 시킴.
- 다운로드 : https://github.com/naver/hackday-conventions-java/tree/master/rule-config
- 위의 링크에서 naver-checkstyle-rules.xml, naver-checkstyle-suppressions.xml 다운로드
- 해당 파일을 build 파일과 같은 경로에 위치 시킨다.
- 이 파일을 build와 같은 경로에 위치 시키지 않으면, build는 계속 실패하고 아래의 코드와 같은 오류가 발생
- 차이를 알고 싶으면 : https://bhinney.tistory.com/122
> A failure occurred while executing org.gradle.api.plugins.quality.internal.CheckstyleAction
> Unable to create Root Module: config {/Users/{폴더 경로들}/[빌드 폴더 이름]/naver-checkstyle-rules.xml}, classpath {null}.
- .editorconfig을 추가하여 아래 코드 내용 작성
- 여러 개발자가 하나의 프로젝트에서 작업할 때, 동일한 코드 스타일을 유지할 수 있도록 도움
- utf-8 인코딩, 새줄 문자 LF, 파일 끝에 LF 추가, 들여쓰기 탭을 스페이스4개 등을 추가
- 궁금하다면 : https://editorconfig.org/
//.editorconfig 파일
# top-most EditorConfig file
root = true
[*]
# [encoding-utf8]
charset = utf-8
# [newline-lf]
end_of_line = lf
# [newline-eof]
insert_final_newline = true
[*.bat]
end_of_line = crlf
[*.java]
# [indentation-tab]
indent_style = tab
# [4-spaces-tab]
indent_size = 4
tab_width = 4
# [no-trailing-spaces]
trim_trailing_whitespace = true
[line-length-120]
max_line_length = 120
- build.gradle에 아래의 코드 추가
plugins {
...
id 'org.ec4j.editorconfig' version '0.0.3'
id 'checkstyle'
id 'java'
}
...
editorconfig {
excludes = ['build']
}
checkstyle {
maxWarnings = 0
configFile = file("${rootDir}/naver-checkstyle-rules.xml")
configProperties = ["suppressionFile": "${rootDir}/naver-checkstyle-suppressions.xml"]
toolVersion = "9.2"
}
check.dependsOn editorconfigCheck
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
❗️이후 아래의 Check Style을 설정 후, 해당 내용을 벗어나면 아래처럼 빌드가 실패함 ❗️
- 해당 오류를 더 자세히 알고 싶다면, build 👉🏻 reports 👉🏻 checkstyle 👉🏻 main.html
- 파일을 크롬으로 열어본다면, 아래의 사진처럼 확인 가능
📌 Check Style 설정
- 만약 build에 적용하지 않는 선택을 했다면 아래의 링크로 들어가 파일을 다운로드
- 다운로드 : https://github.com/naver/hackday-conventions-java/tree/master/rule-config
- 위의 링크에서 naver-checkstyle-rules.xml, naver-checkstyle-suppressions.xml 다운로드
- Intelli J 파일에서 Intelli J 👉🏻 preference 로 환경설정(Setting)을 연다.
- 도구(Tools) 👉🏻checkstyle 👉🏻 Configuration File의 + 버튼 클릭
- Description을 적어준다. (권장사항 : Naver Checkstyle Rules [version] )
- 프로젝트별로 커스터마이징 시, 프로젝트 이름 등을 붙임
- File의 Browse를 클릭하여 naver-checkstyle-rules.xml 파일을 선택
- 다음(Next)을 눌러 suppressionFile의 value에 naver-checkstyle-suppressions.xml 입력 후 Next
- 해당 파일이 잘 들어갔는지 확인 후, 해당 파일 Active 체크
- Scan Scope와 Treat Checkstyle errors as warnings, Copy libraries from project directory(requires restart) 중 필요에 따라 선택 후 확인(Apply)
- 아래처럼 check style을 벗어나면 확인 가능
'기타' 카테고리의 다른 글
[GitHub] Git branch (0) | 2022.10.23 |
---|---|
[GitHub] Issues, Milestone, Projects (0) | 2022.10.23 |
StringBuffer VS StringBuilder (0) | 2022.07.27 |
JSON (0) | 2022.07.22 |
HTML, CSS (0) | 2022.07.22 |
댓글