# 프로젝트 개요 - **타입**: Java + Spring Boot + Gradle - **JDK**: 17 (`.sdkmanrc` 참조) - **프레임워크**: Spring Boot - **빌드 도구**: Gradle (Gradle Wrapper 사용) ## 빌드 및 실행 ```bash # 빌드 ./gradlew compileJava # 패키징 ./gradlew build -x test # 테스트 ./gradlew test # 특정 테스트 클래스 실행 ./gradlew test --tests "패키지.클래스명" # 로컬 실행 ./gradlew bootRun # 린트 (Checkstyle 설정된 경우) ./gradlew checkstyleMain ``` ## 프로젝트 구조 ``` src/ ├── main/ │ ├── java/ │ │ └── com/gcsc/{프로젝트}/ │ │ ├── config/ # 설정 클래스 │ │ ├── controller/ # REST 컨트롤러 │ │ ├── service/ # 비즈니스 로직 │ │ ├── repository/ # 데이터 접근 │ │ ├── domain/ # 엔티티 │ │ ├── dto/ # 데이터 전송 객체 │ │ ├── exception/ # 예외 처리 │ │ └── util/ # 유틸리티 │ └── resources/ │ ├── application.yml # 공통 설정 │ ├── application-local.yml # 로컬 설정 (.gitignore) │ └── application-prod.yml # 운영 설정 └── test/ └── java/ # 테스트 코드 ``` ## 팀 규칙 - 코드 스타일: `.claude/rules/code-style.md` 참조 - 네이밍 규칙: `.claude/rules/naming.md` 참조 - 테스트 규칙: `.claude/rules/testing.md` 참조 - Git 워크플로우: `.claude/rules/git-workflow.md` 참조 - 팀 정책: `.claude/rules/team-policy.md` 참조 ## 의존성 관리 - Nexus 프록시 레포지토리를 통해 의존성 관리 (`build.gradle` repositories 블록) - 인증 정보는 `~/.gradle/gradle.properties`에 관리 (커밋 금지) - 프로젝트의 `gradle.properties.example`을 참고하여 로컬 설정