# Code Style 설정 가이드 이 문서는 프로젝트에서 Google Java Style을 자동으로 적용하기 위한 설정 가이드입니다. ## 자동 포맷팅 구성 ### 1. 커밋 시점 자동 포맷팅 (Git Pre-commit Hook) 커밋 전에 자동으로 코드를 포맷팅하고 스테이징합니다. **설정 완료:** `.git/hooks/pre-commit` 파일이 자동으로 실행됩니다. **동작 방식:** - 커밋 시도 시 `./gradlew spotlessApply` 자동 실행 - 스테이징된 Java 파일을 자동으로 포맷팅 - 포맷팅된 파일을 자동으로 다시 스테이징 - 포맷팅이 완료되면 커밋 진행 **장점:** - 수동으로 `spotlessApply`를 실행할 필요 없음 - 항상 일관된 코드 스타일 유지 - 포맷팅 누락 방지 ### 2. IntelliJ IDEA 저장 시점 자동 포맷팅 #### 방법 1: Code Style 설정 임포트 (권장) 1. **IntelliJ IDEA 열기** 2. **Settings/Preferences** (Mac: `⌘,` / Windows: `Ctrl+Alt+S`) 3. **Editor > Code Style > Java** 4. **⚙️ (톱니바퀴)** 클릭 > **Import Scheme > IntelliJ IDEA code style XML** 5. 프로젝트 루트의 `intellij-java-google-style.xml` 파일 선택 6. **OK** 클릭 #### 방법 2: 저장 시 자동 포맷팅 활성화 **Option A: Actions on Save 설정** 1. **Settings/Preferences** > **Tools > Actions on Save** 2. 다음 옵션들을 활성화: - ✅ **Reformat code** - ✅ **Optimize imports** - ✅ **Rearrange code** (선택사항) 3. **Changed lines** 또는 **Whole file** 선택 4. **OK** 클릭 **Option B: Save Actions Plugin 사용 (더 많은 옵션)** 1. **Settings/Preferences** > **Plugins** 2. **Marketplace**에서 "Save Actions" 검색 및 설치 3. **Settings/Preferences** > **Other Settings > Save Actions** 4. 다음 옵션 활성화: - ✅ **Activate save actions on save** - ✅ **Reformat file** - ✅ **Optimize imports** - ✅ **Rearrange fields and methods** (선택사항) ### 3. Gradle Spotless Plugin 수동 실행 #### 코드 포맷팅 체크 ```bash # 포맷팅 문제 확인만 (수정하지 않음) ./gradlew spotlessCheck ``` #### 코드 자동 포맷팅 ```bash # 모든 Java 파일 자동 포맷팅 적용 ./gradlew spotlessApply ``` #### 빌드 시 자동 체크 ```bash # 빌드 전에 자동으로 spotlessCheck 실행됨 ./gradlew build ``` ## 코드 스타일 규칙 프로젝트는 **Google Java Style Guide** 기반으로 다음 규칙을 따릅니다: - **Indentation**: 2 spaces (탭 아님) - **Line Length**: 180 characters - **Line Endings**: LF (Unix-style) - **Charset**: UTF-8 - **Import Order**: Static imports → 빈 줄 → Regular imports - **Braces**: 모든 if, for, while, do 문에 중괄호 필수 ## 문제 해결 ### Pre-commit hook이 실행되지 않는 경우 ```bash # 실행 권한 확인 및 부여 chmod +x .git/hooks/pre-commit ``` ### Spotless 플러그인이 동작하지 않는 경우 ```bash # Gradle 의존성 다시 다운로드 ./gradlew clean build --refresh-dependencies ``` ### IntelliJ 포맷팅이 다르게 적용되는 경우 1. `intellij-java-google-style.xml` 다시 임포트 2. **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