@kood/claude-code 0.1.0
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.
- package/dist/index.d.ts +2 -0
- package/dist/index.js +297 -0
- package/package.json +47 -0
- package/templates/hono/CLAUDE.md +376 -0
- package/templates/hono/docs/deployment/cloudflare.md +328 -0
- package/templates/hono/docs/deployment/index.md +291 -0
- package/templates/hono/docs/git/index.md +180 -0
- package/templates/hono/docs/library/hono/error-handling.md +400 -0
- package/templates/hono/docs/library/hono/index.md +241 -0
- package/templates/hono/docs/library/hono/middleware.md +334 -0
- package/templates/hono/docs/library/hono/rpc.md +454 -0
- package/templates/hono/docs/library/hono/validation.md +328 -0
- package/templates/hono/docs/library/prisma/index.md +427 -0
- package/templates/hono/docs/library/zod/index.md +413 -0
- package/templates/hono/docs/mcp/context7.md +106 -0
- package/templates/hono/docs/mcp/index.md +94 -0
- package/templates/hono/docs/mcp/sequential-thinking.md +101 -0
- package/templates/hono/docs/mcp/sgrep.md +105 -0
- package/templates/hono/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +136 -0
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +303 -0
- package/templates/tanstack-start/CLAUDE.md +279 -0
- package/templates/tanstack-start/docs/architecture/architecture.md +547 -0
- package/templates/tanstack-start/docs/deployment/cloudflare.md +346 -0
- package/templates/tanstack-start/docs/deployment/index.md +102 -0
- package/templates/tanstack-start/docs/deployment/nitro.md +211 -0
- package/templates/tanstack-start/docs/deployment/railway.md +364 -0
- package/templates/tanstack-start/docs/deployment/vercel.md +287 -0
- package/templates/tanstack-start/docs/design/accessibility.md +433 -0
- package/templates/tanstack-start/docs/design/color.md +235 -0
- package/templates/tanstack-start/docs/design/components.md +409 -0
- package/templates/tanstack-start/docs/design/index.md +107 -0
- package/templates/tanstack-start/docs/design/safe-area.md +317 -0
- package/templates/tanstack-start/docs/design/spacing.md +341 -0
- package/templates/tanstack-start/docs/design/tailwind-setup.md +470 -0
- package/templates/tanstack-start/docs/design/typography.md +324 -0
- package/templates/tanstack-start/docs/git/index.md +203 -0
- package/templates/tanstack-start/docs/guides/best-practices.md +753 -0
- package/templates/tanstack-start/docs/guides/getting-started.md +304 -0
- package/templates/tanstack-start/docs/guides/husky-lint-staged.md +303 -0
- package/templates/tanstack-start/docs/guides/prettier.md +189 -0
- package/templates/tanstack-start/docs/guides/project-templates.md +710 -0
- package/templates/tanstack-start/docs/library/better-auth/2fa.md +136 -0
- package/templates/tanstack-start/docs/library/better-auth/advanced.md +138 -0
- package/templates/tanstack-start/docs/library/better-auth/index.md +83 -0
- package/templates/tanstack-start/docs/library/better-auth/plugins.md +111 -0
- package/templates/tanstack-start/docs/library/better-auth/session.md +127 -0
- package/templates/tanstack-start/docs/library/better-auth/setup.md +123 -0
- package/templates/tanstack-start/docs/library/prisma/crud.md +218 -0
- package/templates/tanstack-start/docs/library/prisma/index.md +165 -0
- package/templates/tanstack-start/docs/library/prisma/relations.md +191 -0
- package/templates/tanstack-start/docs/library/prisma/schema.md +177 -0
- package/templates/tanstack-start/docs/library/prisma/setup.md +156 -0
- package/templates/tanstack-start/docs/library/prisma/transactions.md +140 -0
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +146 -0
- package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +146 -0
- package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +196 -0
- package/templates/tanstack-start/docs/library/tanstack-query/setup.md +110 -0
- package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +170 -0
- package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +173 -0
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +171 -0
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +114 -0
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +142 -0
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +163 -0
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +128 -0
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +85 -0
- package/templates/tanstack-start/docs/library/zod/basic-types.md +186 -0
- package/templates/tanstack-start/docs/library/zod/complex-types.md +204 -0
- package/templates/tanstack-start/docs/library/zod/index.md +186 -0
- package/templates/tanstack-start/docs/library/zod/transforms.md +174 -0
- package/templates/tanstack-start/docs/library/zod/validation.md +208 -0
- package/templates/tanstack-start/docs/mcp/context7.md +204 -0
- package/templates/tanstack-start/docs/mcp/index.md +116 -0
- package/templates/tanstack-start/docs/mcp/sequential-thinking.md +180 -0
- package/templates/tanstack-start/docs/mcp/sgrep.md +174 -0
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +150 -0
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +293 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# 타이포그래피
|
|
2
|
+
|
|
3
|
+
> **상위 문서**: [UI/UX 디자인 가이드](./index.md)
|
|
4
|
+
|
|
5
|
+
타이포그래피(Typography)는 텍스트를 읽기 쉽고 시각적으로 매력적으로 만드는 기술입니다.
|
|
6
|
+
|
|
7
|
+
## 기본 원칙
|
|
8
|
+
|
|
9
|
+
### 1. 폰트는 2-3개만
|
|
10
|
+
|
|
11
|
+
> 폰트가 많을수록 디자인은 산만해집니다.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
권장 구성:
|
|
15
|
+
- 제목용 폰트 1개
|
|
16
|
+
- 본문용 폰트 1개
|
|
17
|
+
- (선택) 코드용 폰트 1개
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 2. 크기로 계층 표현
|
|
21
|
+
|
|
22
|
+
> 제목과 본문의 크기 차이로 중요도를 표현합니다.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
h1 (제목) ━━━━━━━━━━━━━━━━━━━━━━━ 가장 큼
|
|
26
|
+
h2 (부제목) ━━━━━━━━━━━━━━━━━
|
|
27
|
+
h3 (소제목) ━━━━━━━━━━━━
|
|
28
|
+
p (본문) ━━━━━━━━ 기준 크기
|
|
29
|
+
small ━━━━━━ 가장 작음
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 3. 일관된 스타일
|
|
33
|
+
|
|
34
|
+
> 같은 역할의 텍스트는 항상 같은 스타일을 사용합니다.
|
|
35
|
+
|
|
36
|
+
## 폰트 선택 가이드
|
|
37
|
+
|
|
38
|
+
### Sans-serif (산세리프) - 본문에 권장
|
|
39
|
+
|
|
40
|
+
획의 끝에 장식이 없는 깔끔한 폰트입니다.
|
|
41
|
+
|
|
42
|
+
| 폰트 | 특징 | 추천 용도 |
|
|
43
|
+
|------|------|----------|
|
|
44
|
+
| **Inter** | 현대적, 가독성 뛰어남 | 웹 전반 |
|
|
45
|
+
| **Pretendard** | 한글 최적화, Inter 호환 | 한글 프로젝트 |
|
|
46
|
+
| **Noto Sans KR** | 한글/영문 균형 | 다국어 프로젝트 |
|
|
47
|
+
| **Roboto** | Google 스타일 | Material Design |
|
|
48
|
+
| **SF Pro** | Apple 스타일 | iOS/macOS 앱 |
|
|
49
|
+
|
|
50
|
+
### Serif (세리프) - 제목에 선택적
|
|
51
|
+
|
|
52
|
+
획의 끝에 장식(세리프)이 있는 전통적인 폰트입니다.
|
|
53
|
+
|
|
54
|
+
| 폰트 | 특징 | 추천 용도 |
|
|
55
|
+
|------|------|----------|
|
|
56
|
+
| **Georgia** | 클래식, 신뢰감 | 블로그, 뉴스 |
|
|
57
|
+
| **Merriweather** | 가독성 높음 | 긴 글 읽기 |
|
|
58
|
+
| **Noto Serif KR** | 한글 세리프 | 격식있는 제목 |
|
|
59
|
+
|
|
60
|
+
### Monospace (고정폭) - 코드용
|
|
61
|
+
|
|
62
|
+
모든 글자가 같은 너비를 가지는 폰트입니다.
|
|
63
|
+
|
|
64
|
+
| 폰트 | 특징 |
|
|
65
|
+
|------|------|
|
|
66
|
+
| **JetBrains Mono** | 개발자용, 리가처 지원 |
|
|
67
|
+
| **Fira Code** | 리가처 지원 |
|
|
68
|
+
| **SF Mono** | Apple 스타일 |
|
|
69
|
+
|
|
70
|
+
## 폰트 크기 시스템
|
|
71
|
+
|
|
72
|
+
### 기본 크기 체계
|
|
73
|
+
|
|
74
|
+
```css
|
|
75
|
+
/* Tailwind 기본 크기 */
|
|
76
|
+
text-xs 0.75rem 12px 작은 레이블, 캡션
|
|
77
|
+
text-sm 0.875rem 14px 보조 텍스트, 메타 정보
|
|
78
|
+
text-base 1rem 16px 본문 (기본)
|
|
79
|
+
text-lg 1.125rem 18px 강조 본문
|
|
80
|
+
text-xl 1.25rem 20px 소제목 (h4)
|
|
81
|
+
text-2xl 1.5rem 24px 섹션 제목 (h3)
|
|
82
|
+
text-3xl 1.875rem 30px 페이지 부제목 (h2)
|
|
83
|
+
text-4xl 2.25rem 36px 페이지 제목 (h1)
|
|
84
|
+
text-5xl 3rem 48px 히어로 제목
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 실제 적용 예시
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
// 페이지 제목
|
|
91
|
+
<h1 className="text-4xl font-bold">대시보드</h1>
|
|
92
|
+
|
|
93
|
+
// 섹션 제목
|
|
94
|
+
<h2 className="text-2xl font-semibold">최근 활동</h2>
|
|
95
|
+
|
|
96
|
+
// 카드 제목
|
|
97
|
+
<h3 className="text-xl font-medium">사용자 통계</h3>
|
|
98
|
+
|
|
99
|
+
// 본문
|
|
100
|
+
<p className="text-base">오늘 방문자 수는 1,234명입니다.</p>
|
|
101
|
+
|
|
102
|
+
// 보조 텍스트
|
|
103
|
+
<span className="text-sm text-gray-500">5분 전 업데이트</span>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 줄 간격 (Line Height)
|
|
107
|
+
|
|
108
|
+
### 왜 중요한가?
|
|
109
|
+
|
|
110
|
+
줄 간격이 좁으면 답답하고, 너무 넓으면 텍스트가 흩어져 보입니다.
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
줄 간격 너무 좁음 (1.2) 적절한 줄 간격 (1.5)
|
|
114
|
+
━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━
|
|
115
|
+
이 텍스트는 줄 간격이 이 텍스트는 줄 간격이
|
|
116
|
+
너무 좁아서 읽기가 적절해서 읽기가
|
|
117
|
+
불편합니다. 편합니다.
|
|
118
|
+
━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Tailwind 줄 간격
|
|
122
|
+
|
|
123
|
+
```css
|
|
124
|
+
leading-none 1 제목 (한 줄)
|
|
125
|
+
leading-tight 1.25 짧은 제목
|
|
126
|
+
leading-snug 1.375 부제목
|
|
127
|
+
leading-normal 1.5 본문 (기본, 권장)
|
|
128
|
+
leading-relaxed 1.625 긴 글
|
|
129
|
+
leading-loose 2 매우 여유로운 글
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 텍스트 길이별 권장 줄 간격
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
// 짧은 제목 - 타이트하게
|
|
136
|
+
<h1 className="text-4xl leading-tight">한 줄 제목</h1>
|
|
137
|
+
|
|
138
|
+
// 긴 본문 - 여유롭게
|
|
139
|
+
<p className="text-base leading-relaxed">
|
|
140
|
+
긴 본문 텍스트는 줄 간격이 넉넉해야
|
|
141
|
+
읽기가 편합니다.
|
|
142
|
+
</p>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 글자 굵기 (Font Weight)
|
|
146
|
+
|
|
147
|
+
### Tailwind 굵기 옵션
|
|
148
|
+
|
|
149
|
+
```css
|
|
150
|
+
font-thin 100 거의 사용 안함
|
|
151
|
+
font-extralight 200 거의 사용 안함
|
|
152
|
+
font-light 300 밝은 테마 대형 제목
|
|
153
|
+
font-normal 400 본문 (기본)
|
|
154
|
+
font-medium 500 약간 강조
|
|
155
|
+
font-semibold 600 부제목, 버튼
|
|
156
|
+
font-bold 700 제목, 강조
|
|
157
|
+
font-extrabold 800 히어로 제목
|
|
158
|
+
font-black 900 임팩트 제목
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 계층별 권장 굵기
|
|
162
|
+
|
|
163
|
+
```tsx
|
|
164
|
+
// 메인 제목 - 볼드
|
|
165
|
+
<h1 className="text-4xl font-bold">제목</h1>
|
|
166
|
+
|
|
167
|
+
// 부제목 - 세미볼드
|
|
168
|
+
<h2 className="text-2xl font-semibold">부제목</h2>
|
|
169
|
+
|
|
170
|
+
// 본문 - 일반
|
|
171
|
+
<p className="text-base font-normal">본문 텍스트</p>
|
|
172
|
+
|
|
173
|
+
// 강조 - 미디엄
|
|
174
|
+
<strong className="font-medium">중요한 내용</strong>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## 가독성 최적화
|
|
178
|
+
|
|
179
|
+
### 줄 길이 (Line Length)
|
|
180
|
+
|
|
181
|
+
> 한 줄에 너무 많은 글자는 읽기 어렵습니다.
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
권장: 45-75자 (영문 기준)
|
|
185
|
+
한글: 25-35자
|
|
186
|
+
|
|
187
|
+
Tailwind로 제한:
|
|
188
|
+
max-w-prose → 65ch (약 65자)
|
|
189
|
+
max-w-xl → 36rem
|
|
190
|
+
max-w-2xl → 42rem
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
```tsx
|
|
194
|
+
// 본문 컨테이너
|
|
195
|
+
<article className="max-w-prose mx-auto">
|
|
196
|
+
<p>이 텍스트는 적절한 줄 길이로 제한되어 읽기 편합니다.</p>
|
|
197
|
+
</article>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 글자 간격 (Letter Spacing)
|
|
201
|
+
|
|
202
|
+
```css
|
|
203
|
+
tracking-tighter -0.05em 대형 제목
|
|
204
|
+
tracking-tight -0.025em 제목
|
|
205
|
+
tracking-normal 0 본문 (기본)
|
|
206
|
+
tracking-wide 0.025em 대문자, 작은 텍스트
|
|
207
|
+
tracking-wider 0.05em 레이블
|
|
208
|
+
tracking-widest 0.1em 버튼 텍스트
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
```tsx
|
|
212
|
+
// 대형 제목 - 약간 좁게
|
|
213
|
+
<h1 className="text-5xl tracking-tight">히어로 제목</h1>
|
|
214
|
+
|
|
215
|
+
// 작은 레이블 - 약간 넓게
|
|
216
|
+
<span className="text-xs tracking-wide uppercase">NEW</span>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## 실전 타이포그래피 시스템
|
|
220
|
+
|
|
221
|
+
### 완성된 텍스트 스타일 세트
|
|
222
|
+
|
|
223
|
+
```tsx
|
|
224
|
+
// src/components/ui/typography.tsx
|
|
225
|
+
|
|
226
|
+
// 페이지 제목
|
|
227
|
+
export const PageTitle = ({ children }) => (
|
|
228
|
+
<h1 className="text-4xl font-bold tracking-tight text-gray-900 dark:text-white">
|
|
229
|
+
{children}
|
|
230
|
+
</h1>
|
|
231
|
+
)
|
|
232
|
+
|
|
233
|
+
// 섹션 제목
|
|
234
|
+
export const SectionTitle = ({ children }) => (
|
|
235
|
+
<h2 className="text-2xl font-semibold text-gray-900 dark:text-white">
|
|
236
|
+
{children}
|
|
237
|
+
</h2>
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
// 카드 제목
|
|
241
|
+
export const CardTitle = ({ children }) => (
|
|
242
|
+
<h3 className="text-lg font-medium text-gray-900 dark:text-white">
|
|
243
|
+
{children}
|
|
244
|
+
</h3>
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
// 본문
|
|
248
|
+
export const Body = ({ children }) => (
|
|
249
|
+
<p className="text-base leading-relaxed text-gray-700 dark:text-gray-300">
|
|
250
|
+
{children}
|
|
251
|
+
</p>
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
// 보조 텍스트
|
|
255
|
+
export const Caption = ({ children }) => (
|
|
256
|
+
<span className="text-sm text-gray-500 dark:text-gray-400">
|
|
257
|
+
{children}
|
|
258
|
+
</span>
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
// 레이블
|
|
262
|
+
export const Label = ({ children }) => (
|
|
263
|
+
<span className="text-xs font-medium uppercase tracking-wide text-gray-500">
|
|
264
|
+
{children}
|
|
265
|
+
</span>
|
|
266
|
+
)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## 폰트 설정
|
|
270
|
+
|
|
271
|
+
### Tailwind CSS v4 폰트 설정
|
|
272
|
+
|
|
273
|
+
```css
|
|
274
|
+
/* src/styles/app.css */
|
|
275
|
+
@import "tailwindcss";
|
|
276
|
+
|
|
277
|
+
@theme {
|
|
278
|
+
/* 폰트 패밀리 */
|
|
279
|
+
--font-sans: "Pretendard", "Inter", system-ui, sans-serif;
|
|
280
|
+
--font-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Next.js / TanStack Start 폰트 로딩
|
|
285
|
+
|
|
286
|
+
```tsx
|
|
287
|
+
// Google Fonts 사용 시
|
|
288
|
+
// src/routes/__root.tsx
|
|
289
|
+
import { Link } from '@tanstack/react-router'
|
|
290
|
+
|
|
291
|
+
export const Route = createRootRoute({
|
|
292
|
+
component: () => (
|
|
293
|
+
<html>
|
|
294
|
+
<head>
|
|
295
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
296
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="" />
|
|
297
|
+
<link
|
|
298
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
|
299
|
+
rel="stylesheet"
|
|
300
|
+
/>
|
|
301
|
+
</head>
|
|
302
|
+
<body className="font-sans">
|
|
303
|
+
<Outlet />
|
|
304
|
+
</body>
|
|
305
|
+
</html>
|
|
306
|
+
),
|
|
307
|
+
})
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## 체크리스트
|
|
311
|
+
|
|
312
|
+
### 반드시 지켜야 할 것
|
|
313
|
+
|
|
314
|
+
- [ ] 폰트 종류 2-3개 이하
|
|
315
|
+
- [ ] 본문 크기 16px 이상
|
|
316
|
+
- [ ] 본문 줄 간격 1.5 이상
|
|
317
|
+
- [ ] 제목과 본문의 명확한 크기 차이
|
|
318
|
+
|
|
319
|
+
### 권장 사항
|
|
320
|
+
|
|
321
|
+
- [ ] 한글 최적화 폰트 사용 (Pretendard, Noto Sans KR)
|
|
322
|
+
- [ ] 텍스트 컨테이너 최대 너비 제한
|
|
323
|
+
- [ ] 일관된 텍스트 스타일 컴포넌트 사용
|
|
324
|
+
- [ ] 다크 모드 텍스트 색상 대응
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Git 워크플로우
|
|
2
|
+
|
|
3
|
+
> TanStack Start + React 프로젝트 Git 컨벤션
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ⛔ NEVER (절대 금지)
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
❌ 커밋에 "Generated with Claude Code" 포함
|
|
11
|
+
❌ 커밋에 "🤖" 또는 AI 관련 이모지 포함
|
|
12
|
+
❌ 커밋에 "Co-Authored-By:" 헤더 포함
|
|
13
|
+
❌ 커밋에 AI/봇이 작성했다는 어떤 표시도 포함
|
|
14
|
+
❌ 커밋 메시지 여러 줄 작성
|
|
15
|
+
❌ 커밋 메시지에 이모지 사용
|
|
16
|
+
❌ 커밋 메시지에 마침표(.) 사용
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## ✅ ALWAYS (필수)
|
|
22
|
+
|
|
23
|
+
### 작업 완료 후 반드시 실행
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
git add .
|
|
27
|
+
git commit -m "<prefix>: <설명>"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 📝 커밋 형식
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
<prefix>: <설명>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**한 줄로 간결하게** 작성합니다. 본문이나 푸터는 작성하지 않습니다.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🏷 Prefix 목록
|
|
43
|
+
|
|
44
|
+
| Prefix | 용도 | 예시 |
|
|
45
|
+
|--------|------|------|
|
|
46
|
+
| `feat` | 새로운 기능 | `feat: 사용자 로그인 기능 추가` |
|
|
47
|
+
| `fix` | 버그 수정 | `fix: 세션 만료 오류 수정` |
|
|
48
|
+
| `refactor` | 리팩토링 | `refactor: 인증 로직 분리` |
|
|
49
|
+
| `style` | 코드 스타일 | `style: eslint 규칙 적용` |
|
|
50
|
+
| `docs` | 문서 수정 | `docs: API 문서 업데이트` |
|
|
51
|
+
| `test` | 테스트 | `test: 로그인 테스트 추가` |
|
|
52
|
+
| `chore` | 빌드/설정 | `chore: vite 설정 업데이트` |
|
|
53
|
+
| `perf` | 성능 개선 | `perf: 이미지 로딩 최적화` |
|
|
54
|
+
| `ci` | CI/CD | `ci: GitHub Actions 추가` |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## ✅ 올바른 예시
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
feat: 회원가입 폼 유효성 검사 추가
|
|
62
|
+
fix: 비밀번호 재설정 이메일 발송 오류 수정
|
|
63
|
+
refactor: UserService 클래스 구조 개선
|
|
64
|
+
docs: README 설치 가이드 추가
|
|
65
|
+
chore: Prisma 7.x 버전 업그레이드
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## ❌ 잘못된 예시
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# prefix 없음
|
|
74
|
+
회원가입 기능 추가함
|
|
75
|
+
|
|
76
|
+
# 마침표 불필요
|
|
77
|
+
feat: 회원가입 기능 추가.
|
|
78
|
+
|
|
79
|
+
# 대문자 사용
|
|
80
|
+
FEAT: 회원가입 기능 추가
|
|
81
|
+
|
|
82
|
+
# scope 불필요
|
|
83
|
+
feat(auth): 회원가입 추가
|
|
84
|
+
|
|
85
|
+
# AI 작성 표시 (절대 금지!)
|
|
86
|
+
feat: 로그인 기능 추가
|
|
87
|
+
|
|
88
|
+
🤖 Generated with Claude Code
|
|
89
|
+
|
|
90
|
+
# Co-Author 표시 (절대 금지!)
|
|
91
|
+
feat: 로그인 기능 추가
|
|
92
|
+
|
|
93
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
94
|
+
|
|
95
|
+
# 여러 줄 본문 (금지)
|
|
96
|
+
feat: 로그인 기능 추가
|
|
97
|
+
|
|
98
|
+
- 이메일 인증 추가
|
|
99
|
+
- 세션 관리 구현
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 🔄 작업 흐름
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# 1. 작업 전 최신 코드 동기화
|
|
108
|
+
git pull origin main
|
|
109
|
+
|
|
110
|
+
# 2. 코드 작업 진행
|
|
111
|
+
# ...
|
|
112
|
+
|
|
113
|
+
# 3. 변경사항 커밋
|
|
114
|
+
git add .
|
|
115
|
+
git commit -m "feat: 새 기능 설명"
|
|
116
|
+
|
|
117
|
+
# 4. 푸시
|
|
118
|
+
git push origin main
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 🌿 브랜치 전략
|
|
124
|
+
|
|
125
|
+
### 간단한 프로젝트
|
|
126
|
+
```
|
|
127
|
+
main ← 모든 작업 직접 커밋
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 팀 프로젝트
|
|
131
|
+
```
|
|
132
|
+
main
|
|
133
|
+
└── feature/기능명
|
|
134
|
+
└── fix/버그명
|
|
135
|
+
└── hotfix/긴급수정
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 브랜치 명명
|
|
139
|
+
```bash
|
|
140
|
+
feature/user-authentication
|
|
141
|
+
feature/payment-integration
|
|
142
|
+
fix/login-session-error
|
|
143
|
+
hotfix/security-patch
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 📋 자주 사용하는 명령어
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# 상태 확인
|
|
152
|
+
git status
|
|
153
|
+
|
|
154
|
+
# 변경 내용 확인
|
|
155
|
+
git diff
|
|
156
|
+
|
|
157
|
+
# 최근 커밋 로그
|
|
158
|
+
git log --oneline -10
|
|
159
|
+
|
|
160
|
+
# 커밋 취소 (작업 내용 유지)
|
|
161
|
+
git reset --soft HEAD~1
|
|
162
|
+
|
|
163
|
+
# 스테이징 취소
|
|
164
|
+
git restore --staged .
|
|
165
|
+
|
|
166
|
+
# 변경사항 임시 저장
|
|
167
|
+
git stash
|
|
168
|
+
git stash pop
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 📚 .gitignore
|
|
174
|
+
|
|
175
|
+
```gitignore
|
|
176
|
+
# Dependencies
|
|
177
|
+
node_modules/
|
|
178
|
+
|
|
179
|
+
# Build
|
|
180
|
+
.output/
|
|
181
|
+
dist/
|
|
182
|
+
build/
|
|
183
|
+
|
|
184
|
+
# Environment
|
|
185
|
+
.env
|
|
186
|
+
.env.local
|
|
187
|
+
.env.*.local
|
|
188
|
+
|
|
189
|
+
# IDE
|
|
190
|
+
.idea/
|
|
191
|
+
.vscode/
|
|
192
|
+
*.swp
|
|
193
|
+
|
|
194
|
+
# OS
|
|
195
|
+
.DS_Store
|
|
196
|
+
|
|
197
|
+
# Prisma
|
|
198
|
+
prisma/generated/
|
|
199
|
+
|
|
200
|
+
# Cache
|
|
201
|
+
.cache/
|
|
202
|
+
.turbo/
|
|
203
|
+
```
|