@kood/claude-code 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/index.js +129 -5
  2. package/package.json +2 -2
  3. package/templates/hono/CLAUDE.md +20 -2
  4. package/templates/hono/docs/architecture/architecture.md +909 -0
  5. package/templates/hono/docs/commands/git.md +275 -0
  6. package/templates/hono/docs/deployment/cloudflare.md +527 -190
  7. package/templates/hono/docs/deployment/docker.md +514 -0
  8. package/templates/hono/docs/deployment/index.md +179 -214
  9. package/templates/hono/docs/deployment/railway.md +416 -0
  10. package/templates/hono/docs/deployment/vercel.md +567 -0
  11. package/templates/hono/docs/library/ai-sdk/index.md +427 -0
  12. package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
  13. package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
  14. package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
  15. package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
  16. package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
  17. package/templates/hono/docs/library/hono/env-setup.md +458 -0
  18. package/templates/hono/docs/library/hono/index.md +1 -3
  19. package/templates/hono/docs/library/pino/index.md +437 -0
  20. package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
  21. package/templates/hono/docs/library/prisma/config.md +362 -0
  22. package/templates/hono/docs/library/prisma/index.md +86 -13
  23. package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
  24. package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
  25. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
  26. package/templates/npx/CLAUDE.md +309 -0
  27. package/templates/npx/docs/commands/git.md +275 -0
  28. package/templates/npx/docs/library/commander/index.md +164 -0
  29. package/templates/npx/docs/library/fs-extra/index.md +171 -0
  30. package/templates/npx/docs/library/prompts/index.md +253 -0
  31. package/templates/npx/docs/mcp/index.md +60 -0
  32. package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
  33. package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
  34. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
  35. package/templates/tanstack-start/CLAUDE.md +43 -5
  36. package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
  37. package/templates/tanstack-start/docs/commands/git.md +275 -0
  38. package/templates/tanstack-start/docs/deployment/cloudflare.md +223 -50
  39. package/templates/tanstack-start/docs/deployment/index.md +320 -30
  40. package/templates/tanstack-start/docs/deployment/nitro.md +195 -14
  41. package/templates/tanstack-start/docs/deployment/railway.md +302 -150
  42. package/templates/tanstack-start/docs/deployment/vercel.md +345 -75
  43. package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
  44. package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
  45. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
  46. package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
  47. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
  48. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
  49. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
  50. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
  51. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
  52. package/templates/tanstack-start/docs/library/pino/index.md +320 -0
  53. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
  54. package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
  55. package/templates/tanstack-start/docs/library/prisma/index.md +3 -5
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/prisma/setup.md +0 -7
  58. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  59. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  61. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  62. package/templates/hono/docs/git/index.md +0 -180
  63. package/templates/tanstack-start/docs/git/index.md +0 -203
@@ -44,6 +44,7 @@
44
44
  ❌ Server Function에 middleware 누락 금지 (인증 필요 시)
45
45
  ❌ handler 내부에서 수동 검증 금지 (inputValidator 사용)
46
46
  ❌ handler 내부에서 수동 인증 체크 금지 (middleware 사용)
47
+ ❌ 클라이언트에서 Server Function 직접 호출 금지 → TanStack Query 필수
47
48
  ```
48
49
 
49
50
  ### 코드 검색 금지 사항
@@ -53,6 +54,36 @@
53
54
  ✅ 코드베이스 검색 시 sgrep 사용 필수
54
55
  ```
55
56
 
57
+ ### Custom Hook 순서 금지 사항
58
+ ```
59
+ ❌ Custom Hook 내부 순서 무시 금지
60
+ ✅ 반드시 아래 순서 준수:
61
+ 1. State (useState, zustand store)
62
+ 2. Global Hooks (useParams, useNavigate, useQueryClient 등)
63
+ 3. React Query (useQuery → useMutation 순서)
64
+ 4. Event Handlers & Functions
65
+ 5. useMemo
66
+ 6. useEffect
67
+ ```
68
+
69
+ ### 코드 작성 규칙
70
+ ```
71
+ ✅ 모든 한글 텍스트는 UTF-8 인코딩 유지
72
+ ✅ 코드 묶음 단위로 한글 주석 작성 (너무 세세하게 X)
73
+ ✅ Prisma Multi-File 모든 요소에 한글 주석 필수
74
+ ```
75
+
76
+ ### Prisma Multi-File 구조 (필수)
77
+ ```
78
+ prisma/
79
+ ├── schema/
80
+ │ ├── +base.prisma # datasource, generator 설정
81
+ │ ├── +enum.prisma # 모든 enum 정의
82
+ │ ├── user.prisma # User 모델
83
+ │ ├── post.prisma # Post 모델
84
+ │ └── ... # 기타 모델별 파일
85
+ ```
86
+
56
87
  ---
