@kood/claude-code 0.1.1 → 0.1.3

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 (61) hide show
  1. package/dist/index.js +81 -38
  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/deployment/cloudflare.md +537 -190
  6. package/templates/hono/docs/deployment/docker.md +517 -0
  7. package/templates/hono/docs/deployment/index.md +181 -213
  8. package/templates/hono/docs/deployment/railway.md +416 -0
  9. package/templates/hono/docs/deployment/vercel.md +572 -0
  10. package/templates/hono/docs/git/git.md +285 -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 -0
  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/git/git.md +307 -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/deployment/cloudflare.md +234 -51
  38. package/templates/tanstack-start/docs/deployment/index.md +322 -32
  39. package/templates/tanstack-start/docs/deployment/nitro.md +201 -20
  40. package/templates/tanstack-start/docs/deployment/railway.md +305 -153
  41. package/templates/tanstack-start/docs/deployment/vercel.md +353 -78
  42. package/templates/tanstack-start/docs/git/{index.md → git.md} +81 -7
  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 -1
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  58. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  59. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  61. package/templates/hono/docs/git/index.md +0 -180
@@ -1,52 +1,102 @@
1
1
  # Railway 배포
2
2
 
3
3
  > **상위 문서**: [배포](./index.md)
4
+ > **Version**: Nitro 3.x
4
5
 
5
6
  Railway는 Node.js 서버를 간편하게 배포할 수 있는 플랫폼입니다.
6
7
 
7
- ## 빠른 시작
8
+ ---
8
9
 
9
- ### 1. Nitro 설정
10
+ ## 🚀 Quick Reference (복사용)
10
11
 
11
12
  ```typescript
12
13
  // nitro.config.ts
13
14
  import { defineNitroConfig } from 'nitro/config'
14
15
 
15
16
  export default defineNitroConfig({
16
- preset: 'node-server',
17
+ preset: 'node',
18
+ compatibilityDate: '2024-09-19',
17
19
  })
18
20
  ```
19
21
 
20
- ### 2. Vite 설정
22
+ ```json
23
+ // package.json scripts
24
+ {
25
+ "scripts": {
26
+ "build": "vite build && tsc --noEmit",
27
+ "start": "node .output/server/index.mjs"
28
+ }
29
+ }
30
+ ```
31
+
32
+ ```bash
33
+ # Railway CLI 배포
34
+ railway login
35
+ railway init
36
+ railway up
37
+ ```
38
+
39
+ ---
40
+
41
+ ## Nitro 설정
42
+
43
+ ### nitro.config.ts
44
+
45
+ ```typescript
46
+ // nitro.config.ts
47
+ import { defineNitroConfig } from 'nitro/config'
48
+
49
+ export default defineNitroConfig({
50
+ // Node.js 서버 preset
51
+ preset: 'node',
52
+
53
+ // 호환성 날짜 (Nitro v3 필수)
54
+ compatibilityDate: '2024-09-19',
55
+ })
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Vite 설정
21
61
 
22
62
  ```typescript
23
63
  // vite.config.ts
24
64
  import { defineConfig } from 'vite'
25
- import react from '@vitejs/plugin-react'
26
65
  import { tanstackStart } from '@tanstack/react-start/plugin/vite'
27
66
  import { nitro } from 'nitro/vite'
67
+ import viteReact from '@vitejs/plugin-react'
28
68
 
29
69
  export default defineConfig({
30
70
  plugins: [
31
71
  tanstackStart(),
32
72
  nitro(),
33
- react(),
73
+ viteReact(),
34
74
  ],
35
75
  })
36
76
  ```
37
77
 
38
- ### 3. 빌드 스크립트
78
+ ---
79
+
80
+ ## package.json 설정
39
81
 
40
82
  ```json
41
- // package.json
42
83
  {
84
+ "name": "tanstack-start-app",
85
+ "type": "module",
43
86
  "scripts": {
44
- "build": "vite build",
45
- "start": "node .output/server/index.mjs"
87
+ "dev": "vite dev",
88
+ "build": "vite build && tsc --noEmit",
89
+ "start": "node .output/server/index.mjs",
90
+ "preview": "vite preview"
91
+ },
92
+ "engines": {
93
+ "node": ">=20.0.0"
46
94
  }
47
95
  }
