Contents
- 시작하며
- IntelliJ에 적용하기
- 1. 아래 링크에 플러그인을 설치하세요.
- 2. IntelliJ 에서 설정을 활성화해줍니다
- 3. 끝입니다. 사용하세요
- GitHub 프로젝트 레벨에서 적용하기
- 1. 프로세스 이해하기
- 2. 워크플로우 파일 생성하기
- 3. 워크플로우 작성하기
- 4. Push 하기
- 5. 결과 확인하기
- 추가 적용 가능 사항
- 1. google-java-format 워크플로우 다른 옵션들도 확인해보기
- 2. 워크플로우 고도화하기
- 정리하기
시작하며
팀 단위 프로젝트에서는 코딩 컨벤션을 정하고 준수해야 합니다. 단편적인 이유로 참여자 모두 포맷팅을 제외한 실제 변경사항만 볼 수 있기 때문입니다. 분명 제각기 다른 개성을 가진 코드 스타일들이 있을 테니 코딩 컨벤션을 모두 지키며 개발하기란 쉽지 않지요. 현재 진행 중인 프로젝트에서는 github 저장소 레벨에서 google-java-style을 강제하기로 결정했습니다.
오늘은 Github 프로젝트 & Intellij 전반에 걸쳐 Google Java Style Guide을 적용하게 된 사례들을 소개하려고 합니다.
- IntelliJ에 적용하기 (단축키)
- GitHub 프로젝트 레벨에서 적용하기 (자동화)
IntelliJ에서 포매팅 플러그인을 설치 후 설정하고, GitHub 프로젝트 레벨은 자동화를 시켜보겠습니다.
IntelliJ에 적용하기
우선 IntelliJ 레벨 적용방법은 매우 간단합니다.
혹시나 해서 국내에 다른 블로그들을 찾아보니 전부 intellij-java-google-style.xml 파일을 로드하는 IntelliJ IDEA code style scheme 스키마 방식으로 적용하시더군요.
그보다 더 쉬운 방법을 알려드리겠습니다.
1. 아래 링크에 플러그인을 설치하세요.
https://plugins.jetbrains.com/plugin/8527-google-java-format
2. IntelliJ 에서 설정을 활성화해줍니다.
- Intellij > preferences > other settings > google-java-format settings 이동하기
- enable google java format 체크하기
3. 끝입니다. 사용하세요!
단축키 Ctrl+Alt+L 를 누르시면 코드 포매팅을 할 수 있습니다.
GitHub 프로젝트 레벨에서 적용하기
예를 들어 팀 프로젝트를 Github에서 진행하고 있습니다.
팀원들 모두 Intellij Google Java Formatter를 적용하고 있습니다.
문제는 종종 포매팅을 하지 않고 PR을 올리는 경우가 있다는 것입니다.
이 문제를 어떻게 해결할 수 있을까요?
Github Actions의 워크플로우를 활용해서 포맷팅을 자동화하는 것입니다.
Github Actions 워크플로우에 대한 내용은 워낙 많아서 랜덤 하게 레퍼런스 하나 공유해드리겠습니다.
https://blog.outsider.ne.kr/1510
1. 프로세스 이해하기
작동되는 프로세스는 이렇습니다.
- 우리가 정한 push, pull_request 등의 이벤트가 발생합니다.
- "Google Java Format" 액션 워크플로우가 실행되며 포매팅을 적용합니다.
- 포매팅 워크플로우가 다시 저장소에 푸시합니다.
2. 워크플로우 파일 생성하기
이미 깃허브 프로젝트가 존재한다고 가정하겠습니다.
rootDir/. github/workflows 이외의 이름의 YAML 파일을 생성해줍니다.
저는 google-java-format.yml로 만들겠습니다.
***주의할 점 : 디렉터리가 다르면 깃허브에서 인식을 못하기 때문에 디렉터리를 지켜주어야 합니다.
3. 워크플로우 작성하기.
워크플로우를 작성합니다.
핑크색 주석으로 설정들에 대한 설명도 추가해두었습니다.
4. Push 하기
CI: google java format으로 push를 해보겠습니다.
Push를 하면 google-java-format 추가적인 포매팅을 거치고 다시 설정한 커밋 메시지 이름대로 Push 하는 것을 볼 수 있습니다.
5. 결과 확인하기
제가 설정한 대로 인덴트 4 (aosp 스타일) 이 적용되었군요.
좋습니다.
> 추가 적용 가능 사항
1. google-java-format 워크플로우 다른 옵션들도 확인해보기
여기서 2번 포매팅을 적용하는 github action 부분을 보면 아래 라인에서 포매팅이 적용이 되는데요.
여기서 포매팅 관련 다른 설정들도 있으니 axel-op/googlejavaformat-action 저장소에서 확인하면 좋을 것 같습니다.
2. 워크플로우 고도화하기
위에서 소개한 워크플로우 신택스는 모든 브랜치에 적용이 됩니다.
하지만 상황에 따라 아래와 같이 적용하지 않을 브랜치를 설정하거나 적용할 브랜치도 적용 가능하니 한번 github actions workflow syntax로 한번 검색해보시기 바랍니다.
> 정리하기
오늘은 아래 두 가지 Google Java Style Guide 적용 방법을 소개해드렸습니다.
- IntelliJ에서 쉽게 적용 기능 설정하기
- 깃허브 프로젝트 레벨에서 자동화 + 강제하기
그리고 이후에는 추가 팁들도 소개했습니다.
유익한 정보가 됐기를!
감사합니다.
'in-bob-we-trust' 카테고리의 다른 글
프로젝트 비용 최적화를 위한 Reactive + MongoDB Atlas Serverless 적용 및 예시 (Spring Webflux) (0) | 2022.01.25 |
---|---|
[Reactive한 라이더위치 기능구현 ] 요구사항 분석부터 위치정보 저장 기능 구현까지 (0) | 2022.01.13 |
중계서비스 Swagger 도큐먼트 툴 적용 + 단점 보완 (0) | 2021.12.13 |
배달 중계서비스를 설계하고있습니다. part.1 (0) | 2021.12.10 |
프로젝트 주제를 정했습니다. (0) | 2021.11.30 |