57
88
 
58
89
  ## ✅ ALWAYS DO (필수 실행)
@@ -112,7 +143,7 @@ docs: API 문서 업데이트
112
143
  | 작업 | 문서 경로 | 필독 여부 |
113
144
  |------|----------|----------|
114
145
  | **전체 가이드** | `docs/README.md` | 🔴 필수 |
115
- | **Git 규칙** | `docs/git/index.md` | 🔴 필수 |
146
+ | **Git 규칙** | `docs/git/git.md` | 🔴 필수 |
116
147
  | **MCP 도구** | `docs/mcp/` | 🔴 필수 |
117
148
  | **Gemini Review** | `docs/skills/gemini-review/` | 🟡 복잡한 작업 시 |
118
149
  | **UI 개발** | `docs/design/` | 🟡 해당 시 |
@@ -243,17 +274,24 @@ export const Route = createFileRoute('/users')({
243
274
  })
244
275
  ```
245
276
 
246
- ### TanStack Query
277
+ ### TanStack Query (서버 연동 시 필수)
247
278
  ```tsx
279
+ // ✅ 데이터 조회: useQuery 필수
280
+ const getPosts = useServerFn(getServerPosts)
248
281
  const { data } = useQuery({
249
282
  queryKey: ['users'],
250
- queryFn: () => getUsers(),
283
+ queryFn: () => getPosts(),
251
284
  })
252
285
 
286
+ // ✅ 데이터 변경: useMutation 필수
287
+ const createPostFn = useServerFn(createPost)
253
288
  const mutation = useMutation({
254
- mutationFn: createUser,
289
+ mutationFn: createPostFn,
255
290
  onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),
256
291
  })
