0. 개요
coding convention?
소스코드의 작성 규칙을 정의한 것입니다.
소스코드의 일관성을 유지할 수 있고, 같은 규칙을 공유하는 팀원들이라면 빠르게 읽고 이해할 수 있어 유지보수에 도움을 줍니다.
[네이버 핵데이 자바 코딩 컨벤션 내용 확인하기]
어떻게 적용할까?
정적 코드 분석 도구를 사용해 적용합니다.
이를 사용해 적용하게 되면, 규칙에 알맞지 않은 코드가 존재할 시 컴파일이 되지 않도록 설정할 수 있습니다.
정적 분석 도구란?
소스코드, 바이너리 코드를 분석해 버그 및 취약점을 찾아내는 도구입니다.
컴파일 하지 않고 코드 자체를 분석하므로, 코딩 컨벤션의 규칙을 확인하기에 알맞습니다.
대표적으로 Checkstyle이 있습니다.
적용전 준비
우선 naver convention xml과 formatter xml 파일을 받아 두어야 합니다. [이동]
이중에서 노란색으로 표시한 세가지를 받아두시면 되겠습니다.
1. IntelliJ IDE로 적용하기
1.1 formatter 적용등록하기
아래 이미지대로 순서대로 진행하면 됩니다.
Setting - Editor - Code Style 탭으로 이동해 Scheme 옆의 톱니바퀴를 눌러 위에서 다운받았던 formatter를 원하는 이름으로 등록하시면 됩니다.
번외로, IDE에서 코드를 저장할때마다 컨벤션을 적용되도록 할 수 있습니다.
Setting - Tools - Actions on Save 탭에서 Reformat code를 체크하시면 됩니다.
Optimize imports Action은 class에서 사용하지 않는 import들을 자동으로 지워주는 기능입니다.
1-2. checkStyle 적용
우선 Settings - Plugins로 이동해서 checkstyle을 검색해 플러그인을 다운받습니다.
설치후에는 재시작을 해주셔야 합니다!
재시작을 하시면 아래 이미지처럼 Settings - Tools - Checkstyle탭이 생성되어 있습니다.
- Scan scope를 All sources including tests로 설정해 모든 소스코드에 대해서 코딩컨벤션을 검사하도록 합니다.
- Treat Checkstyle errors as warnings를 체크해 컨센션을 어기면 경고나 에러를 발생시키도록 설정합니다.
- +버튼을 눌러 아까 다운받은 rules.xml을 찾아 discription을 입력하고 next로 넘어갑니다
여기에 naver-checkstyle-suppressions.xml를 입력해줍니다.
더 자세한 적용 메뉴얼은 [공식문서]를 참조해주시면 되겠습니다.
1-3. 확인해보기
플러그인을 설치하고 재시작했다면 Tool Windows에 CheckStyle이 추가되어 있습니다.
해당 툴 윈도우로 run을 해보면 어느 부분이 컨벤션과 불일치하는지 확인할 수 있습니다.
2. build.gradle을 통해 적용하기
build.gradle에 적용을 함으로써, 빌드시에 컨벤션을 확인하도록 구성할 수 있습니다.
구성방법은 간단합니다!
2-1. 플러그인 추가
plugins {
id 'checkstyle'
}
2-2. checkstyle 설정 기술
//컴파일시 UTF-8로 인코딩해 한글 테스트에서 워닝 발생되지 않도록 설정
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
//mxl 리포트 및 html 리포트를 생성하려면 추가
tasks.withType(Checkstyle) {
reports {
xml.required = true
html.required = true
}
}
checkstyle {
// 규칙이 어긋나는 코드가 하나라도 있을 경우 빌드 fail을 내고 싶다면 이 선언을 추가
maxWarnings = 0
//rule 및 suppressions xml파일 위치 명시
configFile = file("config/checkstyle/naver-checkstyle-rules.xml")
configProperties = ["suppressionFile": "config/checkstyle/naver-checkstyle-suppressions.xml"]
// checkstyle 버전 8.24 이상 선언
toolVersion ="8.24"
}
저는 xml파일을을 root/config/checkstyle에 위치시켜서 위처럼 작성했습니다.
꼭 동일한 경로로 입력할 필요는 없습니다!
'IDE & Framework > Spring' 카테고리의 다른 글
Spring - MyBatis 설정하기 (0) | 2023.06.05 |
---|---|
[단축 URL 프로젝트 URLumberjack] - 기타 규칙 정의 (0) | 2023.04.28 |
[단축 URL 프로젝트 URLumberjack] - 기술 스택 정의 (0) | 2023.04.28 |
[단축 URL 프로젝트 URLumberjack] - devOps 정의 (0) | 2023.04.24 |
Spring boot 서버를 Gradle로 build해 jar로 직접 배포하기 (0) | 2022.06.29 |