@kood/claude-code 0.1.6 โ†’ 0.1.9

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 (107) hide show
  1. package/dist/index.js +109 -216
  2. package/package.json +8 -2
  3. package/templates/hono/CLAUDE.md +59 -328
  4. package/templates/hono/docs/architecture/architecture.md +93 -747
  5. package/templates/hono/docs/deployment/cloudflare.md +59 -513
  6. package/templates/hono/docs/deployment/docker.md +41 -356
  7. package/templates/hono/docs/deployment/index.md +54 -190
  8. package/templates/hono/docs/deployment/railway.md +36 -306
  9. package/templates/hono/docs/deployment/vercel.md +49 -434
  10. package/templates/hono/docs/library/ai-sdk/index.md +53 -290
  11. package/templates/hono/docs/library/ai-sdk/openrouter.md +19 -387
  12. package/templates/hono/docs/library/ai-sdk/providers.md +28 -394
  13. package/templates/hono/docs/library/ai-sdk/streaming.md +52 -353
  14. package/templates/hono/docs/library/ai-sdk/structured-output.md +63 -395
  15. package/templates/hono/docs/library/ai-sdk/tools.md +62 -431
  16. package/templates/hono/docs/library/hono/env-setup.md +24 -313
  17. package/templates/hono/docs/library/hono/error-handling.md +34 -295
  18. package/templates/hono/docs/library/hono/index.md +29 -121
  19. package/templates/hono/docs/library/hono/middleware.md +21 -188
  20. package/templates/hono/docs/library/hono/rpc.md +40 -341
  21. package/templates/hono/docs/library/hono/validation.md +35 -195
  22. package/templates/hono/docs/library/pino/index.md +42 -333
  23. package/templates/hono/docs/library/prisma/cloudflare-d1.md +64 -367
  24. package/templates/hono/docs/library/prisma/config.md +19 -260
  25. package/templates/hono/docs/library/prisma/index.md +67 -320
  26. package/templates/hono/docs/library/zod/index.md +53 -257
  27. package/templates/npx/CLAUDE.md +62 -274
  28. package/templates/npx/docs/references/patterns.md +160 -0
  29. package/templates/tanstack-start/CLAUDE.md +100 -256
  30. package/templates/tanstack-start/docs/architecture/architecture.md +44 -589
  31. package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
  32. package/templates/tanstack-start/docs/deployment/index.md +57 -286
  33. package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
  34. package/templates/tanstack-start/docs/deployment/railway.md +40 -409
  35. package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
  36. package/templates/tanstack-start/docs/design/components.md +77 -311
  37. package/templates/tanstack-start/docs/design/index.md +113 -69
  38. package/templates/tanstack-start/docs/design/safe-area.md +51 -250
  39. package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
  40. package/templates/tanstack-start/docs/guides/conventions.md +103 -0
  41. package/templates/tanstack-start/docs/guides/env-setup.md +34 -340
  42. package/templates/tanstack-start/docs/guides/getting-started.md +22 -209
  43. package/templates/tanstack-start/docs/guides/hooks.md +166 -0
  44. package/templates/tanstack-start/docs/guides/routes.md +166 -0
  45. package/templates/tanstack-start/docs/guides/services.md +143 -0
  46. package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
  47. package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
  48. package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
  49. package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
  50. package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
  51. package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
  52. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
  53. package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
  54. package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
  55. package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
  56. package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
  57. package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
  58. package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
  59. package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
  60. package/templates/tanstack-start/docs/library/tanstack-query/index.md +26 -97
  61. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
  62. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
  63. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
  64. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
  65. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
  66. package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
  67. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
  68. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
  69. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
  70. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
  71. package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
  72. package/templates/tanstack-start/docs/library/zod/index.md +31 -144
  73. package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
  74. package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
  75. package/templates/hono/docs/commands/git.md +0 -145
  76. package/templates/hono/docs/mcp/context7.md +0 -106
  77. package/templates/hono/docs/mcp/index.md +0 -176
  78. package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
  79. package/templates/hono/docs/mcp/serena.md +0 -269
  80. package/templates/hono/docs/mcp/sgrep.md +0 -105
  81. package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
  82. package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
  83. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
  84. package/templates/npx/docs/commands/git.md +0 -145
  85. package/templates/npx/docs/mcp/index.md +0 -60
  86. package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
  87. package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
  88. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
  89. package/templates/tanstack-start/docs/commands/git.md +0 -145
  90. package/templates/tanstack-start/docs/design/accessibility.md +0 -433
  91. package/templates/tanstack-start/docs/design/color.md +0 -235
  92. package/templates/tanstack-start/docs/design/spacing.md +0 -341
  93. package/templates/tanstack-start/docs/design/typography.md +0 -324
  94. package/templates/tanstack-start/docs/guides/best-practices.md +0 -950
  95. package/templates/tanstack-start/docs/guides/husky-lint-staged.md +0 -303
  96. package/templates/tanstack-start/docs/guides/prettier.md +0 -189
  97. package/templates/tanstack-start/docs/guides/project-templates.md +0 -710
  98. package/templates/tanstack-start/docs/library/tanstack-query/setup.md +0 -107
  99. package/templates/tanstack-start/docs/library/zod/basic-types.md +0 -186
  100. package/templates/tanstack-start/docs/mcp/context7.md +0 -204
  101. package/templates/tanstack-start/docs/mcp/index.md +0 -177
  102. package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
  103. package/templates/tanstack-start/docs/mcp/serena.md +0 -269
  104. package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
  105. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
  106. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
  107. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
