- 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) 적용
2.1 KiB
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