Skip to content

Commit 9caca37

Browse files
committed
๐Ÿ“ docs: Add core folders and file structure, update project info
1 parent a7c01ff commit 9caca37

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+3452
-2054
lines changed

โ€Ž.clinerules

Lines changed: 157 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,157 @@
1-
# Project Rules
2-
3-
## ๐Ÿ“ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฐœ์š”
4-
- /README.md
5-
# TL;DR, ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œยท๋ฒ”์œ„ยท์ฃผ์š” ์šฉ์–ด 5์ค„ ์š”์•ฝ
6-
- /.handbook/ # ์ƒ์„ธ ๋ ˆํผ๋Ÿฐ์Šค ์ „์šฉ
7-
8-
## โฌ‡๏ธ ๋ฌธ์„œ ์šฐ์„ ์ˆœ์œ„ & ์—ญํ•  (์ฐธ๊ณ )
9-
### 1. ํ•ต์‹ฌ (๋ชจ๋“  ํ”„๋กœ์ ํŠธ)
10-
- .handbook/architecture.md
11-
# C4 ๋‹ค์ด์–ด๊ทธ๋žจ, ํด๋”ยท๋„ค์ด๋ฐ ๊ทœ์น™, ๋ฐ์ดํ„ฐ ํ๋ฆ„
12-
13-
### 2. ๊ถŒ์žฅ (์ค‘ยท๋Œ€ํ˜•)
14-
- .handbook/stack.md
15-
# ์–ธ์–ดยท๋Ÿฐํƒ€์ž„ยทํ”„๋ ˆ์ž„์›Œํฌ ์„ ์ • ์ด์œ ยท๋ฒ„์ „
16-
- .handbook/dev-guidelines.md
17-
# ์ฝ”๋“œ ์Šคํƒ€์ผ, ๋ธŒ๋žœ์น˜ยทPRยท์ปค๋ฐ‹ ๊ฐ€์ด๋“œ๋ผ์ธ
18-
- .handbook/api-contract.yaml
19-
# OpenAPI / GraphQL ์ŠคํŽ™ โ€“ ์—”๋“œํฌ์ธํŠธยท์Šคํ‚ค๋งˆยท์—๋Ÿฌ ๋ชจ๋ธ
20-
- .handbook/data-model.md
21-
# DB ERDยท์ธ๋ฑ์Šคยท์ œ์•ฝยท๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ทœ์น™
22-
- .handbook/api-optimization.md
23-
# API ํ˜ธ์ถœ ์ตœ์ ํ™” ๋ฐ ๋น„์šฉ ์ ˆ๊ฐ ๊ฐ€์ด๋“œ๋ผ์ธ
24-
25-
### 3. ํ™•์žฅ (๋Œ€ํ˜•ยทํ”„๋กœ๋•์…˜)
26-
- .handbook/quality.md
27-
# ํ…Œ์ŠคํŠธ ์ „๋žต, SLOยท๋ณด์•ˆยท๋กœ๊น…ยท๋ชจ๋‹ˆํ„ฐ๋ง ๋ชฉํ‘œ
28-
- .handbook/ci-cd.md
29-
# ๋นŒ๋“œโ†’ํ…Œ์ŠคํŠธโ†’๋ฐฐํฌโ†’๋กค๋ฐฑ ํŒŒ์ดํ”„๋ผ์ธ
30-
- .handbook/env.example
31-
# ํ•„์ˆ˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ƒ˜ํ”Œ
32-
- .handbook/secrets.md
33-
# ํ‚ค ๊ด€๋ฆฌยทํšŒ์ „ยทGDPRยทCCPA ์ฒดํฌ
34-
- .handbook/adr/000x-*.md
35-
# Architecture Decision Record: ๋ฌธ์ œยท๋Œ€์•ˆยท๊ฒฐ์ •ยท๊ทผ๊ฑฐ
36-
- .handbook/ai-collab.md
37-
# AI ํ”„๋กฌํ”„ํŠธ ํ˜•์‹ยท๊ธˆ์ง€์–ดยท์ถœ๋ ฅ ํฌ๋งทยทoverride ๊ทœ์น™
38-
39-
## ๐Ÿง‘โ€๐Ÿ’ป ์ž‘์—… ๊ฐ€์ด๋“œ๋ผ์ธ
40-
1. **ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€ ๋จผ์ € ํ™•์ธ** โ†’ ์žˆ์œผ๋ฉด ์ฐธ๊ณ , ์—†์œผ๋ฉด ๊ธฐ๋ณธ ๊ด€์Šต ์ ์šฉ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
41-
2. **์•„ํ‚คํ…์ฒ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ค‘์š”ํ•œ ๊ฒฐ์ • ๋˜๋Š” ๊ธฐ์ˆ /์˜์กด์„ฑ ๋„์ž… ์‹œ** โ‡’ `.handbook/adr/`์— ADR ํ…œํ”Œ๋ฆฟ ์ถ”๊ฐ€๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: ์ƒˆ ํ”„๋ ˆ์ž„์›Œํฌ ๋„์ž…, ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ณ€๊ฒฝ ๋“ฑ)
42-
3. **ํ•„์š” ๋ฌธ์„œ๊ฐ€ ์—†์„ ๋•Œ**
43-
- *๋‹จ์ˆœ* : README ๋˜๋Š” ๊ด€๋ จ ํŒŒ์ผ์— ๊ฐ„๋‹จ ์„ค๋ช… ์ถ”๊ฐ€๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
44-
- *์ŠคํŽ™* : ์ตœ์†Œ ์Šค์ผˆ๋ ˆํ†ค(์˜ˆ: OpenAPI 3.1) ์ƒ์„ฑ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
45-
4. **์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€** โ‡’ Gitmoji ์Šคํƒ€์ผ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค (`.handbook/dev-guidelines.md` ์ฐธ๊ณ ).
46-
5. **PR ๋ณ‘ํ•ฉ ์กฐ๊ฑด** โ‡’ `.handbook/quality.md`์˜ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ยทSLO ๋ชฉํ‘œ ์ถฉ์กฑ ์‹œ ๋ณ‘ํ•ฉ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
47-
48-
## ๐Ÿค– ์‘๋‹ต ํฌ๋งท ๊ฐ€์ด๋“œ๋ผ์ธ
49-
- ๊ธฐ๋ณธ : ์ฝ”๋“œ ๋จผ์ €, ์„ค๋ช… โ‰ค3์ค„
50-
- ์ •๋ณด ๋ถ€์กฑ : โ€œClarify needed: โ€ฆโ€ ์งง๊ฒŒ ์งˆ๋ฌธ
51-
- ๊ธˆ์ง€ : `any` ํƒ€์ž…, `console.log`, ๋ฏธ์Šน์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
52-
- ์ฝ”๋“œ ์Šคํƒ€์ผ: ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋Š” LLM ์žฌ๋Ÿ‰์œผ๋กœ ๋ชจ๋˜ ์Šคํƒ€์ผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
53-
54-
## ๐Ÿท ์…€ํ”„์ฒดํฌ
55-
- [ ] ์ˆ˜์ •/์ถ”๊ฐ€ ํŒŒ์ผ ์‹ค์ œ ์กด์žฌ?
56-
- [ ] .handbook/stack.md ๋ฒ„์ „ยท๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค€์ˆ˜? (์—†์œผ๋ฉด README ์ฐธ๊ณ )
57-
- [ ] quality.md ์žˆ์„ ๋•Œ๋งŒ ํ…Œ์ŠคํŠธยทSLO ๊ฐ•์ œ
58-
- [ ] ์•„ํ‚คํ…์ฒ˜์— ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ/๊ธฐ์ˆ  ๋„์ž… ์‹œ ADR ์ž‘์„ฑ?
59-
60-
# ๋
1+
# .clinerules
2+
# ์ค‘์š”: ์ด '.clinerules' ํŒŒ์ผ ์ž์ฒด๋Š” AI๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ˜๋“œ์‹œ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ(์ตœ์ƒ์œ„) ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
3+
#
4+
# ์ด ํŒŒ์ผ์€ AI์—๊ฒŒ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์‹œ ๊ฐ ์ฃผ์š” ํŒŒ์ผ์˜ ์—ญํ• ๊ณผ ์ฐธ๊ณ  ๋ฐฉ์‹์„ ์•ˆ๋‚ดํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค.
5+
#
6+
# ์ฐธ๊ณ : ๋ณธ ๊ทœ์น™ ํŒŒ์ผ์— ์–ธ๊ธ‰๋œ ๋ชจ๋“  ๋ฌธ์„œ ํŒŒ์ผ(์˜ˆ: .md, .toml)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋‚ด 'vibe-workflow/' ํด๋”์— ์œ„์น˜ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
7+
# ๋งŒ์•ฝ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์•„๋ž˜ ๊ทœ์น™๋“ค์˜ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๊ทธ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
8+
9+
# --- ์ตœ์ƒ์œ„ ์›์น™ ---
10+
# ์ด ์„น์…˜์˜ ์›์น™์€ ๋ชจ๋“  AI ํ–‰๋™์˜ ๊ธฐ๋ฐ˜์ด ๋ฉ๋‹ˆ๋‹ค.
11+
- AI๋Š” ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ ๋ฐ ์ฐธ๊ณ  ํŒŒ์ผ์— ๋ช…์‹œ๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ, ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชฉ์ (LLM ๊ทœ์•ฝ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ์„ค์ •)์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ฒ”์œ„ ๋‚ด์—์„œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ์˜ ํŒŒ์ผ(์†Œ์Šค ์ฝ”๋“œ, ์„ค์ • ํŒŒ์ผ, ๋ฌธ์„œ ๋“ฑ)์„ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
12+
- ํŠน์ • ์ž‘์—… ์œ ํ˜•(์ƒˆ๋กœ์šด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/ํŒจํ‚ค์ง€ ์„ค์น˜, ์ฃผ์š” ์˜์กด์„ฑ ๋ณ€๊ฒฝ, ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ž‘์—… ๋“ฑ)์— ๋Œ€ํ•ด์„œ๋Š” AI๊ฐ€ ์‹คํ–‰ ์ „, ํ•ด๋‹น ์ž‘์—…์˜ ํ•„์š”์„ฑ๊ณผ ์˜ˆ์ƒ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ๋ช…์‹œ์ ์ธ ์Šน์ธ์„ ๋ฐ›์€ ํ›„์—๋งŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” "์ตœ์ƒ์œ„ ์›์น™"์˜ ์ด์ „ ๋ฒ„์ „์— ์ƒ์„ธํžˆ ๊ธฐ์ˆ ๋œ ๋ฐ”์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
13+
- ํŒŒ์ผ ์ˆ˜์ •์ด๋‚˜ ์—…๋ฐ์ดํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์š”์ฒญ ์‹œ ์ˆ˜ํ–‰๋˜์ง€๋งŒ, AI๋Š” ๋Œ€ํ™”์˜ ๋งฅ๋ฝ์ด๋‚˜ ์ฃผ์–ด์ง„ ์ž‘์—…์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ํŠน์ • ๋ฌธ์„œ์˜ ์—…๋ฐ์ดํŠธ ํ•„์š”์„ฑ์„ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
14+
15+
# --- ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ์ ํŠธ ์ƒํ™ฉ ๋ฐ ์˜์‚ฌ ๊ฒฐ์ • ---
16+
# ํŒŒ์ผ: vibe-workflow/meeting_notes.toml
17+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋…ผ์˜ ๋ฐ ๊ฒฐ์ • ์‚ฌํ•ญ ๊ธฐ๋ก, LLM์˜ ์ฃผ์š” ์˜์‚ฌ๊ฒฐ์ • ์ฐธ๊ณ  ์ž๋ฃŒ
18+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
19+
# - ์ด ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž์™€์˜ ๋Œ€ํ™”์—์„œ ๋„์ถœ๋œ ์ฃผ์š” ๊ฒฐ์ • ์‚ฌํ•ญ, ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ, ์ž‘์—… ์ง€์‹œ ๋“ฑ ํ”„๋กœ์ ํŠธ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
20+
# - AI๋Š” ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์˜์‚ฌ๊ฒฐ์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์ด ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ณผ๊ฑฐ ๋งฅ๋ฝ๊ณผ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๊ด€๋ จ๋œ ์ตœ์‹  ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
21+
# - ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ, ๋Œ€ํ™” ์ค‘ ๋ฐœ์ƒํ•œ ์ค‘์š” ๋‚ด์šฉ์€ ์ด ํŒŒ์ผ์— ๊ธฐ๋กํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
22+
23+
# --- ์„ค๊ณ„ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ---
24+
# ์ด ์„น์…˜์˜ ๋ฌธ์„œ๋“ค์€ ์ฝ”๋“œ์™€ ๋™๊ธฐํ™”๋œ ์ตœ์‹  ์ƒํƒœ ์œ ์ง€๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉฐ, LLM์€ ๊ฐ ๋ฌธ์„œ์˜ ์—ญํ• ์„ ์ดํ•ดํ•˜๊ณ  ์ž‘์—… ์‹œ ์ ๊ทน ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
25+
26+
# ํŒŒ์ผ: vibe-workflow/requirements_definition.md
27+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ๋ชฉํ‘œ์™€ ํ•ต์‹ฌ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜
28+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
29+
# - ์ด ๋ฌธ์„œ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฌด์—‡์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ƒ์œ„ ์ˆ˜์ค€์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
30+
# - AI๋Š” ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์„ค๊ณ„ ์‹œ, ์ด ๋ฌธ์„œ์— ๋ช…์‹œ๋œ ํ•ต์‹ฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ์šฐ์„ ์ ์œผ๋กœ ๊ณ ๋ คํ•˜์—ฌ ์ž‘์—… ๋ฐฉํ–ฅ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
31+
# - ์š”๊ตฌ์‚ฌํ•ญ์— ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด, ํ•ด๋‹น ๋‚ด์šฉ์ด ์ด ๋ฌธ์„œ์— ๋ฐ˜์˜๋  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ์ž์™€ ์†Œํ†ตํ•ฉ๋‹ˆ๋‹ค.
32+
33+
# ํŒŒ์ผ: vibe-workflow/feature_specification.md
34+
# ์—ญํ• : ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ƒ์„ธ ๋ช…์„ธ (๋™์ž‘ ๋ฐฉ์‹, ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค, ์ž…์ถœ๋ ฅ ๋“ฑ)
35+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
36+
# - `requirements_definition.md`๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ตฌ์ฒด์ ์ธ ์‚ฌ์–‘์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.
37+
# - AI๋Š” ํŠน์ • ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋˜๋Š” ์ˆ˜์ • ์‹œ, ์ด ๋ฌธ์„œ์˜ ์ƒ์„ธ ๋ช…์„ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.
38+
# - ๊ธฐ๋Šฅ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ ๋ณ€๊ฒฝ ์‹œ, ์ด ๋ฌธ์„œ์˜ ๋‚ด์šฉ๋„ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.
39+
40+
# ํŒŒ์ผ: vibe-workflow/api_specification.yaml (OpenAPI/Swagger ํ˜•์‹ ๊ถŒ์žฅ)
41+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ API์˜ ์—”๋“œํฌ์ธํŠธ, ์š”์ฒญ/์‘๋‹ต ๊ตฌ์กฐ, ์ธ์ฆ ๋ฐฉ์‹ ๋“ฑ ๊ธฐ์ˆ ์  ๋ช…์„ธ
42+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
43+
# - AI๋Š” API ๊ด€๋ จ ์ฝ”๋“œ(์˜ˆ: ์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค, ํด๋ผ์ด์–ธํŠธ SDK ๋“ฑ) ์ž‘์—… ์‹œ ์ด ๋ช…์„ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
44+
# - ์ƒˆ๋กœ์šด API๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๊ธฐ์กด API์˜ ์‚ฌ์–‘์ด ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ, ์ด ํŒŒ์ผ์˜ ์—…๋ฐ์ดํŠธ ํ•„์š”์„ฑ์„ ์ธ์ง€ํ•˜๊ณ  ๊ด€๋ จ ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
45+
# - ํ”„๋ก ํŠธ์—”๋“œ ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์™€์˜ ๋ช…ํ™•ํ•œ ๊ณ„์•ฝ(contract) ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
46+
47+
# ํŒŒ์ผ: vibe-workflow/database_schema.dbml
48+
# ์—ญํ• : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ(ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ, ๊ด€๊ณ„ ๋“ฑ) ์ •์˜ ๋ฐ LLM์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ดํ•ด ์ž๋ฃŒ
49+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
50+
# - AI๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ฝ”๋“œ(๋ชจ๋ธ, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ์ฟผ๋ฆฌ ๋“ฑ) ์ž‘์—… ์‹œ ์ด ์Šคํ‚ค๋งˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ „์ฒด ๊ตฌ์กฐ์™€ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
51+
# - ์ด ํŒŒ์ผ์€ LLM์ด ์Šคํ‚ค๋งˆ์˜ ์˜๋„์™€ ํฐ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๋ฉฐ, ์—„๊ฒฉํ•œ ์‹คํ–‰ SQL ๋ฌธ๋ฒ•๋ณด๋‹ค๋Š” ๊ฐ€๋…์„ฑ๊ณผ ์ดํ•ด ์šฉ์ด์„ฑ์„ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
52+
# - ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‹œ, ์ด ํŒŒ์ผ์—๋„ ํ•ด๋‹น ๋‚ด์šฉ์ด ๋ฐ˜์˜๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
53+
54+
# ํŒŒ์ผ: vibe-workflow/ui_guidelines.md
55+
# ์—ญํ• : UI/UX ๋””์ž์ธ ์›์น™, ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ, ๋ ˆ์ด์•„์›ƒ ๊ทœ๊ฒฉ ๋“ฑ ์ •์˜
56+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
57+
# - AI๋Š” UI ๊ด€๋ จ ์ฝ”๋“œ(์˜ˆ: ํ”„๋ก ํŠธ์—”๋“œ ์ปดํฌ๋„ŒํŠธ, ์Šคํƒ€์ผ์‹œํŠธ) ์ž‘์—… ์‹œ ์ด ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋„๋ก ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
58+
# - ์ƒˆ๋กœ์šด UI ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ๋˜๋Š” ๊ธฐ์กด UI ๊ฐœ์„  ์‹œ, ์ด ๋ฌธ์„œ์˜ ์›์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
59+
60+
# --- ์ฝ”๋”ฉ ํ‘œ์ค€ ๋ฐ ์ปจ๋ฒค์…˜ ---
61+
# ํŒŒ์ผ: vibe-workflow/coding_conventions.md
62+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋”ฉ ์Šคํƒ€์ผ, ๋ช…๋ช… ๊ทœ์น™, ์ฃผ์„ ๊ฐ€์ด๋“œ ๋“ฑ ํ‘œ์ค€ ์ •์˜
63+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
64+
# - AI๋Š” ๋ชจ๋“  ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ • ์‹œ ์ด ๋ฌธ์„œ์— ์ •์˜๋œ ์ฝ”๋”ฉ ํ‘œ์ค€๊ณผ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
65+
# - ์ผ๊ด€๋œ ์ฝ”๋“œ ์Šคํƒ€์ผ ์œ ์ง€๋ฅผ ์œ„ํ•œ ๊ธฐ์ค€์œผ๋กœ ์‚ผ์œผ๋ฉฐ, ๊ธฐ์กด ์ฝ”๋“œ๊ฐ€ ์ปจ๋ฒค์…˜์— ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ์ปจ๋ฒค์…˜์ด ์ œ์•ˆ๋  ๊ฒฝ์šฐ ์ด ๋ฌธ์„œ์˜ ๊ฐœ์„ ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
66+
67+
# --- ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ฐ ํŒŒ์ผ ๊ด€๋ฆฌ ---
68+
# ํŒŒ์ผ: vibe-workflow/project_structure.toml
69+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํŒŒ์ผ ๊ตฌ์กฐ, ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ•  ์„ค๋ช…
70+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
71+
# - AI๋Š” ์ด ํŒŒ์ผ์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜์™€ ํŒŒ์ผ ๊ตฌ์„ฑ์„ ์ดํ•ดํ•˜๊ณ , ํŒŒ์ผ ์ƒ์„ฑ/์ด๋™/์‚ญ์ œ ์ž‘์—… ์‹œ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
72+
# - `node_modules`, `dist`, `build` ๋“ฑ LLM ์ž‘์—…์— ์ง์ ‘์ ์ด์ง€ ์•Š์€ ๋Œ€๋Ÿ‰์˜ ํŒŒ์ผ/ํด๋”๋Š” ์ด ํŒŒ์ผ์—์„œ ์ œ์™ธํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
73+
# - ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋ณ€๊ฒฝ์ด ์žˆ์„ ์‹œ, ์ด ํŒŒ์ผ์˜ ๋‚ด์šฉ๋„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ตœ์‹  ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
74+
75+
# --- ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐ ํ™˜๊ฒฝ ---
76+
# (์ฃผ์˜: ์˜์กด์„ฑ ๋ณ€๊ฒฝ ๋“ฑ ์‹ค์ œ ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ž‘์—…์€ "์ตœ์ƒ์œ„ ์›์น™"์˜ ์‚ฌ์šฉ์ž ์Šน์ธ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.)
77+
78+
# ํŒŒ์ผ: package.json, pyproject.toml, requirements.txt ๋“ฑ (ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ์œ„์น˜)
79+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๋ฐ ๊ด€๋ จ ์Šคํฌ๋ฆฝํŠธ ์ •์˜
80+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
81+
# - AI๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€/์‚ญ์ œ/๋ฒ„์ „ ๋ณ€๊ฒฝ ๋“ฑ์˜ ์ž‘์—… ์‹œ ์ด ํŒŒ์ผ๋“ค์„ ์ฐธ๊ณ ํ•˜๊ณ , ์‚ฌ์šฉ์ž ์Šน์ธ ํ•˜์— ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
82+
83+
# ํŒŒ์ผ: vibe-workflow/.env.example
84+
# ์—ญํ• : ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ชฉ๋ก๊ณผ ์˜ˆ์‹œ ์ œ๊ณต (์‹ค์ œ ๋น„๋ฐ€๊ฐ’์€ ํฌํ•จํ•˜์ง€ ์•Š์Œ)
85+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
86+
# - AI๋Š” ์ด ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์–ด๋–ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์ด ํ”„๋กœ์ ํŠธ ์‹คํ–‰์— ํ•„์š”ํ•œ์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ `.env` ํŒŒ์ผ์€ AI๊ฐ€ ์ง์ ‘ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
87+
88+
# ํŒŒ์ผ: vibe-workflow/configuration_guide.md
89+
# ์—ญํ• : ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐฉ๋ฒ•, ์ฃผ์š” ์„ค์ • ํ•ญ๋ชฉ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ์— ๋Œ€ํ•œ ์ƒ์„ธ ์„ค๋ช…
90+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
91+
# - AI๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์˜ ์‘๋‹ต ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์‹œ ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
92+
# - ์ƒˆ๋กœ์šด ์„ค์ • ์˜ต์…˜ ์ถ”๊ฐ€ ๋“ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐœ์ƒ ์‹œ ์ด ๋ฌธ์„œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
93+
94+
# --- ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ---
95+
# (์ฃผ์˜: ๋ฐฐํฌ ๊ด€๋ จ ์ž‘์—… ์ค‘ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์— ํฐ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, "์ตœ์ƒ์œ„ ์›์น™"์˜ ์‚ฌ์šฉ์ž ์Šน์ธ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.)
96+
97+
# ํŒŒ์ผ: vibe-workflow/test_case_template.md
98+
# ์—ญํ• : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ํ‘œ์ค€ ํ˜•์‹ ๋ฐ ๊ฐ€์ด๋“œ ์ œ๊ณต
99+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
100+
# - AI๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ, ์ด ํ…œํ”Œ๋ฆฟ๊ณผ ๊ธฐ์กด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํŒจํ„ด์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
101+
# - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ๊ณผ ํ’ˆ์งˆ ์œ ์ง€๋ฅผ ์œ„ํ•œ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
102+
103+
# ํŒŒ์ผ: Dockerfile, docker-compose.yml, deploy_script.sh ๋“ฑ (ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋˜๋Š” ์ง€์ •๋œ ์œ„์น˜)
104+
# ์—ญํ• : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋นŒ๋“œ, ๋ฐฐํฌ, ์‹คํ–‰ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
105+
# LLM ์ฐธ๊ณ  ๊ฐ€์ด๋“œ:
106+
# - AI๋Š” ๋ฐฐํฌ ํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ๊ด€๋ จ ์ž‘์—… ์‹œ ์ด ํŒŒ์ผ๋“ค์„ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
107+
# - ๊ด€๋ จ ์„ค์ • ๋ณ€๊ฒฝ ํ•„์š”์‹œ, ์‚ฌ์šฉ์ž ์Šน์ธ ํ•˜์— ๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ด ํŒŒ์ผ๋“ค์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
108+
109+
# --- AI ํ–‰๋™ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ ํ˜•์‹ ---
110+
# ๋ชฉํ‘œ: AI๋Š” ์‚ฌ์šฉ์ž์˜ ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ œ๊ณต๋œ ํŒŒ์ผ๋“ค์˜ ์—ญํ• ์„ ์ดํ•ดํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ํ˜‘์—…ํ•ฉ๋‹ˆ๋‹ค.
111+
- AI๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ œ์•ˆํ•˜๊ธฐ ์ „์— ๊ธฐ์กด ํ”„๋กœ์ ํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ์— ์–ธ๊ธ‰๋œ ํŒŒ์ผ๋“ค์˜ ๋‚ด์šฉ์„ ์šฐ์„ ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
112+
- AI๋Š” ์‚ฌ์šฉ์ž์™€์˜ ๋Œ€ํ™”์—์„œ ์š”์ฒญ์ด ๋ชจํ˜ธํ•˜๊ฑฐ๋‚˜ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด, ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉํ–ฅ์„ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
113+
- AI๋Š” ์ž‘์—…์˜ ๊ทผ๊ฑฐ๊ฐ€ ๋œ ์ฃผ์š” ์ฐธ๊ณ  ๋ฌธ์„œ๋‚˜ ๊ทœ์น™์„ ์‚ฌ์šฉ์ž์™€์˜ ๋Œ€ํ™” ์ค‘ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์–ธ๊ธ‰ํ•˜์—ฌ ํˆฌ๋ช…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
114+
115+
# --- ์ฃผ์š” ํŒŒ์ผ๋ณ„ ์—ญํ•  ๋ฐ LLM ์ฐธ๊ณ  ์ง€์นจ (์š”์•ฝ) ---
116+
# ์ด ์„น์…˜์€ ์œ„์—์„œ ์„ค๋ช…๋œ ์ฃผ์š” ํŒŒ์ผ๋“ค์˜ ํ•ต์‹ฌ ์—ญํ• ๊ณผ LLM์ด ์ฐธ๊ณ ํ•ด์•ผ ํ•  ๋ฐฉ์‹์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค.
117+
# AI๋Š” ๊ฐ ํŒŒ์ผ์˜ ๋ชฉ์ ์„ ์ดํ•ดํ•˜๊ณ , ์‚ฌ์šฉ์ž์™€์˜ ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•ด ์•„๋ž˜ ๋‚ด์šฉ์„ ์ˆ™์ง€ํ•ฉ๋‹ˆ๋‹ค.
118+
119+
# vibe-workflow/api_specification.yaml
120+
# - ์—ญํ• : API์˜ ๊ธฐ์ˆ ์  ๋ช…์„ธ (์—”๋“œํฌ์ธํŠธ, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋“ฑ).
121+
# - LLM ์ฐธ๊ณ : API ๊ด€๋ จ ์ฝ”๋“œ ์ž‘์—… ์‹œ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉ. ๋ณ€๊ฒฝ ์‹œ ์—…๋ฐ์ดํŠธ ํ•„์š”์„ฑ ์ธ์ง€.
122+
123+
# vibe-workflow/coding_conventions.md
124+
# - ์—ญํ• : ์ผ๊ด€๋œ ์ฝ”๋“œ ์Šคํƒ€์ผ์„ ์œ„ํ•œ ํ‘œ์ค€ ๋ฐ ์ปจ๋ฒค์…˜.
125+
# - LLM ์ฐธ๊ณ : ์ฝ”๋“œ ์ƒ์„ฑ/์ˆ˜์ • ์‹œ ์ค€์ˆ˜ ๋ชฉํ‘œ. ๊ฐœ์„  ์ œ์•ˆ ๊ฐ€๋Šฅ.
126+
127+
# vibe-workflow/configuration_guide.md
128+
# - ์—ญํ• : ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐฉ๋ฒ• ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ƒ์„ธ ์•ˆ๋‚ด.
129+
# - LLM ์ฐธ๊ณ : ์„ค์ • ๊ด€๋ จ ๋ฌธ์˜ ์‘๋‹ต ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์‹œ ์ฐธ๊ณ .
130+
131+
# vibe-workflow/database_schema.dbml
132+
# - ์—ญํ• : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ๋ฐ ๊ด€๊ณ„ ์ •์˜ (LLM์˜ ์ดํ•ด ์ค‘์‹ฌ).
133+
# - LLM ์ฐธ๊ณ : ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ฝ”๋“œ ์ž‘์—… ์‹œ ์ „์ฒด ๊ตฌ์กฐ ํŒŒ์•…์šฉ.
134+
135+
# vibe-workflow/feature_specification.md
136+
# - ์—ญํ• : ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์˜ ์ƒ์„ธ ๋™์ž‘ ๋ฐฉ์‹ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ.
137+
# - LLM ์ฐธ๊ณ : ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ/์ˆ˜์ • ์‹œ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ์ง€์นจ์œผ๋กœ ํ™œ์šฉ.
138+
139+
# vibe-workflow/meeting_notes.toml
140+
# - ์—ญํ• : ํ”„๋กœ์ ํŠธ ๋…ผ์˜์‚ฌํ•ญ, ๊ฒฐ์ •์‚ฌํ•ญ ๋“ฑ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋ก.
141+
# - LLM ์ฐธ๊ณ : ๊ณผ๊ฑฐ ๋งฅ๋ฝ ํŒŒ์•… ๋ฐ ์ผ๊ด€๋œ ์˜์‚ฌ๊ฒฐ์ • ์ง€์›.
142+
143+
# vibe-workflow/project_structure.toml
144+
# - ์—ญํ• : ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ์™€ ์—ญํ•  ์„ค๋ช….
145+
# - LLM ์ฐธ๊ณ : ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜ ์ดํ•ด ๋ฐ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ ์ฐธ๊ณ .
146+
147+
# vibe-workflow/requirements_definition.md
148+
# - ์—ญํ• : ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ ๋ฐ ์ƒ์œ„ ์š”๊ตฌ์‚ฌํ•ญ.
149+
# - LLM ์ฐธ๊ณ : ์ž‘์—… ๋ฐฉํ–ฅ ์„ค์ • ๋ฐ ํ•ต์‹ฌ ์š”๊ตฌ์‚ฌํ•ญ ์ค€์ˆ˜ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ธฐ์ค€.
150+
151+
# vibe-workflow/test_case_template.md
152+
# - ์—ญํ• : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ํ‘œ์ค€ ๋ฐ ๊ฐ€์ด๋“œ.
153+
# - LLM ์ฐธ๊ณ : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์ง€์› ์‹œ ํ˜•์‹ ๋ฐ ๋‚ด์šฉ ์ฐธ๊ณ .
154+
155+
# vibe-workflow/ui_guidelines.md
156+
# - ์—ญํ• : UI/UX ๋””์ž์ธ ์›์น™ ๋ฐ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ.
157+
# - LLM ์ฐธ๊ณ : UI ๊ด€๋ จ ์ฝ”๋“œ ์ž‘์—… ์‹œ ์ผ๊ด€์„ฑ ์œ ์ง€ ์œ„ํ•ด ์ฐธ๊ณ .

