신진수 |
박예나 |
| Category | Stack |
|---|---|
| Language | |
| Framework | |
| ORM | |
| Database | |
| Build | |
| Library | |
| API Docs | |
| Infra | |
| Version Control |
Format: type/#issueNum/{domain}
| type | 설명 |
|---|---|
feat |
새로운 기능 추가 |
fix |
버그 수정 |
refactor |
기능 변경 없는 구조 개선 |
docs |
문서, Swagger 수정 |
test |
테스트 추가 또는 수정 |
chore |
설정, 패키지 구조, 빌드 작업 |
| domain | 대상 |
|---|---|
home |
홈 화면 |
product |
상품 상세 |
cart |
장바구니 |
payment |
결제 |
global |
공통 |
Format: type(#issueNum/domain): 작업 내용
예시: feat(#12/home): 카테고리 조회 API 구현
베이스 패키지: src/main/java/com/sopt/collaboration
src/main/java/{base-package}
├── global
│ ├── config
│ ├── entity # BaseEntity
│ ├── response # ApiResponseBody, SuccessCode, ErrorMeta
│ ├── exception # BusinessException, GlobalExceptionHandler, ErrorCode
│ └── util
│
└── domain
└── {domain-name}
├── controller
├── service
├── repository
├── entity
└── exception # {Domain}Exception, {Domain}ErrorCode
| 순서 | 대상 |
|---|---|
| 1 | 상수 (static final) |
| 2 | static 변수 |
| 3 | 인스턴스 변수 |
| 4 | 생성자 |
| 5 | public 메서드 (getter/setter는 마지막) |
| 6 | protected 메서드 |
| 7 | package-private 메서드 |
| 8 | private 메서드 |
| 9 | nested 클래스/인터페이스 |
- 리소스명은 복수형으로 작성 (예:
/products,/categories) - 리소스명은 kebab-case로 작성 (예:
/promotion-items) - path variable 변수명은 camelCase로 작성 (예:
/{productId}) - 불필요한 상위 리소스를 포함하지 않도록 최소한의 경로로 설계
- 리소스 위치 특정 → path variable 사용
- 리소스 필터링/검색 → query string 사용