(이 글은 성균관대학교-컬리 산학협력 프로젝트 수행 중, 김지헌 멘토님께 받은 자료를 바탕으로 쓰게 되었습니다)
코드 스타일 보다는 어떻게든 기능 개발에만 초점을 맞추던 코린이 시절을 지나, 이제는 코드 스타일 통합에 대한 생각을 해야하는 시기가 와버렸다. 프로젝트 중에 멘토님께서 [JAVA Style Guide] 라는 직접 작성하신 문서를 바탕으로 쉽게 Intellij에 적용할 수 있었기에, 이 글을 통해 그 방법을 다시 익힐겸 써보려고 한다.
Google Java Style Guide는 말그대로 구글에서 자바를 사용할 때 코드를 작성하는 사람, 읽는 사람의 편의성을 위해 양식을 통일해 둔 것이다. ‘스페이스 2칸, 넓이 100자’
의 형태이다.
Intellij에 이를 적용해보도록 하겠다.
우선, Intellij에서 google-java-format 플러그인
을 설치한다.
(Intellij → Preference → Plugin → Market ‘google-java-format’ 설치)
그리고 Intellij → Preference → Other Settings → google-java-format Settings으로 들어가 Enable google-java-format
을 활성화 해준다.
추가된 google-java-format Intellij Plugin 은 import 정렬(Ordering) 을 처리하지 못하기 때문에, 여기서 intellij-java-google-style.xml
을 다운 받아 Code style 에 적용해야 한다.
해당 파일을 다운 받았으면, Intellij → Preference → Editor → Code Style → Java
Schema 오른쪽에 있는 톱티모양을 선택하여 ‘Import Scheme → Intellij IDEA code style XML’ 을 선택한다.
이렇게 해서 Intellij Formater 와 Code Style 에 ‘google-java-format’ 스타일 반영되었다.
Spotless란 Keep your code spotless
, Junit5에서 컨벤션을 지키고 쉽게 유지보수하기 위해 사용하는 플러그인이라고 한다. 만약 컨벤션이 지켜지지 않을 경우 build가 실패하기에, 컨벤션을 지키기에 용이하다.
먼저 Gradle 플러그인을 추가해준다.
plugins {
id "com.diffplug.spotless" version "6.11.0"
}
그리고 스크립트 블럭 안에서 프로젝트 세부속성을 정의한다.
spotless {
java {
importOrder()
removeUnusedImports()
googleJavaFormat() // 구글자바형식 지정
// 안드로이드의 경우 googleJavaFormat().aosp()
formatAnnotations()
}
}
./gradlew spotlessCheck
: 코드가 정해진 컨벤션을 지키고 있는지 확인./gradlew spotlessApply
: 프로젝트내 코드 형식 일괄변환