48
96
  ```
49
97
 
98
+ ---
99
+
50
100
  ## Railway 설정
51
101
 
52
102
  ### railway.json
@@ -56,46 +106,70 @@ export default defineConfig({
56
106
  "$schema": "https://railway.app/railway.schema.json",
57
107
  "build": {
58
108
  "builder": "NIXPACKS",
59
- "buildCommand": "yarn install && yarn build"
109
+ "buildCommand": "pnpm install && pnpm build"
60
110
  },
61
111
  "deploy": {
62
112
  "startCommand": "node .output/server/index.mjs",
63
- "healthcheckPath": "/",
64
- "healthcheckTimeout": 100,
113
+ "healthcheckPath": "/health",
114
+ "healthcheckTimeout": 300,
65
115
  "restartPolicyType": "ON_FAILURE",
66
- "restartPolicyMaxRetries": 10
116
+ "restartPolicyMaxRetries": 3
67
117
  }
68
118
  }
69
119
  ```
70
120
 
71
- ### nixpacks.toml (선택사항)
121
+ ### railway.toml (선택)
122
+
123
+ ```toml
124
+ # railway.toml
125
+ [build]
126
+ builder = "nixpacks"
127
+ buildCommand = "pnpm install && pnpm build"
128
+
129
+ [deploy]
130
+ startCommand = "node .output/server/index.mjs"
131
+ healthcheckPath = "/health"
132
+ healthcheckTimeout = 300
133
+ restartPolicyType = "ON_FAILURE"
134
+ restartPolicyMaxRetries = 3
135
+ ```
136
+
137
+ ### nixpacks.toml (선택)
72
138
 
73
139
  ```toml
74
140
  [phases.setup]
75
141
  nixPkgs = ["nodejs_20"]
76
142
 
77
143
  [phases.install]
78
- cmds = ["yarn install"]
144
+ cmds = ["corepack enable pnpm", "pnpm install"]
79
145
 
80
146
  [phases.build]
81
- cmds = ["yarn build"]
147
+ cmds = ["pnpm build"]
82
148
 
83
149
  [start]
84
150
  cmd = "node .output/server/index.mjs"
85
151
  ```
86
152
 
87
- ## 환경변수
153
+ ---
88
154
 
89
- ### Railway 대시보드에서 설정
155
+ ## 배포 방법
90
156
 
91
- 1. Railway 대시보드 프로젝트 선택
92
- 2. Variables 탭 클릭
93
- 3. 환경변수 추가:
94
- - `NODE_ENV=production`
95
- - `DATABASE_URL=...`
96
- - `API_SECRET=...`
157
+ ### 방법 1: GitHub 연동 (권장)
97
158
 
