3.3 KiB
3.3 KiB
Code Style 설정 가이드
이 문서는 프로젝트에서 Google Java Style을 자동으로 적용하기 위한 설정 가이드입니다.
자동 포맷팅 구성
1. 커밋 시점 자동 체크 (Git Pre-commit Hook)
커밋 전에 자동으로 코드 스타일을 체크하고, 문제가 있으면 커밋을 막습니다.
설정 완료: .git/hooks/pre-commit 파일이 자동으로 실행됩니다.
동작 방식:
- 커밋 시도 시
./gradlew spotlessCheck자동 실행 - 포맷팅 오류가 있으면 커밋 차단 및 안내 메시지 출력
- 포맷팅이 올바르면 커밋 허용
포맷팅 오류 발생 시:
# 자동 포맷팅 적용
./gradlew spotlessApply
# 변경사항 추가 후 다시 커밋
git add .
git commit
2. IntelliJ IDEA 저장 시점 자동 포맷팅
방법 1: Code Style 설정 임포트 (권장)
- IntelliJ IDEA 열기
- Settings/Preferences (Mac:
⌘,/ Windows:Ctrl+Alt+S) - Editor > Code Style > Java
- ⚙️ (톱니바퀴) 클릭 > Import Scheme > IntelliJ IDEA code style XML
- 프로젝트 루트의
intellij-java-google-style.xml파일 선택 - OK 클릭
방법 2: 저장 시 자동 포맷팅 활성화
Option A: Actions on Save 설정
- Settings/Preferences > Tools > Actions on Save
- 다음 옵션들을 활성화:
- ✅ Reformat code
- ✅ Optimize imports
- ✅ Rearrange code (선택사항)
- Changed lines 또는 Whole file 선택
- OK 클릭
Option B: Save Actions Plugin 사용 (더 많은 옵션)
- Settings/Preferences > Plugins
- Marketplace에서 "Save Actions" 검색 및 설치
- Settings/Preferences > Other Settings > Save Actions
- 다음 옵션 활성화:
- ✅ Activate save actions on save
- ✅ Reformat file
- ✅ Optimize imports
- ✅ Rearrange fields and methods (선택사항)
3. Gradle Spotless Plugin 수동 실행
코드 포맷팅 체크
# 포맷팅 문제 확인만 (수정하지 않음)
./gradlew spotlessCheck
코드 자동 포맷팅
# 모든 Java 파일 자동 포맷팅 적용
./gradlew spotlessApply
빌드 시 자동 체크
# 빌드 전에 자동으로 spotlessCheck 실행됨
./gradlew build
코드 스타일 규칙
프로젝트는 Google Java Style Guide 기반으로 다음 규칙을 따릅니다:
- Indentation: 2 spaces (탭 아님)
- Line Length: 100 characters
- Line Endings: LF (Unix-style)
- Charset: UTF-8
- Import Order: Static imports → 빈 줄 → Regular imports
- Braces: 모든 if, for, while, do 문에 중괄호 필수
문제 해결
Pre-commit hook이 실행되지 않는 경우
# 실행 권한 확인 및 부여
chmod +x .git/hooks/pre-commit
Spotless 플러그인이 동작하지 않는 경우
# Gradle 의존성 다시 다운로드
./gradlew clean build --refresh-dependencies
IntelliJ 포맷팅이 다르게 적용되는 경우
intellij-java-google-style.xml다시 임포트- File > Invalidate Caches > Invalidate and Restart
추가 정보
- Google Java Style Guide: https://google.github.io/styleguide/javaguide.html
- Spotless Plugin: https://github.com/diffplug/spotless
- IntelliJ Code Style: https://www.jetbrains.com/help/idea/code-style.html