@@ -1,107 +0,0 @@
1
- # TanStack Query - ์„ค์น˜ ๋ฐ ์„ค์ •
2
-
3
- > **์ƒ์œ„ ๋ฌธ์„œ**: [TanStack Query](./index.md)
4
-
5
- ## ์„ค์น˜
6
-
7
- ```bash
8
- yarn add @tanstack/react-query
9
- ```
10
-
11
- ## QueryClient ์„ค์ •
12
-
13
- ```tsx
14
- import {
15
- QueryClient,
16
- QueryClientProvider,
17
- } from '@tanstack/react-query'
18
-
19
- // QueryClient ์ƒ์„ฑ
20
- const queryClient = new QueryClient()
21
-
22
- function App() {
23
- return (
24
- <QueryClientProvider client={queryClient}>
25
- <YourApp />
26
- </QueryClientProvider>
27
- )
28
- }
29
- ```
30
-
31
- ## QueryClient ์˜ต์…˜
32
-
33
- ```tsx
34
- const queryClient = new QueryClient({
35
- defaultOptions: {
36
- queries: {
37
- staleTime: 1000 * 60 * 5, // 5๋ถ„
38
- gcTime: 1000 * 60 * 30, // 30๋ถ„ (์ด์ „์˜ cacheTime)
39
- retry: 3,
40
- retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
41
- refetchOnWindowFocus: true,
42
- refetchOnReconnect: true,
43
- },
44
- mutations: {
45
- retry: 1,
46
- },
47
- },
48
- })
49
- ```
50
-
51
- ## TanStack Start์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ
52
-
53
- ```tsx
54
- import { useQuery } from '@tanstack/react-query'
55
- import { getServerPosts } from '@/lib/server-functions'
56
-
57
- function PostList() {
58
- const { data, isLoading, error } = useQuery({
59
- queryKey: ['posts'],
60
- queryFn: () => getServerPosts(),
61
- })
62
-
63
- if (isLoading) return <div>Loading...</div>
64
- if (error) return <div>Error: {error.message}</div>
65
-
66
- return (
67
- <ul>
68
- {data?.map((post) => (
69
- <li key={post.id}>{post.title}</li>
70
- ))}
71
- </ul>
72
- )
73
- }
74
- ```
75
-
76
- ## Query Keys ํŒจํ„ด
77
-
78
- ```typescript
79
- // ๊ฐ„๋‹จํ•œ ํ‚ค
80
- ['todos']
81
-
82
- // ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š” ํ‚ค
83
- ['todo', { id: 5 }]
84
-
85
- // ๊ณ„์ธต์  ํ‚ค
86
- ['todos', 'list', { filters: 'all' }]
87
- ['todos', 'detail', todoId]
88
- ```
89
-
90
- ## DevTools (๊ฐœ๋ฐœ์šฉ)
91
-
92
- ```bash
93
- yarn add @tanstack/react-query-devtools
94
- ```
95
-
96
- ```tsx
97
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
98
-
99
- function App() {
100
- return (
101
- <QueryClientProvider client={queryClient}>
102
- <YourApp />
103
- <ReactQueryDevtools initialIsOpen={false} />
104
- </QueryClientProvider>
105
- )
106
- }
107
- ```
@@ -1,186 +0,0 @@
1
- # Zod - ๊ธฐ๋ณธ ํƒ€์ž…
2
-
3
- > **์ƒ์œ„ ๋ฌธ์„œ**: [Zod](./index.md)
4
-
5
- ## ๋ฌธ์ž์—ด
6
-
7
- ```typescript
8
- z.string()
9
- z.string().min(1) // ์ตœ์†Œ ๊ธธ์ด
10
- z.string().max(100) // ์ตœ๋Œ€ ๊ธธ์ด
11
- z.string().length(5) // ์ •ํ™•ํ•œ ๊ธธ์ด
12
- z.string().regex(/^\d+$/) // ์ •๊ทœ์‹
13
- z.string().trim() // ๊ณต๋ฐฑ ์ œ๊ฑฐ
14
- z.string().toLowerCase() // ์†Œ๋ฌธ์ž ๋ณ€ํ™˜
15
- z.string().toUpperCase() // ๋Œ€๋ฌธ์ž ๋ณ€ํ™˜
16
- ```
17
-
18
- ### v4 ์ƒˆ๋กœ์šด ์ตœ์ƒ์œ„ ๋ฌธ์ž์—ด ํฌ๋งท API
19
-
20
- ```typescript
21
- // ๋” ๋‚˜์€ tree-shaking์„ ์œ„ํ•ด ์ตœ์ƒ์œ„ API ์‚ฌ์šฉ ๊ถŒ์žฅ
22
- z.email() // ์ด๋ฉ”์ผ ํ˜•์‹
23
- z.url() // URL ํ˜•์‹
24
- z.uuid() // UUID ํ˜•์‹
25
- z.base64() // Base64 ํ˜•์‹
26
- z.base64url() // Base64 URL ํ˜•์‹
27
- z.nanoid() // NanoID ํ˜•์‹
28
- z.cuid() // CUID ํ˜•์‹
29
- z.cuid2() // CUID2 ํ˜•์‹
30
- z.ulid() // ULID ํ˜•์‹
31
- z.emoji() // ์ด๋ชจ์ง€ (๋‹จ์ผ ๋ฌธ์ž)
32
- z.ipv4() // IPv4 ์ฃผ์†Œ
33
- z.ipv6() // IPv6 ์ฃผ์†Œ
34
- z.cidrv4() // IPv4 ๋ฒ”์œ„
35
- z.cidrv6() // IPv6 ๋ฒ”์œ„
36
-
37
- // ISO ๋‚ ์งœ/์‹œ๊ฐ„ ํ˜•์‹
38
- z.iso.date() // ISO ๋‚ ์งœ (2024-01-15)
39
- z.iso.time() // ISO ์‹œ๊ฐ„ (14:30:00)
40
- z.iso.datetime() // ISO ๋‚ ์งœ์‹œ๊ฐ„
41
- z.iso.duration() // ISO ๊ธฐ๊ฐ„ (P1D, PT1H)
42
- ```
43
-
44
- ### ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž… (v4 ์‹ ๊ทœ)
45
-
46
- ```typescript
47
- const hello = z.templateLiteral(["hello, ", z.string()])
48
- // `hello, ${string}`
49
-
50
- const cssUnits = z.enum(["px", "em", "rem", "%"])
51
- const css = z.templateLiteral([z.number(), cssUnits])
52
- // `${number}px` | `${number}em` | `${number}rem` | `${number}%`
53
-
54
- const email = z.templateLiteral([
55
- z.string().min(1),
56
- "@",
57
- z.string().max(64),
58
- ])
59
- // `${string}@${string}` (min/max refinements๋„ ์ ์šฉ๋จ!)
60
- ```
61
-
62
- ## ์ˆซ์ž
63
-
64
- ```typescript
65
- z.number()
66
- z.number().min(0) // ์ตœ์†Ÿ๊ฐ’
67
- z.number().max(100) // ์ตœ๋Œ“๊ฐ’
68
- z.number().int() // ์ •์ˆ˜๋งŒ
69
- z.number().positive() // ์–‘์ˆ˜๋งŒ
70
- z.number().negative() // ์Œ์ˆ˜๋งŒ
71
- z.number().nonnegative() // 0 ์ด์ƒ
72
- z.number().nonpositive() // 0 ์ดํ•˜
73
- z.number().finite() // ์œ ํ•œ ์ˆซ์ž
74
- z.number().safe() // ์•ˆ์ „ํ•œ ์ •์ˆ˜ ๋ฒ”์œ„
75
- ```
76
-
77
- ## ๋ถˆ๋ฆฌ์–ธ
78
-
79
- ```typescript
80
- z.boolean()
81
- ```
82
-
83
- ### ๋ฌธ์ž์—ด ๋ถˆ๋ฆฌ์–ธ (v4 ์‹ ๊ทœ)
84
-
85
- ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์Šคํƒ€์ผ ๋ถˆ๋ฆฌ์–ธ ๋ณ€ํ™˜:
86
-
87
- ```typescript
88
- const strbool = z.stringbool()
89
-
90
- strbool.parse("true") // => true
91
- strbool.parse("1") // => true
92
- strbool.parse("yes") // => true
93
- strbool.parse("on") // => true
94
- strbool.parse("enabled") // => true
95
-
96
- strbool.parse("false") // => false
97
- strbool.parse("0") // => false
98
- strbool.parse("no") // => false
99
- strbool.parse("off") // => false
100
- strbool.parse("disabled") // => false
101
-
102
- // ์ปค์Šคํ…€ truthy/falsy ๊ฐ’
103
- z.stringbool({
104
- truthy: ["yes", "true"],
105
- falsy: ["no", "false"]
106
- })
107
- ```
108
-
109
- ## ๋‚ ์งœ
110
-
111
- ```typescript
112
- z.date()
113
- z.date().min(new Date('2020-01-01'))
114
- z.date().max(new Date('2030-12-31'))
115
- ```
116
-
117
- ## BigInt
118
-
119
- ```typescript
120
- z.bigint()
121
- z.bigint().positive()
122
- z.bigint().negative()
123
- ```
124
-
125
- ## ๋ฆฌํ„ฐ๋Ÿด
126
-
127
- ```typescript
128
- z.literal('hello') // ์ •ํ™•ํžˆ 'hello'๋งŒ
129
- z.literal(42) // ์ •ํ™•ํžˆ 42๋งŒ
130
- z.literal(true) // ์ •ํ™•ํžˆ true๋งŒ
131
- ```
132
-
133
- ## Null, Undefined, Void
134
-
135
- ```typescript
136
- z.null() // null๋งŒ ํ—ˆ์šฉ
137
- z.undefined() // undefined๋งŒ ํ—ˆ์šฉ
138
- z.void() // undefined ํ—ˆ์šฉ (๋ฐ˜ํ™˜ ํƒ€์ž…์šฉ)
139
- ```
140
-
141
- ## Any, Unknown, Never
142
-
143
- ```typescript
144
- z.any() // ๋ชจ๋“  ํƒ€์ž… ํ—ˆ์šฉ
145
- z.unknown() // unknown ํƒ€์ž…
146
- z.never() // ๊ฐ’ ์—†์Œ (์œ ๋‹ˆ์˜จ์—์„œ ์‚ฌ์šฉ)
147
- ```
148
-
149
- > **v4 ๋ณ€๊ฒฝ**: `z.any()`์™€ `z.unknown()`์€ ๋” ์ด์ƒ ๊ฐ์ฒด์—์„œ ์„ ํƒ์  ํ‚ค๋กœ ์ถ”๋ก ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
150
- > ```typescript
151
- > const mySchema = z.object({ a: z.any(), b: z.unknown() })
152
- > // v3: { a?: any; b?: unknown }
153
- > // v4: { a: any; b: unknown }
154
- > ```
155
-
156
- ## Optional & Nullable
157
-
158
- ```typescript
159
- z.string().optional() // string | undefined
160
- z.string().nullable() // string | null
161
- z.string().nullish() // string | null | undefined
162
- ```
163
-
164
- ## Default ๊ฐ’
165
-
166
- ```typescript
167
- const Schema = z.object({
168
- name: z.string().default('Anonymous'),
169
- role: z.enum(['admin', 'user']).default('user'),
170
- })
171
-
172
- Schema.parse({}) // { name: 'Anonymous', role: 'user' }
173
- ```
174
-
175
- ## ํƒ€์ž… ์ถ”๋ก 
176
-
177
- ```typescript
178
- const stringSchema = z.string()
179
- type StringType = z.infer<typeof stringSchema> // string
180
-
181
- const numberSchema = z.number().optional()
182
- type NumberType = z.infer<typeof numberSchema> // number | undefined
183
-
184
- const dateSchema = z.date().nullable()
185
- type DateType = z.infer<typeof dateSchema> // Date | null
186
- ```
@@ -1,204 +0,0 @@
1
- # Context7 MCP
2
-
3
- > ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒํ•˜๋Š” ๋„๊ตฌ
4
-
5
- ---
6
-
7
- ## ๐Ÿš€ Quick Reference
8
-
9
- ```
10
- โœ… ์‚ฌ์šฉ ํ•„์ˆ˜ ์ƒํ™ฉ:
11
- - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API ์‚ฌ์šฉ๋ฒ• ํ™•์ธ
12
- - ์ตœ์‹  ๋ฒ„์ „ ๋ฌธ๋ฒ• ํ™•์ธ
13
- - ๊ณต์‹ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„
14
- - ๋ฒ„์ „ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
15
-
16
- โŒ ๋ถˆํ•„์š”ํ•œ ์ƒํ™ฉ:
17
- - ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
18
- - ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€ ์ฝ”๋“œ ๋ถ„์„
19
- - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„
20
- ```
21
-
22
- ---
23
-
24
- ## ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
25
-
26
- ### Step 1: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID ์กฐํšŒ
27
-
28
- ```
29
- resolve-library-id ์‚ฌ์šฉ
30
- โ†’ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„์œผ๋กœ Context7 ID ํš๋“
31
- ```
32
-
33
- ### Step 2: ๋ฌธ์„œ ์กฐํšŒ
34
-
35
- ```
36
- get-library-docs ์‚ฌ์šฉ
37
- โ†’ ํŠน์ • ํ† ํ”ฝ์˜ ๋ฌธ์„œ ๊ฐ€์ ธ์˜ค๊ธฐ
38
-
39
- ํŒŒ๋ผ๋ฏธํ„ฐ:
40
- - context7CompatibleLibraryID: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID
41
- - topic: ์กฐํšŒํ•  ์ฃผ์ œ (์˜ˆ: "hooks", "routing")
42
- ```
43
-
44
- ---
45
-
46
- ## ํ”„๋กœ์ ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณ„ ์‚ฌ์šฉ ์˜ˆ์‹œ
47
-
48
- ### TanStack Start
49
-
50
- ```
51
- ํ† ํ”ฝ ์˜ˆ์‹œ:
52
- - "server functions" - createServerFn ์‚ฌ์šฉ๋ฒ•
53
- - "routing" - ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
54
- - "loader" - ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ
55
- - "middleware" - ๋ฏธ๋“ค์›จ์–ด ์„ค์ •
56
- ```
57
-
58
- ### TanStack Query
59
-
60
- ```
61
- ํ† ํ”ฝ ์˜ˆ์‹œ:
62
- - "useQuery" - ์ฟผ๋ฆฌ ํ›…
63
- - "useMutation" - ๋ฎคํ…Œ์ด์…˜ ํ›…
64
- - "invalidation" - ์บ์‹œ ๋ฌดํšจํ™”
65
- - "optimistic updates" - ๋‚™๊ด€์  ์—…๋ฐ์ดํŠธ
66
- ```
67
-
68
- ### Prisma
69
-
70
- ```
71
- ํ† ํ”ฝ ์˜ˆ์‹œ:
72
- - "findMany" - ๋‹ค์ค‘ ์กฐํšŒ
73
- - "create" - ์ƒ์„ฑ
74
- - "relations" - ๊ด€๊ณ„ ์ฟผ๋ฆฌ
75
- - "transactions" - ํŠธ๋žœ์žญ์…˜
76
- ```
77
-
78
- ### Zod
79
-
80
- ```
81
- ํ† ํ”ฝ ์˜ˆ์‹œ:
82
- - "object" - ๊ฐ์ฒด ์Šคํ‚ค๋งˆ
83
- - "email" - ์ด๋ฉ”์ผ ๊ฒ€์ฆ (v4)
84
- - "transform" - ๋ณ€ํ™˜
85
- - "refinement" - ์ปค์Šคํ…€ ๊ฒ€์ฆ
86
- ```
87
-
88
- ### Tailwind CSS
89
-
90
- ```
91
- ํ† ํ”ฝ ์˜ˆ์‹œ:
92
- - "configuration" - ์„ค์ •
93
- - "theme" - ํ…Œ๋งˆ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
94
- - "responsive" - ๋ฐ˜์‘ํ˜•
95
- - "dark mode" - ๋‹คํฌ ๋ชจ๋“œ
96
- ```
97
-
98
- ### Better Auth
99
-
100
- ```
101
- ํ† ํ”ฝ ์˜ˆ์‹œ:
102
- - "setup" - ์ดˆ๊ธฐ ์„ค์ •
103
- - "session" - ์„ธ์…˜ ๊ด€๋ฆฌ
104
- - "providers" - OAuth ์„ค์ •
105
- - "2fa" - ์ด์ค‘ ์ธ์ฆ
106
- ```
107
-
108
- ---
109
-
110
- ## ์‚ฌ์šฉ ์‹œ์ 
111
-
112
- ### โœ… ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ
113
-
114
- | ์ƒํ™ฉ | ์ด์œ  |
115
- |------|------|
116
- | ์ƒˆ API ์‚ฌ์šฉ | ์ •ํ™•ํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ํ™•์ธ |
117
- | ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ | ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ |
118
- | ์—๋Ÿฌ ํ•ด๊ฒฐ | ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ• ํ™•์ธ |
119
- | ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ | ์˜ต์…˜/์„ค์ • ํ™•์ธ |
120
-
121
- ### โŒ ์‚ฌ์šฉ ๋ถˆํ•„์š”
122
-
123
- | ์ƒํ™ฉ | ์ด์œ  |
124
- |------|------|
125
- | ๊ธฐ๋ณธ ๋ฌธ๋ฒ• | ์ด๋ฏธ ๋ฌธ์„œํ™”๋จ |
126
- | ๋‚ด๋ถ€ ์ฝ”๋“œ | Context7 ๋ฒ”์œ„ ์™ธ |
127
- | ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง | ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌด๊ด€ |
128
-
129
- ---
130
-
131
- ## ์‹ค์ „ ์˜ˆ์‹œ
132
-
133
- ### ์˜ˆ์‹œ 1: TanStack Query ์บ์‹œ ๋ฌดํšจํ™”
134
-
135
- ```
136
- ์ƒํ™ฉ: mutation ํ›„ ๋ชฉ๋ก ๊ฐฑ์‹ ์ด ์•ˆ๋จ
137
-
138
- 1. Context7๋กœ "invalidation" ํ† ํ”ฝ ์กฐํšŒ
139
- 2. queryClient.invalidateQueries ์‚ฌ์šฉ๋ฒ• ํ™•์ธ
140
- 3. ์˜ฌ๋ฐ”๋ฅธ queryKey ํŒจํ„ด ์ ์šฉ
141
-
142
- ๊ฒฐ๊ณผ:
143
- queryClient.invalidateQueries({ queryKey: ['users'] })
144
- ```
145
-
146
- ### ์˜ˆ์‹œ 2: Prisma ๊ด€๊ณ„ ์ฟผ๋ฆฌ
147
-
148
- ```
149
- ์ƒํ™ฉ: User์™€ Post๋ฅผ ํ•จ๊ป˜ ์กฐํšŒํ•˜๊ณ  ์‹ถ์Œ
150
-
151
- 1. Context7๋กœ "relations" ํ† ํ”ฝ ์กฐํšŒ
152
- 2. include ์˜ต์…˜ ์‚ฌ์šฉ๋ฒ• ํ™•์ธ
153
-
154
- ๊ฒฐ๊ณผ:
155
- prisma.user.findUnique({
156
- where: { id },
157
- include: { posts: true }
158
- })
159
- ```
160
-
161
- ### ์˜ˆ์‹œ 3: Zod v4 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
162
-
163
- ```
164
- ์ƒํ™ฉ: Zod v3 โ†’ v4 ์—…๊ทธ๋ ˆ์ด๋“œ
165
-
166
- 1. Context7๋กœ "migration" ๋˜๋Š” "email" ํ† ํ”ฝ ์กฐํšŒ
167
- 2. v4 ์ƒˆ API ํ™•์ธ
168
-
169
- ๊ฒฐ๊ณผ:
170
- // v3: z.string().email()
171
- // v4: z.email()
172
- ```
173
-
174
- ---
175
-
176
- ## Sequential Thinking๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ
177
-
178
- ```
179
- ๋ณต์žกํ•œ ๊ตฌํ˜„ ์‹œ:
180
-
181
- 1. Sequential Thinking์œผ๋กœ ๊ตฌํ˜„ ๊ณ„ํš
182
- โ†“
183
- 2. ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋Šฅ ํŒŒ์•…
184
- โ†“
185
- 3. Context7๋กœ ๊ฐ ๊ธฐ๋Šฅ ๋ฌธ์„œ ์กฐํšŒ
186
- โ†“
187
- 4. ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„
188
- ```
189
-
190
- ---
191
-
192
- ## ์ฃผ์˜์‚ฌํ•ญ
193
-
194
- - **์ตœ์‹  ๋ฌธ์„œ**: Context7์€ ์ตœ์‹  ๊ณต์‹ ๋ฌธ์„œ ์ œ๊ณต
195
- - **๋ฒ„์ „ ํ™•์ธ**: ํ”„๋กœ์ ํŠธ ๋ฒ„์ „๊ณผ ๋ฌธ์„œ ๋ฒ„์ „ ์ผ์น˜ ํ™•์ธ
196
- - **ํ† ํ”ฝ ์„ ํƒ**: ๊ตฌ์ฒด์ ์ธ ํ† ํ”ฝ์œผ๋กœ ์กฐํšŒ ์‹œ ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ
197
-
198
- ---
199
-
200
- ## ์ฐธ๊ณ 
201
-
202
- - ๋ฌธ์„œ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ํ† ํ”ฝ์œผ๋กœ ์žฌ์กฐํšŒ
203
- - ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œ๋ฅผ ์—ฐ์†์œผ๋กœ ์กฐํšŒ ๊ฐ€๋Šฅ
204
- - Sequential Thinking๊ณผ ์กฐํ•ฉํ•˜์—ฌ ์ฒด๊ณ„์  ๊ตฌํ˜„
@@ -1,177 +0,0 @@
1
- # MCP (Model Context Protocol)
2
-
3
- > Claude Code ์ž‘์—… ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” MCP ์„œ๋ฒ„ ํ™œ์šฉ ๊ฐ€์ด๋“œ
4
-
5
- ---
6
-
7
- ## โ›” ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ ํ•„์ˆ˜ ํ™•์ธ
8
-
9
- **์ž‘์—… ์‹œ์ž‘ ์ „ ๋ฐ˜๋“œ์‹œ ์•„๋ž˜ 3๊ฐ€์ง€ MCP๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”:**
10
-
11
- ```
12
- 1. Serena - ํ”„๋กœ์ ํŠธ ํ™œ์„ฑํ™” ํ™•์ธ
13
- โ†’ mcp__serena__get_current_config ํ˜ธ์ถœ
14
- โ†’ ํ”„๋กœ์ ํŠธ ๋ฏธํ™œ์„ฑํ™” ์‹œ: mcp__serena__activate_project
15
-
16
- 2. Sequential Thinking - ๋ณต์žกํ•œ ๋ฌธ์ œ ๋ถ„์„์šฉ
17
- โ†’ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ
18
-
19
- 3. sgrep - ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰์šฉ
20
- โ†’ grep/rg ๋Œ€์‹  ๋ฐ˜๋“œ์‹œ sgrep ์‚ฌ์šฉ
21
- ```
22
-
23
- ---
24
-
25
- ## ๐Ÿšจ ํ•„์ˆ˜ ์‚ฌ์šฉ ๊ทœ์น™
26
-
27
- ```
28
- โœ… ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ โ†’ Serena ํ™œ์„ฑํ™” ํ™•์ธ (ํ•„์ˆ˜!)
29
- โœ… ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ โ†’ sgrep ์‚ฌ์šฉ (grep/rg ๊ธˆ์ง€)
30
- โœ… ๋ณต์žกํ•œ ๋ถ„์„/๋””๋ฒ„๊น… โ†’ Sequential Thinking ์‚ฌ์šฉ
31
- โœ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œ ์กฐํšŒ โ†’ Context7 ์‚ฌ์šฉ
32
- โœ… ์„ธ์…˜ ์ปจํ…์ŠคํŠธ ์œ ์ง€ โ†’ Serena ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ
33
- โœ… ๋„๊ตฌ ์กฐํ•ฉ: sgrep๋กœ ์œ„์น˜ ํŒŒ์•… โ†’ Sequential๋กœ ๋ถ„์„ โ†’ Context7๋กœ ๋ฌธ์„œ ํ™•์ธ
34
- ```
35
-
36
- ---
37
-
38
- ## ๐Ÿš€ Quick Reference
39
-
40
- ### Serena - ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ (ํ•„์ˆ˜)
41
-
42
- ```
43
- ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์‹œ (ํ•„์ˆ˜):
44
- 1. get_current_config โ†’ ํ˜„์žฌ ์ƒํƒœ ํ™•์ธ
45
- 2. activate_project โ†’ ํ”„๋กœ์ ํŠธ ํ™œ์„ฑํ™”
46
- 3. check_onboarding_performed โ†’ ์˜จ๋ณด๋”ฉ ํ™•์ธ
47
-
48
- ์‚ฌ์šฉ ์‹œ์ :
49
- - ํ”„๋กœ์ ํŠธ ์‹œ์ž‘/์žฌ๊ฐœ ์‹œ (ํ•„์ˆ˜)
50
- - ์‹ฌ๋ณผ ํƒ์ƒ‰/์ˆ˜์ •
51
- - ์„ธ์…˜ ๊ฐ„ ์ปจํ…์ŠคํŠธ ์œ ์ง€ (๋ฉ”๋ชจ๋ฆฌ)
52
- ```
53
-
54
- ### Sequential Thinking - ๋ณต์žกํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ
55
-
56
- ```
57
- ์‚ฌ์šฉ ์‹œ์ :
58
- - ๋ฒ„๊ทธ ๋ถ„์„ ๋ฐ ๋””๋ฒ„๊น…
59
- - ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
60
- - ๋ณต์žกํ•œ ๋กœ์ง ๊ตฌํ˜„
61
- - ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง ๊ณ„ํš
62
- - ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ถ„์„
63
-
64
- ์‚ฌ์šฉ๋ฒ•: ๋ฌธ์ œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ํ•ด๊ฒฐ
65
- ```
66
-
67
- ### sgrep - ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ (ํ•„์ˆ˜)
68
-
69
- ```
70
- ์‚ฌ์šฉ ์‹œ์ :
71
- - ์ฝ”๋“œ ์œ„์น˜ ํŒŒ์•…
72
- - ์ž์—ฐ์–ด ๊ฒ€์ƒ‰
73
- - ์‹ฌ๋ณผ ์ฐธ์กฐ ์ฐพ๊ธฐ
74
-
75
- ์ฃผ์˜: grep/rg ๋Œ€์‹  ๋ฐ˜๋“œ์‹œ sgrep ์‚ฌ์šฉ!
76
- ```
77
-
78
- ### Context7 - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œ ์กฐํšŒ
79
-
80
- ```
81
- ์‚ฌ์šฉ ์‹œ์ :
82
- - API ์‚ฌ์šฉ๋ฒ• ํ™•์ธ
83
- - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ตœ์‹  ๋ฌธ๋ฒ• ํ™•์ธ
84
- - ๊ณต์‹ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„
85
- - ๋ฒ„์ „๋ณ„ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ
86
-
87
- ์‚ฌ์šฉ๋ฒ•:
88
- 1. resolve-library-id๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID ์กฐํšŒ
89
- 2. get-library-docs๋กœ ๋ฌธ์„œ ๊ฐ€์ ธ์˜ค๊ธฐ
90
- ```
91
-
92
- ---
93
-
94
- ## ๐Ÿ“ ๋ฌธ์„œ ๊ตฌ์กฐ
95
-
96
- ```
97
- docs/mcp/
98
- โ”œโ”€โ”€ index.md # ์ด ๋ฌธ์„œ (๊ฐœ์š”)
99
- โ”œโ”€โ”€ serena.md # Serena ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ (ํ•„์ˆ˜)
100
- โ”œโ”€โ”€ sgrep.md # ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ (ํ•„์ˆ˜)
101
- โ”œโ”€โ”€ sequential-thinking.md # Sequential Thinking ์ƒ์„ธ (ํ•„์ˆ˜)
102
- โ””โ”€โ”€ context7.md # Context7 ์ƒ์„ธ
103
- ```
104
-
105
- ---
106
-
107
- ## ๐Ÿ“‹ ๋„๊ตฌ ๋ชฉ๋ก
108
-
109
- | ๋„๊ตฌ | ์šฉ๋„ | ํ•„์ˆ˜ ์—ฌ๋ถ€ |
110
- |-----|------|----------|
111
- | [Serena](./serena.md) | ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ | โญ ํ•„์ˆ˜ |
112
- | [sgrep](./sgrep.md) | ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ | โญ ํ•„์ˆ˜ |
113
- | [Sequential Thinking](./sequential-thinking.md) | ์ฒด๊ณ„์  ๋ฌธ์ œ ํ•ด๊ฒฐ | โญ ํ•„์ˆ˜ |
114
- | [Context7](./context7.md) | ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œ | ๊ถŒ์žฅ |
115
-
116
- ---
117
-
118
- ## โšก ์ž‘์—…๋ณ„ MCP ์„ ํƒ ๊ฐ€์ด๋“œ
119
-
120
- ### ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ (ํ•„์ˆ˜)
121
- ```
122
- 1. Serena: get_current_config๋กœ ์ƒํƒœ ํ™•์ธ
123
- 2. Serena: activate_project๋กœ ํ”„๋กœ์ ํŠธ ํ™œ์„ฑํ™”
124
- 3. Serena: list_memories๋กœ ์ด์ „ ์ปจํ…์ŠคํŠธ ํ™•์ธ
125
- ```
126
-
127
- ### ๋ฒ„๊ทธ ์ˆ˜์ •
128
- ```
129
- 1. sgrep๋กœ ๊ด€๋ จ ์ฝ”๋“œ ์œ„์น˜ ํŒŒ์•…
130
- 2. Sequential Thinking์œผ๋กœ ๋ฌธ์ œ ๋ถ„์„
131
- 3. ์›์ธ ํŒŒ์•… ํ›„ Context7๋กœ ๊ด€๋ จ API ํ™•์ธ
132
- 4. ์ˆ˜์ • ๊ตฌํ˜„
133
- ```
134
-
135
- ### ์ƒˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„
136
- ```
137
- 1. sgrep๋กœ ๊ธฐ์กด ํŒจํ„ด ๊ฒ€์ƒ‰
138
- 2. Sequential Thinking์œผ๋กœ ๊ตฌํ˜„ ๊ณ„ํš ์ˆ˜๋ฆฝ
139
- 3. Context7๋กœ ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œ ํ™•์ธ
140
- 4. ๋‹จ๊ณ„๋ณ„ ๊ตฌํ˜„
141
- 5. Serena: write_memory๋กœ ์ฃผ์š” ๊ฒฐ์ • ์ €์žฅ
142
- ```
143
-
144
- ### ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
145
- ```
146
- 1. Context7๋กœ ๊ณต์‹ ๋ฌธ์„œ ์กฐํšŒ
147
- 2. ํ•„์š”์‹œ Sequential Thinking์œผ๋กœ ๋ณต์žกํ•œ ํ†ตํ•ฉ ๋ถ„์„
148
- ```
149
-
150
- ### ์„ฑ๋Šฅ ์ตœ์ ํ™”
151
- ```
152
- 1. sgrep๋กœ ๋ณ‘๋ชฉ ์˜์‹ฌ ์ฝ”๋“œ ๊ฒ€์ƒ‰
153
- 2. Sequential Thinking์œผ๋กœ ๋ณ‘๋ชฉ ๋ถ„์„
154
- 3. Context7๋กœ ์ตœ์ ํ™” ๊ด€๋ จ API ํ™•์ธ
155
- 4. ๊ฐœ์„  ๊ตฌํ˜„
156
- ```
157
-
158
- ### ์ฝ”๋“œ๋ฒ ์ด์Šค ํƒ์ƒ‰
159
- ```
160
- 1. sgrep๋กœ ์ž์—ฐ์–ด ์ฟผ๋ฆฌ ๊ฒ€์ƒ‰
161
- 2. ๊ด€๋ จ ์ฝ”๋“œ ์œ„์น˜ ํŒŒ์•…
162
- 3. ํ•„์š”์‹œ Sequential Thinking์œผ๋กœ ํ๋ฆ„ ๋ถ„์„
163
- ```
164
-
165
- ### ์„ธ์…˜ ์ข…๋ฃŒ
166
- ```
167
- 1. Serena: write_memory๋กœ ์ง„ํ–‰ ์ƒํ™ฉ ์ €์žฅ
168
- 2. ๋‹ค์Œ ์„ธ์…˜์—์„œ read_memory๋กœ ๋ณต๊ตฌ
169
- ```
170
-
171
- ---
172
-
173
- ## ๐Ÿ”— ๊ด€๋ จ ๋ฌธ์„œ
174
-
175
- - [TanStack Start](../library/tanstack-start/index.md) - Server Functions
176
- - [Prisma](../library/prisma/index.md) - ORM
177
- - [Zod](../library/zod/index.md) - Validation