292
+
293
+ // ❌ 금지: Server Function 직접 호출
294
+ // useEffect(() => { getPosts().then(setData) }, [])
257
295
  ```
258
296
 
259
297
  ---
@@ -273,7 +311,7 @@ const mutation = useMutation({
273
311
  ## 🔗 Quick Links
274
312
 
275
313
  - [문서 가이드](./docs/README.md)
276
- - [Git 규칙](./docs/git/index.md)
314
+ - [Git 규칙](./docs/git/git.md)
277
315
  - [MCP 가이드](./docs/mcp/index.md)
278
316
  - [디자인 가이드](./docs/design/index.md)
279
317
  - [아키텍처](./docs/architecture/architecture.md)
@@ -21,8 +21,9 @@ TanStack Start 애플리케이션의 기술 아키텍처 가이드입니다.
21
21
  │ │
22
22
  │ ┌────────────────────────────────────────────────────────────┐ │
23
23
  │ │ Server Functions │ │
24
- │ │ - createServerFn({ method: 'GET' }) → Queries │ │
25
- │ │ - createServerFn({ method: 'POST' }) → Mutations │ │
24
+ │ │ - src/functions/ → 글로벌 서버 함수 │ │
25
+ │ │ - routes/-functions/ → 페이지 전용 서버 함수 │ │
26
+ │ │ - middlewares/ → 공통 미들웨어 │ │
26
27
  │ └────────────────────────────┬───────────────────────────────┘ │
27
28
  │ │ │
28
29
  │ ┌────────────────────────────▼───────────────────────────────┐ │
@@ -54,10 +55,17 @@ my-app/
54
55
  │ ├── routes/ # 파일 기반 라우팅
55
56
  │ │ ├── __root.tsx # Root layout
56
57
  │ │ ├── index.tsx # Home (/)
58
+ │ │ ├── -functions/ # 글로벌 라우트 레벨 서버 함수
59
+ │ │ │ ├── index.ts # re-export
60
+ │ │ │ └── get-session.ts # 세션 조회 함수
57
61
  │ │ └── users/
58
62
  │ │ ├── index.tsx # /users
59
63
  │ │ ├── $id.tsx # /users/:id
60
64
  │ │ ├── route.tsx # route 설정 (선택)
65
+ │ │ ├── -functions/ # 페이지 전용 서버 함수
66
+ │ │ │ ├── index.ts # re-export
67
+ │ │ │ ├── get-users.ts # 사용자 목록 조회
68
+ │ │ │ └── create-user.ts # 사용자 생성
61
69
  │ │ ├── -components/ # 페이지 전용 컴포넌트
62
70
  │ │ │ └── user-card.tsx
63
71
  │ │ ├── -sections/ # 섹션 분리
@@ -65,6 +73,14 @@ my-app/
65
73
  │ │ │ └── user-filter-section.tsx
66
74
  │ │ └── -hooks/ # 페이지 전용 훅
67
75
  │ │ └── use-users.ts
76
+ │ ├── functions/ # 글로벌 서버 함수
77
+ │ │ ├── index.ts # re-export
78
+ │ │ ├── get-current-user.ts # 현재 사용자 조회
79
+ │ │ ├── validate-session.ts # 세션 검증
80
+ │ │ └── middlewares/ # 서버 함수 미들웨어
81
+ │ │ ├── index.ts # re-export
82
+ │ │ ├── auth.ts # 인증 미들웨어
83
+ │ │ └── rate-limit.ts # 레이트 리밋 미들웨어
68
84
  │ ├── components/ # 공통 컴포넌트
69
85
  │ │ └── ui/
70
86
  │ │ ├── button.tsx
@@ -117,6 +133,7 @@ my-app/
117
133
  routes/<route-name>/
118
134
  ├── index.tsx # 페이지 컴포넌트
119
135
  ├── route.tsx # route 설정 (loader, beforeLoad)
136
+ ├── -functions/ # 페이지 전용 서버 함수
120
137
  ├── -components/ # 페이지 전용 컴포넌트
121
138
  ├── -sections/ # 섹션 분리 (복잡한 경우)
122
139
  └── -hooks/ # 페이지 전용 훅
@@ -124,8 +141,9 @@ routes/<route-name>/
124
141
 
125
142
  **특징**:
126
143
  - `-` 접두사 폴더는 라우트에서 제외
127
- - 페이지별로 컴포넌트, 섹션, 훅을 분리
144
+ - 페이지별로 서버 함수, 컴포넌트, 섹션, 훅을 분리
128
145
  - Section은 UI 영역 단위, Component는 재사용 단위
146
+ - `-functions/`는 해당 페이지에서만 사용하는 서버 함수
129
147
 
130
148
  ```tsx
131
149
  // routes/users/index.tsx
@@ -204,7 +222,119 @@ export const createUser = createServerFn({ method: 'POST' })
204
222
  })
