최근 팀 단위의 프로젝트를 진행하게 되면서 기본적인 코드 컨벤션을 세우고 진행했지만,
아무래도 각자 코딩하던 스타일이 있기 때문에
(저를 예로들면 파이썬으로 코딩을 공부를 시작했기 때문에Pythonic
한 코드를 짜려고 합니다.)
코딩 컨벤션이 잘 지켜지고 있는 부분이 있는 반면에 또 잘 안지켜지고 있는 부분도 있는 것을 발견했습니다.
이 부분을 IDE를 활용해서 에디터에 적용 후 일관적인 코드를 작성하려합니다 :)
이번 글에서는 대표적으로 많이 사용하는 Google Java Style Guide
를 적용해보겠습니다.
시작 전 Formatter
와 Linter
에 대해 먼저 짚고 넘어가겠습니다.
Formatter
: 코드 스타일의 약속을 정하고 그 약속을 토대로 Code를 정리합니다. (ex. 줄바꿈, 주석, tab size 등 )
Linter
: 코드를 분석해서 에러를 찾거나 더 나은 코드를 위해서 모범 사례를 제시해 줍니다.
파이썬과 자바스크립트 진영에서는 위의 용어로 사용되지만, 자바진영에서는 아무래도 Intellij
가 많이 사용되고 강력하다보니 구글링시 대부분의 사람들이 Formatter
는 Intellij의 기본기능인 code style
로 Linter
는 checkstyle
플러그인으로 관리를 하는 것 같습니다.
( 틀렸다면 알려주세요..! )
Formatter와 Linter를 조합하면 Formatter를 통해 소스코드를 포맷팅하고, Linter를 사용해서 라인을 검사할 수 있게됩니다.
따라서 이번 포스팅에서는 code style
과 checkstyle
을 적용해보겠습니다.
( 세팅을 진행 전 진행하던 작업들을 안전하게 종료해주세요 )
Setting > Plugins
에 들어가서 'checkstyle'을 검색합니다.
설치 후 RESTART IDE
버튼을 눌러 Intellij를 재시작 해줍니다.
이후 Setting > Tools > Checkstyle
로 들어가서 Checkstyle 버전을 확입해줍니다.
원하는 checkstyle의 xml 파일이 있다면 여기서 import 해줍니다.
(버전에 따라서 xml파일을 import 하지 못 할 수 있다고 합니다.)
저는 기본적인 Google Checks
를 그대로 사용하면 테스트 코드의 한글 메서드, javadocs의 한글 사용, 라인길이 등 컨벤션이 기본적으로 많이 깨지기 때문에 checkstyle에서 기본적으로 제공해주는 Google Checks
에서 조금 수정해서 사용하겠습니다.
수정 내용은 아래와 같습니다.
팀에서 사용하기로 한 약속이 있다면 저처럼 적용하면 됩니다 :)
CheckStyle 사용법은 두 가지가 있습니다.
하단 좌측의 연필 모양을 누르면 원하는 checkstyle을 선택해서 현재 열린 파일을 검사할 수 있습니다.
(현재 저는 Beta UI를 사용하고 있어서 조금 다르지만, 기존 UI는 하단에 CheckStyle 버튼이 있을겁니다!)
검사하게 되면 현재 파일에서 컨벤션이 맞지 않는 부분을 알려줍니다.
commit 시 옵션에 scan with checkstyle을 체크하면 전체적으로 commit 전체적으로 파일을 검사해줍니다.
또는 Review 버튼을 눌러 고쳐주면 신경쓰지 않아도 커밋 전에 검토할 수 있다고 합니다 :)
이 기능은 사용해보고 이미지 추가해놓겠습니다.
처음 설명한 대로 정적으로 분석해주는 Linter
가 있다면 이번에는 정해둔 약속대로 코드를 정리 정돈해주는 Formatter
를 설정해봅시다 :)
위의 문서를 참고해서 아래의 Github의 파일로 세팅을 진행합니다.
Github에 가보면 intellij-java-google-style.xml
파일이 있을텐데, 해당 파일을 다운로드 받습니다.
이후 Setting > Editor > Code Style > Java
경로로 들어가서 다운로드 받았던 파일을 Import 시켜줍니다.
이후에 저는 google style 파일을 베이스로 Linter에서 수정한 부분을 Formatter도 마찬가지로 수정해주었습니다. 수정 부분은 아래와 같습니다.
이후 설정을 완료하면 이제 Formmater 설정한 대로 Code Style이 작동하게됩니다.