코딩 컨벤션
코딩 컨벤션이란 가독성이 좋고 관리하기 쉬운 코드를 작성하기 위한 코딩 스타일 규약을 말합니다.
각자 코딩 스타일이 다르겠지만 팀원 모두 코딩 컨벤션을 준수할 경우 가독성이 좋아지고, 성능에 영향을 주거나 오류를 발생시키는 잠재적 위험 요소를 줄여줍니다.
특히 규모가 큰 프로젝트일수록 유지보수 비용을 줄이는 데 도움이 됩니다.
코딩 컨벤션을 적용하기 위해 정적 코드 분석 도구를 도입하는데, 보통 Java에서는 Checkstyle과 같은 도구를 주로 사용하고 자바스크립트에서는 ESLint를 적용하여 사용합니다.
- ex) google java coding convention, naver java coding convention, airbnb eslint
이번 게시글에서는 Intellij에서 네이버 자바 코딩 컨벤션을 적용하는 방법을 간단히 정리하겠습니다.
네이버 자바 포맷터 적용 방법
1. 네이버 Intellij formatter 다운로드
2. Intellij Settings > Editor > Coding Style > Scheme > Import Scheme > Intellij IDEA code style XML > 네이버 Intellij formatter 적용
* Java Formatter이지만 모든 파일에 적용이 되는데 저희 팀의 경우 html, css, js 파일에는 포맷터 적용을 원치 않으신 분들이 있어 제외를 하도록 했습니다.
제외시키고 싶은 경우 아래 경로에서 Do not format에 정규식으로 추가해 주면 됩니다.
3. 여기까지 적용하면 윈도우 기준 Ctrl + Alt + S, 맥 기준 option + command + L을 누르면 포맷팅이 적용됩니다.
해당 단축키 사용이 어색한 사람들을 위해 Intellij에서는 저장 시마다 포맷팅이 적용될 수 있는 설정을 제공합니다.
Intellij Settings > Tools > Actions on Save > Reformat Code 활성화, Optimize imports 활성화
저희 팀은 앞서 언급했다시피 html, css, 그리고 js 파일에 대해서는 포맷팅 안 하기로 정했으므로 Reformat Code가 적용될 file 중 html, css, js를 제외합니다.
CheckStyle 적용
Checkstyle이란 자바 소스 코드가 지정된 코딩 컨벤션을 준수하는지 확인하기 위한 정적 코드 분석 도구입니다.
지정된 규칙에 어긋나는 경우 컴파일 시 경고나 에러를 띄워주기 때문에 컨벤션 적용 습관화에 도움이 됩니다.
진행하기에 앞서 CheckStyle 정책 파일인 naver-checkstyle-rules.xml과 CheckStyle 예외 파일들을 정의하는 naver-checkstyle-suppressions.xml 파일을 다운로드해줍니다.
https://github.com/naver/hackday-conventions-java/blob/master/rule-config/naver-checkstyle-rules.xml
앞서 저희 팀은 html, css, 그리고 js 파일에 대해서는 포맷팅을 안 하기로 했으므로 suppressions 파일을 아래와 같이 수정했습니다.
이제 본격적으로 CheckStyle 적용 방법을 안내드리겠습니다.
1. Intellij Settings > Plugin > MarketPlace > CheckStyle-IDEA 설치 (설치 후 Intellij 재실행 필요)
2. Intellij Settings > Tools > Checkstyle > Configuration File 추가 > Description: Naver Coding Convetion, local CheckStyle file에 다운로드한 naver-checkstyle-rules.xml 세팅
Next 누른 후 suppressionFile 속성에 naver-checkstyle-suppressions.xml 작성 후 적용
* 주의: naver-checkstyle-rules.xml과 naver-checkstyle-suppressions.xml 파일은 같은 위치에 저장
추가한 Naver 코딩 컨벤션 체크 후 apply
3. 적용 후 Intellij 하단에 CheckStyle 탭에서 Rules를 추가한 네이버 코딩 컨벤션 세팅 후 확인하고 싶은 파일에서 Run 할 경우 수정해야 할 사항을 확인할 수 있습니다.
4. 추가적으로 모든 수정된 파일에 대해 체크하는 기능도 제공 합니다.
비고
네이버 코딩 컨벤션에 대해 더 자세히 알고 싶으신 분들은 아래 링크를 확인해 주세요.
https://github.com/naver/hackday-conventions-java?tab=readme-ov-file
참고
https://bestinu.tistory.com/64
https://ui.toast.com/fe-guide/ko_CODING-CONVENTION
'[DEV] 기록' 카테고리의 다른 글
[SpringBoot] parallel stream 버그 해결 (0) | 2024.07.07 |
---|---|
Chrome에서 ChatGPT 안되는 경우 해결 방법 (1) | 2024.03.09 |
사내 개발 스터디 계획 초안 (7) | 2024.01.03 |
CORS 개요 (0) | 2023.12.21 |
[SpringBoot] HibernateException: No CurrentSessionContext configured! (0) | 2023.12.19 |