본문 바로가기

자바(Java)

Java Coding Convention 검사하기 - Formatter, CheckStyle

저번 포스팅에서는 구글 자바 코딩 컨벤션의 내용을 알아보았는데요, 이번 포스팅에서는 자바 코딩 컨벤션에 맞추어서 작성한 코드를 Formatter를 통해서 자동 정렬하고, CheckStyle을 통해서 검사하는 방법을 알아보겠습니다.

 

Formatter 사용하기


https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml

 

GitHub - google/styleguide: Style guides for Google-originated open-source projects

Style guides for Google-originated open-source projects - GitHub - google/styleguide: Style guides for Google-originated open-source projects

github.com

1. 위 링크에서 Google style 가이드 xml 파일을 받아줍니다.

2. 위치는 상관없이 저장해주세요.

3. IntelliJ에서 Setting(Window 기준) - Code Style - Java에 들어가줍니다.

 

tabs and indents가 올바르게 설정되어있지 않으면 바꿔주세요.

4. 톱니바퀴 버튼을 눌러서 파일을 지정하고, import하면 적용됩니다.

 

여기에서, 저는 우아한테크코스를 위해 조금 변경된 formatting을 적용하고 싶었기에, style guide xml 파일을 알맞게 수정해주었습니다.

1) 인덴트, 연속 탭을 우테코 기준에 맞게 각각 4, 8로 변경했습니다. (Ctrl + F로 tab, indent 찾은 후 바꿔줍니다.)

<code_scheme name="GoogleStyle">
  <option name="OTHER_INDENT_OPTIONS">
    <value>
      <option name="INDENT_SIZE" value="2" /> // 2 → 4 변경
      <option name="CONTINUATION_INDENT_SIZE" value="4" /> // 4 → 8 변경
      <option name="TAB_SIZE" value="2" /> // 2 → 4 변경

 

2) 열너비를 100에서 120으로 변경해줍니다.

  <option name="RIGHT_MARGIN" value="100" />

5. Formatter 사용하기

IntelliJ IDE에서는 Ctrl + Alt + L를 이용해서 자동 정렬 할 수 있습니다. 

 

6. 편리한 기능

1) Setting - Tools - Actions on Save에서 Reformat Code에 changed lines로 변경하면 버전관리되는 파일에 한해서만 저장 시에 formatting을 자동으로 적용합니다.

2) Optimize imports를 체크하면 불필요한 imports 등을 자동 제거합니다.

 

 

CheckStyle 사용하기


Formatter는 편리한 기능이지만, 앞서 구글 컨벤션에서 알아봤던 부분 중 일부분에 대해서만 기능을 제공하기 때문에 사용자의 주의를 요합니다. formatting를 적용해서 코드를 써나간다고 해서 Google convention에 맞는 코드라고 보기는 어렵습니다. 그래서 코드를 작성한 후 formatter 외에 convention을 검사할 수 있는 plug-in이 존재하는데요, 바로 Checkstyle입니다. CheckStyle로 검사를 하면 일반적으로 formatter에서 검사되지 않는 변수명, javadoc 등 세세한 부분까지 검사가 됩니다. 다만 formatter와 달리 자동 검사, 자동 수정 기능은 제공되지 않아 검사 이후 다시 맞춰 작성해줘야 합니다.

 

Checkstyle 설정하는 방법을 알아보겠습니다.

 

1. Settings - plug in에서 Checkstyle을 검색, 설치합니다.

2. 설치가 완료되면 Tools - Checkstyle에서 설정할 수 있습니다.

 

3. +를 눌러서 위에서 사용자 custom한 스타일 파일을 import 해주세요. (마찬가지로 파일을 원하는 컨벤션에 맞게 수정할 수 있습니다.)

4. 하단 바에서 CheckStyle을 누르고 초록색 화살표를 눌러서 검사할 수 있습니다.

 

 

위의 사진의 검사 결과를 보면, 단순히 space, 괄호 위치가 아닌 변수명 이름, import 시 wildcard 사용, Javadoc, 매직 넘버 사용 등 다양한 검사 기능을 지원하는 것을 알 수 있습니다. CheckStyle과 Formatter를 활용해서 좀 더 가독성 높은 코드를 작성해보세요.