gc-guide-api/.claude/rules/naming.md
htlee d332283e86 feat: Spring Boot 3.5 + JDK 17 초기 프로젝트 구성
- Spring Boot 3.5.2 + Spring Security + JPA + PostgreSQL
- Google OAuth2 ID Token 검증 (google-api-client)
- JWT 인증 (jjwt 0.12.6)
- H2 인메모리 DB (로컬) / PostgreSQL (운영) 프로필 분리
- Nexus 프록시 경유 Maven 빌드 설정
- 팀 워크플로우 템플릿 (common + java-maven) 적용
2026-02-14 13:00:24 +09:00

2.1 KiB

Java 네이밍 규칙

패키지

  • 모두 소문자, 단수형
  • 도메인 역순: com.gcsc.프로젝트명.모듈
  • 예: com.gcsc.batch.scheduler, com.gcsc.api.auth

클래스

  • PascalCase
  • 명사 또는 명사구
  • 접미사로 역할 표시:
계층 접미사 예시
Controller Controller UserController
Service Service UserService
Service 구현 ServiceImpl UserServiceImpl (인터페이스 있을 때만)
Repository Repository UserRepository
Entity (없음) User, ShipRoute
DTO 요청 Request CreateUserRequest
DTO 응답 Response UserResponse
설정 Config SecurityConfig
예외 Exception UserNotFoundException
Enum (없음) UserStatus, ShipType
Mapper Mapper UserMapper

메서드

  • camelCase
  • 동사로 시작
  • CRUD 패턴:
작업 Controller Service Repository
조회(단건) getUser() getUser() findById()
조회(목록) getUsers() getUsers() findAll()
생성 createUser() createUser() save()
수정 updateUser() updateUser() save()
삭제 deleteUser() deleteUser() deleteById()
존재확인 - existsUser() existsById()

변수

  • camelCase
  • 의미 있는 이름 (단일 문자 변수 금지, 루프 인덱스 i, j, k 예외)
  • boolean: is, has, can, should 접두사
    • 예: isActive, hasPermission, canDelete

상수

  • UPPER_SNAKE_CASE
  • 예: MAX_RETRY_COUNT, DEFAULT_PAGE_SIZE

테스트

  • 클래스: {대상클래스}Test (예: UserServiceTest)
  • 메서드: {메서드명}_{시나리오}_{기대결과} 또는 한국어 @DisplayName
    • 예: createUser_withDuplicateEmail_throwsException()
    • 예: @DisplayName("중복 이메일로 생성 시 예외 발생")

파일/디렉토리

  • Java 파일: PascalCase (클래스명과 동일)
  • 리소스 파일: kebab-case (예: application-local.yml)
  • SQL 파일: V{번호}__{설명}.sql (Flyway) 또는 kebab-case