โ€Ž.github/workflows/deploy.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Deploy SvelteKit Site to GitHub Pages
2+
3+
on:
4+
# main ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
5+
push:
6+
branches:
7+
- main
8+
# GitHub Actions ํƒญ์—์„œ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
9+
workflow_dispatch:
10+
11+
# Actions๊ฐ€ GITHUB_TOKEN์„ ์‚ฌ์šฉํ•˜์—ฌ GitHub Pages์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
# ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ฐฐํฌ๋งŒ ์‹คํ–‰๋˜๋„๋ก ๋™์‹œ์„ฑ ์„ค์ •์„ ํ•ฉ๋‹ˆ๋‹ค.
18+
# ๋™์ผํ•œ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ƒˆ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ์‹œ ์ด์ „ ์‹คํ–‰์€ ์ทจ์†Œ๋ฉ๋‹ˆ๋‹ค.
19+
concurrency:
20+
group: "pages"
21+
cancel-in-progress: true
22+
23+
jobs:
24+
build:
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Checkout code
28+
uses: actions/checkout@v4
29+
30+
- name: Setup pnpm
31+
uses: pnpm/action-setup@v4 # pnpm/action-setup ์•ก์…˜์˜ ์ตœ์‹  ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
32+
with:
33+
version: 10 # ์š”์ฒญํ•˜์‹  pnpm ๋ฒ„์ „ 10์œผ๋กœ ๋ณ€๊ฒฝ
34+
35+
- name: Setup Node.js
36+
uses: actions/setup-node@v4 # actions/setup-node ์•ก์…˜์˜ ์ตœ์‹  ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
37+
with:
38+
node-version: "22" # ์š”์ฒญํ•˜์‹  Node.js ๋ฒ„์ „ 22๋กœ ๋ณ€๊ฒฝ
39+
cache: "pnpm" # pnpm ์˜์กด์„ฑ ์บ์‹ฑ
40+
41+
- name: Install dependencies (frontend)
42+
working-directory: ./frontend # frontend ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ๋ช…๋ น์–ด ์‹คํ–‰
43+
run: pnpm install
44+
45+
- name: Build SvelteKit site (frontend)
46+
working-directory: ./frontend # frontend ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ๋ช…๋ น์–ด ์‹คํ–‰
47+
run: pnpm run build # SvelteKit ๋นŒ๋“œ ๋ช…๋ น (adapter-static ํ•„์š”)
48+
49+
- name: Setup GitHub Pages
50+
uses: actions/configure-pages@v5
51+
# SvelteKit์˜ adapter-static์ด `base` ๊ฒฝ๋กœ๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ
52+
# ์ด Action์—์„œ base path๋ฅผ ๋ณ„๋„๋กœ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
53+
# ๋งŒ์•ฝ username.github.io๊ฐ€ ์•„๋‹Œ username.github.io/repo-name ํ˜•ํƒœ๋ผ๋ฉด
54+
# SvelteKit์˜ paths.base ์„ค์ •์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
55+
56+
- name: Upload artifact
57+
uses: actions/upload-pages-artifact@v3
58+
with:
59+
# SvelteKit์˜ adapter-static์—์„œ ์„ค์ •ํ•œ ๋นŒ๋“œ ์ถœ๋ ฅ ํด๋” ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
60+
# ๊ธฐ๋ณธ์ ์œผ๋กœ 'build' ํด๋”์ž…๋‹ˆ๋‹ค. frontend ํด๋” ๋‚ด์˜ ๊ฒฝ๋กœ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
61+
path: ./frontend/build
62+
63+
deploy:
64+
needs: build # build ์ž‘์—…์ด ์„ฑ๊ณตํ•ด์•ผ ์‹คํ–‰๋จ
65+
runs-on: ubuntu-latest
66+
environment:
67+
name: github-pages
68+
url: ${{ steps.deployment.outputs.page_url }} # ๋ฐฐํฌ๋œ ์‚ฌ์ดํŠธ URL์„ ์ถœ๋ ฅ
69+
steps:
70+
- name: Deploy to GitHub Pages
71+
id: deployment
72+
uses: actions/deploy-pages@v4

0 commit comments

Comments
ย (0)