98
- ### Railway CLI 사용
159
+ 1. **Railway 프로젝트 생성**
160
+ - [Railway 대시보드](https://railway.app) 접속
161
+ - "New Project" → "Deploy from GitHub repo" 선택
162
+ - 저장소 연결
163
+
164
+ 2. **자동 감지**
165
+ - Railway가 자동으로 Node.js 프로젝트 감지
166
+ - `package.json`의 `build`, `start` 스크립트 사용
167
+
168
+ 3. **환경 변수 설정**
169
+ - Railway 대시보드에서 Variables 탭 선택
170
+ - 필요한 환경 변수 추가
171
+
172
+ ### 방법 2: Railway CLI
99
173
 
100
174
  ```bash
101
175
  # Railway CLI 설치
@@ -104,113 +178,148 @@ npm install -g @railway/cli
104
178
  # 로그인
105
179
  railway login
106
180
 
107
- # 환경변수 설정
108
- railway variables set DATABASE_URL=postgresql://...
109
- railway variables set API_SECRET=your-secret
181
+ # 프로젝트 초기화
182
+ railway init
110
183
 
111
- # 환경변수 확인
112
- railway variables
184
+ # 배포
185
+ railway up
186
+
187
+ # 환경 변수 설정
188
+ railway variables set DATABASE_URL="postgresql://..."
189
+ railway variables set API_SECRET="your-secret"
190
+
191
+ # 로그 확인
192
+ railway logs
113
193
  ```
114
194
 
115
- ## 데이터베이스 연결
195
+ ### 방법 3: Docker 배포
196
+
197
+ Railway는 Dockerfile을 자동으로 감지합니다.
198
+
199
+ ```dockerfile
200
+ # Dockerfile
201
+ FROM node:20-alpine AS builder
202
+ WORKDIR /app
203
+ COPY package.json pnpm-lock.yaml ./
204
+ RUN corepack enable pnpm && pnpm install
205
+ COPY . .
206
+ RUN pnpm build
207
+
208
+ FROM node:20-alpine
209
+ WORKDIR /app
210
+ COPY --from=builder /app/.output ./.output
211
+ ENV PORT=3000 NODE_ENV=production
212
+ EXPOSE 3000
213
+ CMD ["node", ".output/server/index.mjs"]
214
+ ```
116
215
 
117
- ### PostgreSQL
216
+ ---
118
217
 
119
- Railway에서 PostgreSQL 서비스 추가 후:
218
+ ## 환경변수
120
219
 
121
- ```bash
122
- # 자동 생성된 환경변수 사용
123
- DATABASE_URL=${{ Postgres.DATABASE_URL }}
220
+ ### Railway 대시보드에서 설정
221
+
222
+ ```
223
+ DATABASE_URL=postgresql://user:pass@host:5432/db
224
+ API_SECRET=your-secret-key
225
+ NODE_ENV=production
124
226
  ```
125
227
 
126
- ### Prisma와 함께 사용
228
+ ### 코드에서 사용
127
229
 
128
230
  ```typescript
129
- // server/db.ts
130
- import { PrismaClient } from './generated/prisma'
231
+ // server/api/health.ts
232
+ import { defineHandler } from 'nitro/h3'
131
233
 
132
- const prisma = new PrismaClient({
133
- datasources: {
134
- db: {
135
- url: process.env.DATABASE_URL,
234
+ export default defineHandler(() => {
235
+ return {
236
+ status: 'ok',
237
+ environment: process.env.NODE_ENV,
238
+ // Railway 자동 제공 변수
239
+ railway: {
240
+ environment: process.env.RAILWAY_ENVIRONMENT,
241
+ service: process.env.RAILWAY_SERVICE_NAME,
136
242
  },
137
- },
243
+ }
138
244
  })
139
-
140
- export default prisma
141
245
  ```
142
246
 
143
- ## 포트 설정
247
+ ### Railway 자동 제공 변수
144
248
 
145
- Railway는 `PORT` 환경변수를 자동 제공합니다:
249
+ | 변수 | 설명 |
250
+ |------|------|
251
+ | `PORT` | 서버 포트 (자동 할당) |
252
+ | `RAILWAY_ENVIRONMENT` | 환경 (production, staging 등) |
253
+ | `RAILWAY_SERVICE_NAME` | 서비스 이름 |
254
+ | `RAILWAY_PROJECT_ID` | 프로젝트 ID |
255
+ | `RAILWAY_DEPLOYMENT_ID` | 배포 ID |
146
256
 
147
- ```typescript
148
- // nitro.config.ts
149
- import { defineNitroConfig } from 'nitro/config'
257
+ ---
150
258
 
151
- export default defineNitroConfig({
152
- preset: 'node-server',
153
- // Railway의 PORT 환경변수 사용
154
- })
155
- ```
259
+ ## 데이터베이스 연동
156
260
 
157
- 서버 코드에서:
261
+ ### PostgreSQL 추가
158
262
 
159
- ```typescript
160
- // .output/server/index.mjs (자동 생성됨)
161
- // Nitro가 자동으로 PORT 환경변수를 사용
162
- ```
263
+ 1. Railway 대시보드에서 "New" → "Database" → "PostgreSQL" 선택
264
+ 2. 자동으로 `DATABASE_URL` 환경 변수 연결
163
265
 
164
- ## 배포 방법
266
+ ```typescript
267
+ // server/lib/db.ts
268
+ import { PrismaClient } from '@prisma/client'
165
269
 
166
- ### GitHub 연동 (권장)
270
+ // Railway의 DATABASE_URL 자동 사용
271
+ export const prisma = new PrismaClient()
272
+ ```
167
273
 
168
- 1. Railway 대시보드에서 "New Project" 클릭
169
- 2. "Deploy from GitHub repo" 선택
170
- 3. 저장소 선택 및 연결
171
- 4. 자동 배포 설정 완료
274
+ ### Redis 추가
172
275
 
173
- ### Railway CLI
276
+ 1. Railway 대시보드에서 "New" → "Database" → "Redis" 선택
277
+ 2. `REDIS_URL` 환경 변수 자동 연결
174
278
 
175
- ```bash
176
- # 프로젝트 초기화
177
- railway init
279
+ ```typescript
280
+ // server/lib/redis.ts
281
+ import { createClient } from 'redis'
178
282
 
179
- # 배포
180
- railway up
283
+ const client = createClient({
284
+ url: process.env.REDIS_URL,
285
+ })
181
286
 
182
- # 로그 확인
183
- railway logs
287
+ export default client
184
288
  ```
185
289
 
186
- ## 커스텀 도메인
290
+ ---
187
291
 
188
- ### Railway 대시보드에서
292
+ ## 도메인 설정
189
293
 
190
- 1. 프로젝트 Settings 탭
191
- 2. Domains 섹션
192
- 3. "Generate Domain" 또는 "Custom Domain" 추가
294
+ ### 자동 도메인
193
295
 
194
- ### CLI 사용
296
+ Railway는 자동으로 도메인을 생성합니다:
297
+ - `your-app-production.up.railway.app`
195
298
 
196
- ```bash
197
- # 도메인 추가
198
- railway domain add example.com
299
+ ### 커스텀 도메인
199
300
 
200
- # 도메인 확인
201
- railway domain
202
- ```
301
+ 1. Railway 대시보드 → Settings → Domains
302
+ 2. "Add Custom Domain" 클릭
303
+ 3. DNS 설정:
304
+ ```
305
+ CNAME your-domain.com → your-app-production.up.railway.app
306
+ ```
307
+
308
+ ---
203
309
 
204
310
  ## 헬스체크
205
311
 
206
- ### 기본 헬스체크 엔드포인트
312
+ ### 헬스체크 엔드포인트
207
313
 
208
314
  ```typescript
209
315
  // server/api/health.ts
210
316
  import { defineHandler } from 'nitro/h3'
211
317
 
212
318
  export default defineHandler(() => {
213
- return { status: 'ok', timestamp: new Date().toISOString() }
319
+ return {
320
+ status: 'ok',
321
+ timestamp: new Date().toISOString(),
322
+ }
214
323
  })
215
324
  ```
216
325
 
@@ -220,60 +329,51 @@ export default defineHandler(() => {
220
329
  {
221
330
  "deploy": {
222
331
  "healthcheckPath": "/api/health",
223
- "healthcheckTimeout": 100
332
+ "healthcheckTimeout": 300
224
333
  }
225
334
  }
226
335
  ```
227
336
 
228
- ## 스케일링
337
+ ---
229
338
 
230
- ### 수평 스케일링
231
-
232
- Railway 대시보드에서:
233
- 1. Settings → Scaling
234
- 2. 인스턴스 수 조정
339
+ ## CI/CD 설정
235
340
 
236
- ### 리소스 설정
341
+ ### GitHub Actions
237
342
 
238
- ```json
239
- // railway.json
240
- {
241
- "deploy": {
242
- "numReplicas": 2
243
- }
244
- }
245
- ```
343
+ ```yaml
344
+ # .github/workflows/railway.yml
345
+ name: Deploy to Railway
246
346
 
247
- ## 로깅 및 모니터링
347
+ on:
348
+ push:
349
+ branches: [main]
248
350
 
249
- ### 로그 확인
351
+ jobs:
352
+ deploy:
353
+ runs-on: ubuntu-latest
354
+ steps:
355
+ - uses: actions/checkout@v4
250
356
 
251
- ```bash
252
- # 실시간 로그
253
- railway logs -f
357
+ - name: Install Railway CLI
358
+ run: npm install -g @railway/cli
254
359
 
255
- # 최근 로그
256
- railway logs --lines 100
360
+ - name: Deploy
361
+ run: railway up
362
+ env:
363
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
257
364
  ```
258
365
 
259
- ### 메트릭 확인
260
-
261
- Railway 대시보드에서:
262
- - CPU 사용량
263
- - 메모리 사용량
264
- - 네트워크 트래픽
265
- - 요청 수
266
-
267
- ## CI/CD 설정
268
-
269
- ### GitHub Actions
366
+ ### 환경별 배포
270
367
 
271
368
  ```yaml
272
- name: Deploy to Railway
369
+ # .github/workflows/railway-env.yml
370
+ name: Deploy to Railway (Multi-Environment)
273
371
 
274
372
  on:
275
373
  push:
276
- branches: [main]
374
+ branches:
375
+ - main
376
+ - staging
277
377
 
278
378
  jobs:
279
379
  deploy:
@@ -284,33 +384,92 @@ jobs:
284
384
  - name: Install Railway CLI
285
385
  run: npm install -g @railway/cli
286
386
 
287
- - name: Deploy
288
- run: railway up
387
+ - name: Deploy to Production
388
+ if: github.ref == 'refs/heads/main'
389
+ run: railway up --environment production
289
390
  env:
290
391
  RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
392
+
393
+ - name: Deploy to Staging
394
+ if: github.ref == 'refs/heads/staging'
395
+ run: railway up --environment staging
396
+ env:
397
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
398
+ ```
399
+
400
+ ---
401
+
402
+ ## 모니터링
403
+
404
+ ### 로그 확인
405
+
406
+ ```bash
407
+ # CLI로 로그 확인
408
+ railway logs
409
+
410
+ # 실시간 로그
411
+ railway logs -f
412
+
413
+ # 특정 서비스 로그
414
+ railway logs --service my-service
291
415
  ```
292
416
 
293
- ### Railway 토큰 생성
417
+ ### 메트릭 확인
418
+
419
+ Railway 대시보드에서 확인 가능:
420
+ - CPU 사용량
421
+ - 메모리 사용량
422
+ - 네트워크 트래픽
423
+ - 요청 수
424
+
425
+ ---
426
+
427
+ ## 비용 최적화
294
428
 
295
- 1. Railway 대시보드 → Account Settings
296
- 2. Tokens 섹션에서 새 토큰 생성
297
- 3. GitHub Secrets에 `RAILWAY_TOKEN`으로 저장
429
+ ### Hobby Plan 활용
430
+
431
+ ```toml
432
+ # railway.toml
433
+ [deploy]
434
+ # 유휴 시 슬립 (Hobby Plan)
435
+ sleepAfterInactivity = 300 # 5분 후 슬립
436
+ ```
437
+
438
+ ### 리소스 제한
439
+
440
+ Railway 대시보드에서 설정:
441
+ - Memory Limit: 512MB (시작점)
442
+ - Replicas: 1 (시작점)
443
+
444
+ ---
298
445
 
299
446
  ## 트러블슈팅
300
447
 
301
- ### 빌드 실패
448
+ ### 일반적인 문제
449
+
450
+ | 문제 | 원인 | 해결 |
451
+ |------|------|------|
452
+ | 빌드 실패 | 의존성 오류 | `pnpm-lock.yaml` 커밋 확인 |
453
+ | 포트 바인딩 실패 | 하드코딩된 포트 | `process.env.PORT` 사용 |
454
+ | 메모리 초과 | 메모리 누수 | 리소스 제한 증가 또는 코드 최적화 |
455
+ | 헬스체크 실패 | 엔드포인트 없음 | `/health` 엔드포인트 추가 |
456
+
457
+ ### 디버깅
302
458
 
303
459
  ```bash
304
- # 로컬에서 빌드 테스트
305
- NITRO_PRESET=node-server yarn build
460
+ # 로컬에서 Railway 환경 시뮬레이션
461
+ railway run pnpm dev
306
462
 
307
- # 시작 명령 테스트
308
- node .output/server/index.mjs
463
+ # 환경 변수 확인
464
+ railway variables
465
+
466
+ # 서비스 상태 확인
467
+ railway status
309
468
  ```
310
469
 
311
- ### 포트 바인딩 오류
470
+ ### 포트 바인딩
312
471
 
313
- Railway는 `PORT` 환경변수를 자동 설정합니다. 하드코딩된 포트가 없는지 확인:
472
+ Railway는 `PORT` 환경변수를 자동 설정합니다:
314
473
 
315
474
  ```typescript
316
475
  // ❌ 잘못된 예
@@ -320,19 +479,7 @@ const port = 3000
320
479
  const port = process.env.PORT || 3000
321
480
  ```
322
481
 
323
- ### 메모리 초과
324
-
325
- ```json
326
- // railway.json
327
- {
328
- "deploy": {
329
- "restartPolicyType": "ON_FAILURE",
330
- "restartPolicyMaxRetries": 10
331
- }
332
- }
333
- ```
334
-
335
- Node.js 메모리 제한 설정:
482
+ ### 메모리 설정
336
483
 
337
484
  ```json
338
485
  // package.json
@@ -343,6 +490,8 @@ Node.js 메모리 제한 설정:
343
490
  }
344
491
  ```
345
492
 
493
+ ---
494
+
346
495
  ## 프로젝트 구조
347
496
 
348
497
  ```
@@ -357,8 +506,11 @@ my-app/
357
506
  └── railway.json
358
507
  ```
359
508
 
509
+ ---
510
+
360
511
  ## 참고 자료
361
512
 
513
+ - [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
362
514
  - [Railway 공식 문서](https://docs.railway.app)
363
515
  - [Railway CLI](https://docs.railway.app/reference/cli-api)
364
- - [Nitro Node Server Preset](https://nitro.build/deploy/providers/node)
516
+ - [Nitro Node Preset](https://nitro.build/deploy/providers/node)