Git 커밋 가이드라인
커밋 메시지 형식
<타입>(<범위>): <태국어 또는 영어로 작성한 제목>
[선택적 본문]
타입
| 타입 | 사용 시점 |
|---|
feat | 새로운 기능 또는 페이지 추가 |
fix | 버그 수정 |
refactor | 동작 변경 없는 코드 구조 개선 |
style | UI/CSS 변경만 (로직 변경 없음) |
chore | 설정, 의존성, 도구 관련 (prisma generate 등) |
docs | 문서나 주석 변경 |
perf | 성능 개선 |
이 프로젝트에 맞춘 범위
| 범위 | 매핑 대상 |
|---|
auth | src/lib/auth.ts, src/lib/auth-client.ts, (auth)/ 라우트 |
product | (front)/product/, app-product-card.tsx |
cart | src/lib/cart-store.ts, 장바구니 컴포넌트 |
course | (front)/course/, src/services/course-service.ts |
contact | (front)/contact/, src/app/api/contact/ |
prisma | prisma/schema.prisma, src/lib/prisma.ts |
ui | src/components/ui/, src/components/ |
layout | (front)/layout.tsx, (auth)/layout.tsx |
api | src/app/api/ |
config | next.config.ts, prisma.config.ts, .env |
제목 규칙
- 영어만 사용
- 짧은 문장, 72자 이내
- 끝에 마침표(period) 없음
- 현재형 사용: "add", "fix", "update" ("added", "fixed" 사용 금지)
예시
feat(product): add product detail page
fix(cart): fix totalPrice calculation when qty is 0
chore(prisma): regenerate Prisma client after schema changes
style(ui): update badge color in hero component
refactor(auth): extract signIn logic from page component
feat(api): add GET /api/products endpoint with pagination
fix(contact): prevent XSS in email HTML template
주의사항
.env 파일은 커밋 금지 — BETTER_AUTH_SECRET 및 DATABASE_URL 포함
generated/prisma/ 파일은 gitignore됨 — 스테이징하면 안 됨
- 스키마 수정 후에는
npx prisma generate를 먼저 실행한 후 스키마 파일을 커밋할 것
- 특별한 이유 없이
--no-verify를 사용하여 hook을 건너뛰지 말 것
커밋 전 체크리스트