-
[배달 중계 서비스#5] Google Java Format 자동화개발 일지 2024. 7. 19. 15:45
Google Java Format 이란
Google에서 Java 코드를 일관되고 읽기 쉽게 작성하기 위해 만든 코딩 스타일 가이드이다.
그 목적은 코드의 가독성을 높이고, 팀 간의 코드를 일관성 있게 유지하는 것이다.코드 스타일 가이드 중에서도 Google Java Format은 다소 엄격하고 제한적인 위치에 있으며,
반대로 그러한 이점 덕분에 일관성을 유지하기 쉽기 때문에 대표적으로 사용되고 있다.
Google Java Format 사용법
대부분의 경우 intellij-java-google-style.xml 파일을 다운 받아 intellij에 로드하는 방식을 사용한다.
(검색하면 상단에 나오는 블로그를 쭉 훑어 봐도 모두 이 방식을 소개하고 있다.)그러나 jetBrain 의 플러그인을 다운 받으면 훨씬 간편하게 사용할 수 있다.
https://plugins.jetbrains.com/plugin/8527-google-java-formatgoogle-java-format - IntelliJ IDEs Plugin | Marketplace
Formats source code using the google-java-format tool. This plugin requires additional IDE configuration. For more information, read the documentation.
plugins.jetbrains.com
위 플러그인을 다운 받고, 아래와 같이 Enable google-java-format 체크박스를 체크하고 적용 시키면 완료이다.
Ctrl + Alt + L 을 누르면 코드 포매팅이 이루어진다.
참고로 패키지를 선택하고 위 커맨드를 누른다면 하위 파일들이 모두 포매팅이 된다.
Format의 단점
차라리 모두가 Google-Java-Format을 사용하지 않았다면 문제가 없겠지만,
팀이 정한 포맷팅을 미처 깜박하고 적용하지 않은 채 PR을 올린다면 작업이 꼬이게 된다.
심지어 팀에서 그것을 체크하지 못하고 merge가 되어버리고, 나중에 다른 팀원이 상위 디렉토리에서 포맷팅을 한다면 상당히 높은 확률로 conflict를 직면하게 된다.실제로 나도 커맨드를 누르는 습관이 되어 있지 않아 번거로움을 많이 겪었다.
지금부터 소개할 것은 이러한 부작용과 번거로움에서 해방시켜 줄 자동화 전략이다.
Formating 자동화
적용 방법은 매우 간단한다.
아래와 같이 rootDir/.github/workflow에 yml 파일을 작성해 주면 된다.args: "--replace --aosp"
위 동작은 포맷팅이 되어있지 않을 경우 자동으로 수정하여 커밋을 한다.
이 떄 --aosp 를 사용해야 일반적으로 사용하는 들여쓰기 4칸이 적용되며, 기본은 들여쓰기가 2칸이니 주의하자.자동 적용이 아닌 검사만을 원한다면 아래와 같은 옵션으로 검사를 실패하면 빌드 또한 실패하게 만들 수 있다.
args: "--dry-run --set-exit-if-changed"자동화 적용 자동 Format Commit '개발 일지' 카테고리의 다른 글
[실시간 채팅 서비스#1] 개인 프로젝트 시작 (0) 2024.08.21 [배달 중계 서비스#6] Zipkin과 OpenTracing (0) 2024.07.20 [배달 중계 서비스#4] Jacoco 도입과 코드 커버리지 (0) 2024.07.18 [배달 중계 서비스#3] Spring Cloud 버전 충돌과 Test Context Load 이야기 (1) 2024.07.16 [배달 중계 서비스#0] 타임 라인 (0) 2024.07.12