205
223
  ```
206
224
 
207
- ### 3. Database Layer (Data Access)
225
+ ### 3. Server Functions Layer
226
+
227
+ 서버 함수를 체계적으로 구성합니다. 파일당 하나의 서버 함수만 정의합니다.
228
+
229
+ ```
230
+ src/functions/ # 글로벌 서버 함수
231
+ ├── index.ts # re-export
232
+ ├── <function-name>.ts # 개별 서버 함수
233
+ └── middlewares/ # 서버 함수 미들웨어
234
+ ├── index.ts # re-export
235
+ └── <middleware-name>.ts # 개별 미들웨어
236
+
237
+ routes/<route-name>/-functions/ # 페이지 전용 서버 함수
238
+ ├── index.ts # re-export
239
+ └── <function-name>.ts # 개별 서버 함수
240
+ ```
241
+
242
+ **규칙**:
243
+ - **파일당 하나의 함수**: 각 파일에는 하나의 서버 함수만 정의
244
+ - **명확한 네이밍**: 파일명이 곧 함수의 역할 (`get-users.ts`, `create-user.ts`)
245
+ - **글로벌 vs 로컬**: 여러 페이지에서 사용 → `src/functions/`, 특정 페이지 전용 → `-functions/`
246
+
247
+ **글로벌 서버 함수** - 여러 페이지에서 공유:
248
+
249
+ ```typescript
250
+ // src/functions/get-current-user.ts
251
+ import { createServerFn } from '@tanstack/react-start'
252
+ import { prisma } from '@/database/prisma'
253
+ import { authMiddleware } from './middlewares'
254
+
255
+ export const getCurrentUser = createServerFn({ method: 'GET' })
256
+ .middleware([authMiddleware])
257
+ .handler(async ({ context }) => {
258
+ return prisma.user.findUnique({
259
+ where: { id: context.userId },
260
+ })
261
+ })
262
+ ```
263
+
264
+ ```typescript
265
+ // src/functions/index.ts
266
+ export { getCurrentUser } from './get-current-user'
267
+ export { validateSession } from './validate-session'
268
+ ```
269
+
270
+ **페이지 전용 서버 함수** - 특정 페이지에서만 사용:
271
+
272
+ ```typescript
273
+ // routes/users/-functions/get-users.ts
274
+ import { createServerFn } from '@tanstack/react-start'
275
+ import { prisma } from '@/database/prisma'
276
+
277
+ export const getUsers = createServerFn({ method: 'GET' })
278
+ .handler(async () => {
279
+ return prisma.user.findMany({
280
+ orderBy: { createdAt: 'desc' },
281
+ })
282
+ })
283
+ ```
284
+
285
+ ```typescript
286
+ // routes/users/-functions/create-user.ts
287
+ import { createServerFn } from '@tanstack/react-start'
288
+ import { prisma } from '@/database/prisma'
289
+ import { createUserSchema } from '@/services/user/schemas'
290
+
291
+ export const createUser = createServerFn({ method: 'POST' })
292
+ .inputValidator(createUserSchema)
293
+ .handler(async ({ data }) => {
294
+ return prisma.user.create({ data })
295
+ })
296
+ ```
297
+
298
+ ```typescript
299
+ // routes/users/-functions/index.ts
300
+ export { getUsers } from './get-users'
301
+ export { createUser } from './create-user'
302
+ ```
303
+
304
+ **미들웨어** - 공통 로직 재사용:
305
+
306
+ ```typescript
307
+ // src/functions/middlewares/auth.ts
308
+ import { createMiddleware } from '@tanstack/react-start'
309
+
310
+ export const authMiddleware = createMiddleware()
311
+ .server(async ({ next }) => {
312
+ const session = await getSession()
313
+ if (!session) {
314
+ throw new Error('Unauthorized')
315
+ }
316
+ return next({ context: { userId: session.userId } })
317
+ })
318
+ ```
319
+
320
+ ```typescript
321
+ // src/functions/middlewares/rate-limit.ts
322
+ import { createMiddleware } from '@tanstack/react-start'
323
+
324
+ export const rateLimitMiddleware = createMiddleware()
325
+ .server(async ({ next }) => {
326
+ // 레이트 리밋 로직
327
+ return next()
328
+ })
329
+ ```
330
+
331
+ ```typescript
332
+ // src/functions/middlewares/index.ts
333
+ export { authMiddleware } from './auth'
334
+ export { rateLimitMiddleware } from './rate-limit'
335
+ ```
336
+
337
+ ### 4. Database Layer (Data Access)
208
338
 
209
339
  Prisma를 통한 데이터 액세스를 담당합니다.
210
340
 
@@ -0,0 +1,275 @@
1
+ # Git 워크플로우
2
+
3
+ ---
4
+
5
+ ## ⛔ NEVER (절대 금지)
6
+
7
+ ```
8
+ ❌ 커밋에 "Generated with Claude Code" 포함
9
+ ❌ 커밋에 "🤖" 또는 AI 관련 이모지 포함
10
+ ❌ 커밋에 "Co-Authored-By:" 헤더 포함
11
+ ❌ 커밋에 AI/봇이 작성했다는 어떤 표시도 포함
12
+ ❌ 커밋 메시지 여러 줄 작성
13
+ ❌ 커밋 메시지에 이모지 사용
14
+ ❌ 커밋 메시지에 마침표(.) 사용
15
+ ❌ 여러 작업을 하나의 커밋으로 퉁치기
16
+ ```
17
+
18
+ ---
19
+
20
+ ## ✅ ALWAYS (필수)
21
+
22
+ ### 작업 완료 후 반드시 실행
23
+
24
+ ```bash
25
+ git add <관련 파일들>
26
+ git commit -m "<prefix>: <설명>"
27
+ ```
28
+
29
+ ### ⭐ 커밋 분리 원칙
30
+
31
+ **하나의 커밋 = 하나의 논리적 변경 단위**
32
+
33
+ ```bash
34
+ # ❌ 잘못된 방식: 모든 작업을 하나로 퉁침
35
+ git add .
36
+ git commit -m "feat: 여러 기능 추가"
37
+
38
+ # ✅ 올바른 방식: 논리적 단위로 분리
39
+ git add src/auth/
40
+ git commit -m "feat: 사용자 인증 기능 추가"
41
+
42
+ git add src/users/
43
+ git commit -m "feat: 사용자 관리 기능 추가"
44
+
45
+ git add docs/
46
+ git commit -m "docs: API 문서 업데이트"
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 📝 커밋 형식
52
+
53
+ ```
54
+ <prefix>: <설명>
55
+ ```
56
+
57
+ **한 줄로 간결하게** 작성합니다. 본문이나 푸터는 작성하지 않습니다.
58
+
59
+ ---
60
+
61
+ ## 🏷 Prefix 목록
62
+
63
+ | Prefix | 용도 | 예시 |
64
+ |--------|------|------|
65
+ | `feat` | 새로운 기능 | `feat: 사용자 인증 기능 추가` |
66
+ | `fix` | 버그 수정 | `fix: 토큰 검증 오류 수정` |
67
+ | `refactor` | 리팩토링 | `refactor: 인증 로직 분리` |
68
+ | `style` | 코드 스타일 | `style: prettier 적용` |
69
+ | `docs` | 문서 수정 | `docs: API 문서 업데이트` |
70
+ | `test` | 테스트 | `test: 인증 테스트 추가` |
71
+ | `chore` | 빌드/설정 | `chore: 의존성 업데이트` |
72
+ | `perf` | 성능 개선 | `perf: 쿼리 최적화` |
73
+ | `ci` | CI/CD | `ci: GitHub Actions 추가` |
74
+
75
+ ---
76
+
77
+ ## ✅ 올바른 예시
78
+
79
+ ```bash
80
+ feat: 사용자 로그인 기능 추가
81
+ fix: 세션 만료 오류 수정
82
+ refactor: 서비스 클래스 구조 개선
83
+ docs: README 설치 가이드 추가
84
+ chore: 의존성 버전 업그레이드
85
+ ```
86
+
87
+ ---
88
+
89
+ ## ❌ 잘못된 예시
90
+
91
+ ```bash
92
+ # prefix 없음
93
+ 사용자 인증 기능 추가함
94
+
95
+ # 마침표 불필요
96
+ feat: 사용자 인증 추가.
97
+
98
+ # 대문자 사용
99
+ FEAT: 사용자 인증 추가
100
+
101
+ # scope 불필요
102
+ feat(auth): 인증 추가
103
+
104
+ # AI 작성 표시 (절대 금지!)
105
+ feat: 로그인 기능 추가
106
+
107
+ 🤖 Generated with Claude Code
108
+
109
+ # Co-Author 표시 (절대 금지!)
110
+ feat: 로그인 기능 추가
111
+
112
+ Co-Authored-By: Claude <noreply@anthropic.com>
113
+
114
+ # 여러 줄 본문 (금지)
115
+ feat: 로그인 기능 추가
116
+
117
+ - 이메일 인증 추가
118
+ - 세션 관리 구현
119
+
120
+ # 여러 작업을 하나로 퉁침 (금지)
121
+ feat: 로그인, 회원가입, 프로필 기능 추가
122
+ ```
123
+
124
+ ---
125
+
126
+ ## 🔄 작업 흐름
127
+
128
+ ```bash
129
+ # 1. 작업 전 최신 코드 동기화
130
+ git pull origin main
131
+
132
+ # 2. 기능 A 작업 완료 → 커밋
133
+ git add src/feature-a/
134
+ git commit -m "feat: 기능 A 구현"
135
+
136
+ # 3. 기능 B 작업 완료 → 커밋
137
+ git add src/feature-b/
138
+ git commit -m "feat: 기능 B 구현"
139
+
140
+ # 4. 문서 작업 완료 → 커밋
141
+ git add docs/
142
+ git commit -m "docs: 기능 문서 추가"
143
+
144
+ # 5. 푸시
145
+ git push origin main
146
+ ```
147
+
148
+ ---
149
+
150
+ ## 📦 커밋 분리 가이드
151
+
152
+ ### 언제 커밋을 분리해야 하나요?
153
+
154
+ | 상황 | 커밋 분리 |
155
+ |------|----------|
156
+ | 서로 다른 기능 구현 | ✅ 분리 |
157
+ | 버그 수정 + 새 기능 | ✅ 분리 |
158
+ | 코드 변경 + 문서 변경 | ✅ 분리 |
159
+ | 리팩토링 + 기능 추가 | ✅ 분리 |
160
+ | 동일 기능의 관련 파일들 | 🔄 묶어도 됨 |
161
+ | 동일 기능의 타입 + 구현 | 🔄 묶어도 됨 |
162
+
163
+ ### 예시: 사용자 관리 기능 개발
164
+
165
+ ```bash
166
+ # 1. 인증 기능 커밋
167
+ git add src/auth/
168
+ git commit -m "feat: 사용자 인증 기능 추가"
169
+
170
+ # 2. 사용자 관리 커밋
171
+ git add src/users/
172
+ git commit -m "feat: 사용자 CRUD 기능 추가"
173
+
174
+ # 3. 유효성 검사 커밋
175
+ git add src/validators/
176
+ git commit -m "feat: 입력값 유효성 검사 추가"
177
+
178
+ # 4. 테스트 커밋
179
+ git add tests/
180
+ git commit -m "test: 사용자 관리 테스트 추가"
181
+
182
+ # 5. 문서 커밋
183
+ git add docs/
184
+ git commit -m "docs: 사용자 API 문서 추가"
185
+ ```
186
+
187
+ ---
188
+
189
+ ## 🌿 브랜치 전략
190
+
191
+ ### 간단한 프로젝트
192
+ ```
193
+ main ← 모든 작업 직접 커밋
194
+ ```
195
+
196
+ ### 팀 프로젝트
197
+ ```
198
+ main
199
+ └── feature/기능명
200
+ └── fix/버그명
201
+ └── hotfix/긴급수정
202
+ ```
203
+
204
+ ### 브랜치 명명
205
+ ```bash
206
+ feature/user-authentication
207
+ feature/payment-integration
208
+ fix/session-error
209
+ hotfix/security-patch
210
+ ```
211
+
212
+ ---
213
+
214
+ ## 📋 자주 사용하는 명령어
215
+
216
+ ```bash
217
+ # 상태 확인
218
+ git status
219
+
220
+ # 변경 내용 확인
221
+ git diff
222
+
223
+ # 최근 커밋 로그
224
+ git log --oneline -10
225
+
226
+ # 커밋 취소 (작업 내용 유지)
227
+ git reset --soft HEAD~1
228
+
229
+ # 스테이징 취소
230
+ git restore --staged .
231
+
232
+ # 변경사항 임시 저장
233
+ git stash
234
+ git stash pop
235
+
236
+ # 특정 파일만 스테이징
237
+ git add <파일경로>
238
+
239
+ # 대화형 스테이징 (부분 커밋용)
240
+ git add -p
241
+ ```
242
+
243
+ ---
244
+
245
+ ## 📚 .gitignore
246
+
247
+ ```gitignore
248
+ # Dependencies
249
+ node_modules/
250
+
251
+ # Build
252
+ dist/
253
+ .output/
254
+ build/
255
+
256
+ # Environment
257
+ .env
258
+ .env.local
259
+ .env.*.local
260
+
261
+ # IDE
262
+ .idea/
263
+ .vscode/
264
+ *.swp
265
+
266
+ # OS
267
+ .DS_Store
268
+
269
+ # Cache
270
+ .cache/
271
+ .turbo/
272
+
273
+ # Logs
274
+ *.log
275
+ ```