# ํ๋กฌํํ
๊ฐ์ด๋
AI ์ด์์คํดํธ๋ฅผ ํตํด Spec Workflow MCP์ ์ํธ์์ฉํ๊ธฐ ์ํ ์์ ์ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ํฌํจ๋ ์ข
ํฉ ๊ฐ์ด๋์
๋๋ค.
## ๋น ๋ฅธ ์ฐธ์กฐ
### ํ์ ๋ช
๋ น์ด
```
"[๊ธฐ๋ฅ]์ ๋ํ spec ๋ง๋ค์ด์ค"
"๋ด ๋ชจ๋ spec ๋ชฉ๋ก ๋ณด์ฌ์ค"
"[spec-name]์ ์ํ ๋ณด์ฌ์ค"
"[spec]์ ์์
[๋ฒํธ] ๊ตฌํํด์ค"
"steering ๋ฌธ์ ๋ง๋ค์ด์ค"
```
## ์ฌ์ ์์ฑํ๊ธฐ
### ๊ธฐ๋ณธ Spec ์์ฑ
#### ๊ฐ๋จํ ์์ฒญ
```
"์ฌ์ฉ์ ์ธ์ฆ์ ๋ํ spec ๋ง๋ค์ด์ค"
```
AI๊ฐ ๋ค์์ ์์ฑํฉ๋๋ค:
- ์๊ตฌ์ฌํญ ๋ฌธ์
- ์ค๊ณ ๋ฌธ์ (์น์ธ ํ)
- ์์
๋ถํด (์ค๊ณ ์น์ธ ํ)
#### ์์ธํ ์์ฒญ
```
"payment-processing์ด๋ผ๋ ์ด๋ฆ์ผ๋ก spec ๋ง๋ค์ด์ค:
- Stripe๋ฅผ ํตํ ์ ์ฉ์นด๋ ๊ฒฐ์
- PayPal ํตํฉ
- ํ๋ถ ์ฒ๋ฆฌ
- ๊ฒฐ์ ์ด๋ฒคํธ๋ฅผ ์ํ Webhook ์ฒ๋ฆฌ
- PCI ๊ท์ ์ค์ ๊ณ ๋ ค์ฌํญ"
```
#### ๊ธฐ์กด ๋ฌธ์๋ก๋ถํฐ
```
"@product-requirements.md์ PRD๋ก๋ถํฐ spec ๋ง๋ค์ด์ค"
```
```
"@figma-export.md์ ์ค๊ณ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก spec ๋ง๋ค์ด์ค"
```
### ๊ณ ๊ธ Spec ์์ฑ
#### ๊ธฐ์ ์ ์ ์ฝ์ฌํญ ํฌํจ
```
"๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ค์๊ฐ ์๋ฆผ spec ๋ง๋ค์ด์ค:
- ์ค์๊ฐ ์
๋ฐ์ดํธ๋ฅผ ์ํด WebSocket ์ฌ์ฉ
- ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ ํด๋ง ๋์ฒด ๋ฐฉ์
- ์ต๋ 10,000๊ฐ์ ๋์ ์ฐ๊ฒฐ ์ฒ๋ฆฌ
- ๋ฉ์์ง ์์ ์ ์ง
- ์คํ๋ผ์ธ ํ ์ง์ ํฌํจ"
```
#### ์๋ฝ ๊ธฐ์ค ํฌํจ
```
"๋ค์ ์๋ฝ ๊ธฐ์ค์ ๊ฐ์ง ๊ฒ์ ๊ธฐ๋ฅ spec ๋ง๋ค์ด์ค:
- 200ms ์ด๋ด ๊ฒฐ๊ณผ ํ์
- ํผ์ง ๋งค์นญ ์ง์
- ๋ ์ง, ์นดํ
๊ณ ๋ฆฌ, ์์ฑ์ ํํฐ ํฌํจ
- ๊ด๋ จ์ฑ ์ ์ ํ์
- ์คํ ๋ฐ ๋์์ด ์ฒ๋ฆฌ"
```
#### ๋ง์ดํฌ๋ก์๋น์ค ์ฌ์
```
"๋ค์ ์กฐ๊ฑด์ ์ฌ๊ณ ๋ง์ดํฌ๋ก์๋น์ค spec ๋ง๋ค์ด์ค:
- REST API ๋
ธ์ถ
- ์คํ ๋ฆฌ์ง๋ก PostgreSQL ์ฌ์ฉ
- Kafka๋ก ์ด๋ฒคํธ ๋ฐํ
- CQRS ํจํด ๊ตฌํ
- ํฌ์ค ์ฒดํฌ ์๋ํฌ์ธํธ ํฌํจ"
```
## ์ฌ์ ๊ด๋ฆฌํ๊ธฐ
### ๋ชฉ๋ก ๋ฐ ์ํ
#### ๊ฐ์ ๋ณด๊ธฐ
```
"๋ด ๋ชจ๋ spec ๋ชฉ๋ก ๋ณด์ฌ์ค"
"๋ชจ๋ spec๊ณผ ์งํ ์ํฉ ๋ณด์ฌ์ค"
"์ด๋ค spec์ด ์น์ธ ๋๊ธฐ ์ค์ด์ผ?"
"ํ์ฌ ์งํ ์ค์ธ spec์ ๋ญ์ผ?"
```
#### ํน์ ์ํ
```
"user-auth spec์ ์ํ ๋ณด์ฌ์ค"
"payment-processing์ ์งํ ์ํฉ์?"
"notification spec์์ ๋จ์ ์์
๋ณด์ฌ์ค"
"user-profile์์ ์๋ฃ๋ ์์
์ ๋ญ์ผ?"
```
#### ํํฐ๋ง
```
"50% ์ด์ ์๋ฃ๋ spec ๋ณด์ฌ์ค"
"๋ด ์น์ธ์ ๊ธฐ๋ค๋ฆฌ๋ spec ๋ชฉ๋ก ๋ณด์ฌ์ค"
"์์ง ์์
์ด ์๋ฃ๋์ง ์์ spec์?"
"์ฐจ๋จ๋๊ฑฐ๋ ์ค๋จ๋ spec ๋ณด์ฌ์ค"
```
### ๋ฌธ์ ๊ด๋ฆฌ
#### ๋ฌธ์ ๋ณด๊ธฐ
```
"user-auth์ ์๊ตฌ์ฌํญ ๋ณด์ฌ์ค"
"payments์ ์ค๊ณ ๋ฌธ์ ํ์ํด์ค"
"์๋ฆผ ์์คํ
์ ์์
์ ๋ญ์ผ?"
"search spec์ ๋ชจ๋ ๋ฌธ์ ๋ณด์ฌ์ค"
```
#### ๋ฌธ์ ์
๋ฐ์ดํธ
```
"user-auth ์๊ตฌ์ฌํญ์ 2FA ํฌํจํ๋๋ก ์
๋ฐ์ดํธํด์ค"
"payment ์ค๊ณ๋ฅผ Stripe Connect ์ฌ์ฉํ๋๋ก ์์ ํด์ค"
"user-profile์ ๋ณด์ ํ
์คํธ ์์
์ถ๊ฐํด์ค"
"ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ์๊ตฌ์ฌํญ ์
๋ฐ์ดํธ: [ํผ๋๋ฐฑ]"
```
## ๊ตฌํ ํ๋กฌํํธ
### ๊ฐ๋ณ ์์
#### ๊ธฐ๋ณธ ๊ตฌํ
```
"user-auth์ ์์
1.2 ๊ตฌํํด์ค"
"payment spec์ ์์
2.1.3 ์๋ฃํด์ค"
"notifications์ ๋ค์ ๋๊ธฐ ์ค์ธ ์์
์ฒ๋ฆฌํด์ค"
```
#### ์ปจํ
์คํธ ํฌํจ
```
"TypeScript์ Express๋ฅผ ์ฌ์ฉํด์ user-auth์ ์์
1.2 ๊ตฌํํด์ค"
"Prisma๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์
์์
์๋ฃํด์ค"
"REST ๊ท์น์ ๋ฐ๋ผ API ์๋ํฌ์ธํธ ์์
๊ตฌํํด์ค"
```
### ๋ฐฐ์น ๊ตฌํ
#### ์น์
๋ณ
```
"user-auth์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
๊ตฌํํด์ค"
"dashboard spec์ ๋ชจ๋ ํ๋ก ํธ์๋ ์์
์๋ฃํด์ค"
"payments์ ๋ชจ๋ API ์์
์ฒ๋ฆฌํด์ค"
```
#### ์ฐ์ ์์๋ณ
```
"๋ชจ๋ ์ค์ ์์
์ ๋จผ์ ๊ตฌํํด์ค"
"user-profile์ MVP ์์
์๋ฃํด์ค"
"๋ฐ๋ชจ์ ํ์ํ ์์
์ ์ง์คํด์ค"
```
#### ์์ฐจ์
```
"user-auth์ ์์
1.1๋ถํฐ 1.5๊น์ง ๊ตฌํํด์ค"
"์น์
2์ ๋ชจ๋ ํ์ ์์
์๋ฃํด์ค"
"์ค์ ์์
์ ์์๋๋ก ์ฒ๋ฆฌํด์ค"
```
### ๊ตฌํ ์ ๋ต
#### ํ
์คํธ ์ฃผ๋
```
"์์
1.2๋ ํ
์คํธ๋ฅผ ๋จผ์ ์์ฑํ ํ ๊ตฌํํด์ค"
"์์
2.1์ ์ ์ฒด ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง์ ํจ๊ป ๊ตฌํํด์ค"
"์๋น์ค ์์
์ ๊ตฌํํ๋ฉด์ ์ ๋ ํ
์คํธ ์์ฑํด์ค"
```
#### ๋ฌธ์ํ ํฌํจ
```
"์์
1.3์ ๊ตฌํํ๊ณ API ๋ฌธ์ํํด์ค"
"์ธ๋ผ์ธ ์ฃผ์๊ณผ ํจ๊ป ์ธ์ฆ ์์
์๋ฃํด์ค"
"์์
2.2๋ฅผ ๊ตฌํํ๊ณ ์ฌ์ฉ ์์ ๋ง๋ค์ด์ค"
```
## Steering ๋ฌธ์
### Steering ์์ฑ
#### ์ ์ฒด ์ธํธ
```
"๋ด ์ ์์๊ฑฐ๋ ํ๋ก์ ํธ๋ฅผ ์ํ steering ๋ฌธ์ ๋ง๋ค์ด์ค"
"SaaS ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ steering ์ค์ ํด์ค"
"๋ชจ๋ฐ์ผ ์ฑ์ ์ํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๋ง๋ค์ด์ค"
```
#### ๊ฐ๋ณ ๋ฌธ์
```
"์ฌ์ฉ์ ๊ฒฝํ์ ์ง์คํ๋ product steering ๋ฌธ์ ๋ง๋ค์ด์ค"
"๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ฅผ ์ํ technical steering ๋ง๋ค์ด์ค"
"๋ชจ๋
ธ๋ ํฌ ์ค์ ์ ์ํ structure steering ๋ง๋ค์ด์ค"
```
#### ์ปจํ
์คํธ๋ก๋ถํฐ
```
"@project-brief.md๋ฅผ ๊ธฐ๋ฐ์ผ๋ก steering ๋ฌธ์ ๋ง๋ค์ด์ค"
"@architecture.md์ ๊ธฐ์ ์ ๊ฒฐ์ ์ฌํญ์ผ๋ก steering ์์ฑํด์ค"
```
### Steering ์
๋ฐ์ดํธ
```
"product steering์ B2B ๊ธฐ๋ฅ ํฌํจํ๋๋ก ์
๋ฐ์ดํธํด์ค"
"technical steering์ REST ๋์ GraphQL ์ฌ์ฉํ๋๋ก ์์ ํด์ค"
"์๋ก์ด ๋ชจ๋ ์์คํ
์ ์ํ structure steering ์
๋ฐ์ดํธํด์ค"
```
## ์น์ธ ์ํฌํ๋ก์ฐ
### ํผ๋๋ฐฑ ์์ฒญ
#### ํน์ ์ฐ๋ ค์ฌํญ ํฌํจ
```
"user-auth ์๊ตฌ์ฌํญ ์น์ธ ์์ฒญ - ํนํ ๋ณด์ ์น์
ํ์ธํด์ค"
"payment ์ค๊ณ ๊ฒํ ์์ฒญ - ์๋ฌ ์ฒ๋ฆฌ์ ์ง์คํด์ค"
"์์
๋ถํด ํผ๋๋ฐฑ ์์ฒญ - ๋๋ฌด ์ธ๋ถํ๋ ๊ฑฐ ์๋์ผ?"
```
#### ์์ ์์ฒญ
```
"์๊ตฌ์ฌํญ์ ๋ ์์ธํ ๋ด์ฉ์ด ํ์ํฉ๋๋ค:
- ์๋ฌ ์ฒ๋ฆฌ ์๋๋ฆฌ์ค
- ์ฑ๋ฅ ์๊ตฌ์ฌํญ
- ๋ณด์ ๊ณ ๋ ค์ฌํญ
์์ ํ ๋ค์ ์ ์ถํด์ฃผ์ธ์"
```
### ์น์ธ ๊ฒฐ์
#### ์น์ธํ๊ธฐ
```
"user-auth ์๊ตฌ์ฌํญ ์น์ธํด์ค"
"์ค๊ณ๊ฐ ๊ด์ฐฎ์ ๋ณด์ฌ, ์น์ธํด์ค"
"์์
๋ถํด๋ฅผ ๊ทธ๋๋ก ์๋ฝํด์ค"
```
#### ๋ณ๊ฒฝ ์์ฒญ
```
"์๊ตฌ์ฌํญ ๋ณ๊ฒฝ ์์ฒญ:
- ๋ฉํฐ ํ
๋ํธ ์ง์ ์ถ๊ฐ
- ์๋ ์ ํ ํฌํจ
- ๋ฐ์ดํฐ ๋ณด๊ด ์ ์ฑ
๋ช
์"
```
#### ๊ฑฐ๋ถํ๊ธฐ
```
"ํ์ฌ ์ค๊ณ ๊ฑฐ๋ถ - ๋์ ์ด๋ฒคํธ ์ฃผ๋ ์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํด์ผ ํด"
"์๊ตฌ์ฌํญ ๋ค์ ์์ - ๋ฒ์๊ฐ ๋๋ฌด ๋์ด"
```
## ๋ฒ๊ทธ ์ํฌํ๋ก์ฐ
### ๋ฒ๊ทธ ๋ณด๊ณ
#### ์์ธ ๋ณด๊ณ ์
```
"๋ฒ๊ทธ ๋ณด๊ณ ์ ๋ง๋ค์ด์ค:
์ ๋ชฉ: ํน์ ๋ฌธ์ ์ฌ์ฉ ์ ๋ก๊ทธ์ธ ์คํจ
๋จ๊ณ: 1) '+' ํฌํจ๋ ์ด๋ฉ์ผ ์
๋ ฅ 2) ํผ ์ ์ถ 3) ์๋ฌ ๋ฐ์
์์: ๋ก๊ทธ์ธ ์ฑ๊ณต
์ค์ : 500 ์๋ฌ
์ฐ์ ์์: ๋์
ํ๊ฒฝ: ํ๋ก๋์
"
```
#### ์๋ฌ ๋ก๊ทธ๋ก๋ถํฐ
```
"์ด ์๋ฌ๋ก ๋ฒ๊ทธ ๋ณด๊ณ ์ ๋ง๋ค์ด์ค: [์คํ ํธ๋ ์ด์ค ๋ถ์ฌ๋ฃ๊ธฐ]"
"Sentry ์๋ฆผ์์ ์ด ๋ฒ๊ทธ ๋ฌธ์ํํด์ค: [๋งํฌ]"
```
### ๋ฒ๊ทธ ํด๊ฒฐ
#### ์กฐ์ฌ
```
"๋ฒ๊ทธ #45์ ๊ทผ๋ณธ ์์ธ ์กฐ์ฌํด์ค"
"payment webhook์ด ์คํจํ๋ ์ด์ ๋ถ์ํด์ค"
"search ์๋ํฌ์ธํธ์ ์ฑ๋ฅ ๋ฌธ์ ๋๋ฒ๊ทธํด์ค"
```
#### ์์ ๊ตฌํ
```
"์ฌ์ฉ์ ์ธ์ฆ์ ๋ฒ๊ทธ #45 ์์ ๋ง๋ค์ด์ค"
"๊ฒฐ์ ํ์์์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ๊ตฌํํด์ค"
"์๋ฆผ ์๋น์ค์ ๋ฉ๋ชจ๋ฆฌ ๋์ ์์ ํด์ค"
```
## ๊ตฌํ ์ค ๋ณ๊ฒฝ์ฌํญ
### ๊ฐ๋ฐ ์ค Spec ๋ณ๊ฒฝ ์
์๊ตฌ์ฌํญ๊ณผ ์ค๊ณ๋ ๊ตฌํ ์ค์ ์์ฃผ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์๋ฃ๋ ์์
์ ๋ณด์กดํ๋ฉด์ tasks.md๋ฅผ ํ์ฌ spec์ ๋ง๊ฒ ์ ์งํด์ผ ํฉ๋๋ค.
### ์์
์๋ก๊ณ ์นจ ๊ธฐ๋ฅ ์ฌ์ฉ
AI๋ refresh-tasks ํ๋กฌํํธ๋ฅผ ํตํด ํฌ๊ด์ ์ธ ์์
์๋ก๊ณ ์นจ ์ง์นจ์ ์ ๊ทผํ ์ ์์ต๋๋ค. AI์๊ฒ ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ๋จํ ์๋ ค์ฃผ์ธ์:
#### ๊ธฐ๋ณธ ์์
์๋ก๊ณ ์นจ
```
"์๊ตฌ์ฌํญ์ด ์
๋ฐ์ดํธ๋์์ต๋๋ค. ํ์ฌ requirements.md์ design.md์ ๋ง๊ฒ tasks.md๋ฅผ ์๋ก๊ณ ์นจํด์ฃผ์ธ์."
```
#### ์ปจํ
์คํธ๋ฅผ ํฌํจํ ์์ธ ์์
์๋ก๊ณ ์นจ
```
"๋ค์ ๋ณ๊ฒฝ์ฌํญ์ผ๋ก spec์ ์
๋ฐ์ดํธํ์ต๋๋ค:
- ๋ณด๊ณ ๋ชจ๋ ์ ๊ฑฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ MongoDB์์ PostgreSQL๋ก ๋ณ๊ฒฝ
- ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ
๋ค์ ์์
์๋ก๊ณ ์นจ ํ๋ก์ธ์ค์ ๋ฐ๋ผ tasks.md๋ฅผ ์๋ก๊ณ ์นจํด์ฃผ์ธ์:
1. ๋ชจ๋ ์๋ฃ ๋ฐ ์งํ ์ค์ธ ์์
๋ณด์กด
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ ์ํ ๋ง์ด๊ทธ๋ ์ด์
์์
์ถ๊ฐ
3. ๋ณด๊ณ ๋ชจ๋์ ๋ํ ๋๊ธฐ ์ค์ธ ์์
์ ๊ฑฐ
4. ์์
๋ก๊ทธ์ธ์ ์ํ ์ ์์
์ถ๊ฐ"
```
#### ๋ง์ด๊ทธ๋ ์ด์
์ด ํ์ํ ์ํคํ
์ฒ ๋ณ๊ฒฝ
```
"REST API์์ GraphQL๋ก ์ ํํ๊ณ ์์ต๋๋ค. ์ฌ๋ฌ REST ์๋ํฌ์ธํธ๊ฐ ์ด๋ฏธ ๊ตฌํ๋์ด ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด tasks.md๋ฅผ ์
๋ฐ์ดํธํด์ฃผ์ธ์:
1. ์๋ฃ๋ ๋ชจ๋ REST ์์
๋ณด์กด
2. REST ๋ก์ง์ GraphQL ๋ฆฌ์กธ๋ฒ๋ก ๋ํํ๋ ๋ง์ด๊ทธ๋ ์ด์
์์
3. ์๋ก์ด GraphQL ๊ตฌํ ์์
4. GraphQL ๊ฒ์ฆ ํ REST ์ ๊ฑฐ๋ฅผ ์ํ ์ ๋ฆฌ ์์
"
```
### ์์ AI ๋์
์์
์๋ก๊ณ ์นจ์ ์์ฒญํ๋ฉด AI๋ ๋ค์์ ์ํํฉ๋๋ค:
1. **ํ์ฌ ์ํ ๋ถ์**
- ํ์ฌ spec์ ์ํด requirements.md์ design.md ์ฝ๊ธฐ
- ์๋ฃ, ์งํ ์ค, ๋๊ธฐ ์ค์ธ ์์
์๋ณ
- ์ถ๊ฐ, ์ ๊ฑฐ ๋๋ ๋ณ๊ฒฝ๋ ๊ธฐ๋ฅ ๊ฒฐ์
2. **์๋ฃ๋ ์์
๋ณด์กด**
- ๋ชจ๋ [x] ์๋ฃ๋ ์์
์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ์ง
- ๋ชจ๋ [-] ์งํ ์ค์ธ ์์
์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ์ง
- ์ ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๋ํ ์๋ฃ๋ ์์
์ ๋ฉ๋ชจ ์ถ๊ฐ
3. **์ํคํ
์ฒ ๋ณ๊ฒฝ ์ฒ๋ฆฌ**
- ์
๋ฐ์ดํธ๊ฐ ํ์ํ ์๋ฃ๋ ์์
๋ค์ ๋ง์ด๊ทธ๋ ์ด์
์์
์ถ๊ฐ
- ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์
์ ์ํ ์ ํ ์์
์์ฑ
- ์ด์ ๊ตฌํ ์ ๊ฑฐ ์ ๊ฒ์ฆ ์์
ํฌํจ
4. **๋๊ธฐ ์ค์ธ ์์
์
๋ฐ์ดํธ**
- ์ญ์ ๋ ๊ธฐ๋ฅ์ ๋ํ ๋๊ธฐ ์ค์ธ ์์
์ ๊ฑฐ
- ๋ณ๊ฒฝ๋ ์๊ตฌ์ฌํญ์ ๋ํ ๋๊ธฐ ์ค์ธ ์์
์
๋ฐ์ดํธ
- ์ ๊ธฐ๋ฅ์ ๋ํ ์ ์์
์ถ๊ฐ
5. **์์
๊ตฌ์กฐ ์ ์ง**
- ์์ฐจ์ ๋ฒํธ ๋งค๊ธฐ๊ธฐ ์ ์ง
- ์์
ํ์ ๋ณด์กด
- ์๊ตฌ์ฌํญ ์ฐธ์กฐ ํฌํจ
- ์ข
์์ฑ ์์ ์ ์ง
### ์์ ์๋๋ฆฌ์ค
#### ๊ธฐ๋ฅ ์ ๊ฑฐ
```
"spec์์ ๋ณด๊ณ ๋ชจ๋์ ์ ๊ฑฐํ๊ธฐ๋ก ํ์ต๋๋ค. ๊ทธ์ ๋ฐ๋ผ tasks.md๋ฅผ ์
๋ฐ์ดํธํด์ฃผ์ธ์."
```
์์ AI ๋์:
- ๋ชจ๋ ์๋ฃ๋ ๋ณด๊ณ ์์
์ [x] ์ํ์ ํจ๊ป ์ ์ง
- ๋ชจ๋ ์งํ ์ค์ธ ๋ณด๊ณ ์์
์ [-] ์ํ์ ํจ๊ป ์ ์ง
- ๋๊ธฐ ์ค์ธ [ ] ๋ณด๊ณ ์์
๋ง ์ ๊ฑฐ
- ๋ฉ๋ชจ ์ถ๊ฐ: "_์ฐธ๊ณ : ๋ณด๊ณ ๊ธฐ๋ฅ์ด spec์์ ์ ๊ฑฐ๋์์ง๋ง ์๋ฃ๋ ์์
์ ๋ณด์กด๋จ_"
#### ์๋ฃ๋ ์์
์ด ์๋ ์ํคํ
์ฒ ๋ณ๊ฒฝ
```
"MongoDB์์ PostgreSQL๋ก ์ ํํ๊ณ ์์ต๋๋ค. ๋๊ธฐ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์
๋ฐ์ดํธํด์ฃผ์ธ์. ์ด๋ฏธ MongoDB ์คํค๋ง์ ์ฐ๊ฒฐ ๋ก์ง์ ๊ตฌํํ์ต๋๋ค."
```
์์ AI ๋์:
- ์๋ฃ๋ ๋ชจ๋ MongoDB ์์
์ ๊ทธ๋๋ก ๋ณด์กด
- ์งํ ์ค์ธ ๋ชจ๋ MongoDB ์์
์ ๊ทธ๋๋ก ๋ณด์กด
- ์๋ฃ๋ MongoDB ์์
๋ฐ๋ก ๋ค์ ์๋ก์ด ๋ง์ด๊ทธ๋ ์ด์
์์
์ถ๊ฐ:
- MongoDB ์คํค๋ง๋ฅผ PostgreSQL ํ
์ด๋ธ๋ก ๋ง์ด๊ทธ๋ ์ด์
- MongoDB ์ฐ๊ฒฐ ๋ก์ง์ PostgreSQL ํด๋ผ์ด์ธํธ๋ก ๊ต์ฒด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ MongoDB์์ PostgreSQL ๊ตฌ๋ฌธ์ผ๋ก ์
๋ฐ์ดํธ
- ๊ธฐ์กด MongoDB ๋ฐ์ดํฐ๋ฅผ PostgreSQL๋ก ๋ง์ด๊ทธ๋ ์ด์
- PostgreSQL์ ์ํ ํ๊ฒฝ ๊ตฌ์ฑ ์
๋ฐ์ดํธ
- ๋ง์ด๊ทธ๋ ์ด์
๊ฒ์ฆ ํ MongoDB ์ข
์์ฑ ์ ๊ฑฐ
- ๋๋จธ์ง ๋๊ธฐ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ PostgreSQL ์ฌ์ฉํ๋๋ก ์
๋ฐ์ดํธ
- ์์
๋ฒํธ ๋งค๊ธฐ๊ธฐ ์์ ์ ์ง
#### ๊ธฐ๋ฅ ์ถ๊ฐ
```
"์ธ์ฆ spec์ ์์
๋ก๊ทธ์ธ ์ถ๊ฐํด์ค. ์๊ตฌ์ฌํญ๊ณผ ์ค๊ณ๊ฐ ์
๋ฐ์ดํธ๋์์ต๋๋ค."
```
์์ AI ๋์:
- ๋
ผ๋ฆฌ์ ์ฝ์
์ง์ ์ ์ํ ํ์ฌ ์์
๊ตฌ์กฐ ๋ถ์
- ์ ์ ํ ๋ฒํธ๋ก ์๋ก์ด ์์
๋ก๊ทธ์ธ ์์
์ถ๊ฐ
- ์์
๋ก๊ทธ์ธ์ ๋ํ ํน์ ์๊ตฌ์ฌํญ ์ฐธ์กฐ
- ์ ์์
์ด ์ข
์์ฑ ์์๋ฅผ ์ ์งํ๋๋ก ๋ณด์ฅ
- ๊ธฐ๋ณธ ์ธ์ฆ์ด ์ด๋ฏธ ๊ตฌํ๋ ๊ฒฝ์ฐ ํตํฉ ์์
์ถ๊ฐ
### ์ํคํ
์ฒ ๋ง์ด๊ทธ๋ ์ด์
์ฒ๋ฆฌ
์ด๋ฏธ ๊ตฌํ๋ ์ฝ๋์ ์ํฅ์ ๋ฏธ์น๋ ์ํคํ
์ฒ ๋ณ๊ฒฝ ์:
#### REST์์ GraphQL ๋ง์ด๊ทธ๋ ์ด์
```
"REST์์ GraphQL๋ก ๋ณ๊ฒฝํ๊ณ ์์ต๋๋ค. ์ฌ๋ฌ REST ์๋ํฌ์ธํธ๊ฐ ์ด๋ฏธ ๊ตฌํ๋์ด ์์ต๋๋ค."
```
์์ ์์
์ถ๊ฐ:
- ์๋ฃ๋ REST ์๋ํฌ์ธํธ ์์
๋ณด์กด
- GraphQL ์คํค๋ง ์ ์ ์์
์ถ๊ฐ
- ๋ฆฌ์กธ๋ฒ ๊ตฌํ ์์
์ถ๊ฐ
- ๊ธฐ์กด REST ๋ก์ง์ GraphQL ๋ฆฌ์กธ๋ฒ๋ก ๋ํํ๋ ๋ง์ด๊ทธ๋ ์ด์
์์
์ถ๊ฐ
- ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ GraphQL ์ฌ์ฉํ๋๋ก ์
๋ฐ์ดํธํ๋ ์์
์ถ๊ฐ
- GraphQL ๊ฒ์ฆ ํ REST ์๋ํฌ์ธํธ ์ ๊ฑฐ๋ฅผ ์ํ ์ ๋ฆฌ ์์
์ถ๊ฐ
#### ๋ชจ๋๋ฆฌ์ค์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถํ
```
"๋ชจ๋๋ฆฌ์ ์ฌ์ฉ์ ์๋น์ค๋ฅผ ๋ณ๋์ ์ธ์ฆ ๋ฐ ํ๋กํ ์๋น์ค๋ก ๋ถํ ํ๊ณ ์์ต๋๋ค."
```
์์ ์์
์ถ๊ฐ:
- ์๋ฃ๋ ๋ชจ๋๋ฆฌ์ ์๋น์ค ์์
๋ณด์กด
- ์๋น์ค ๋ถ๋ฆฌ ์์
์ถ๊ฐ
- ์๋น์ค ๊ฐ ํต์ ์์
์ถ๊ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ถํ ๋๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
์์
์ถ๊ฐ
- ์ ์๋น์ค์ ๋ํ ๋ฐฐํฌ ๊ตฌ์ฑ ์์
์ถ๊ฐ
- ์๋น์ค ๊ฒ์ฆ ํ ๋ชจ๋๋ฆฌ์ ์ฝ๋ ์ ๊ฑฐ๋ฅผ ์ํ ์ ๋ฆฌ ์์
์ถ๊ฐ
### ๋ง์ด๊ทธ๋ ์ด์
์ ์ํ ์์
ํ์
๋ง์ด๊ทธ๋ ์ด์
์์
์ ๋ชฉ์ ์ ๋ช
ํํ ํ์ํด์ผ ํฉ๋๋ค:
```
"์์
์ ์๋ก๊ณ ์นจํ ํ ๋ค์์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค:
- [ ] 2.4 MongoDB ์คํค๋ง๋ฅผ PostgreSQL ํ
์ด๋ธ๋ก ๋ง์ด๊ทธ๋ ์ด์
- ํ์ผ: src/database/migrations/mongo-to-postgres.ts
- ๋ฌธ์ ์คํค๋ง๋ฅผ ๊ด๊ณํ ํ
์ด๋ธ๋ก ๋ณํ
- ์๋ฒ ๋๋ ๋ฌธ์๋ฅผ ์ธ๋ ํค ๊ด๊ณ๋ก ๋งคํ
- ๋ชจ๋ ๊ธฐ์กด ๋ฐ์ดํฐ ๊ด๊ณ ๋ณด์กด
- ๋ชฉ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ์ด์ด๋ฅผ ์ ์ํคํ
์ฒ๋ก ์ ํ
- _ํ์ฉ: ์์
2.1-2.3์์ ์๋ฃ๋ MongoDB ์คํค๋ง_
- _์๊ตฌ์ฌํญ: ์ค๊ณ ์น์
3.2_"
```
### AI์๊ฒ ๋ณ๊ฒฝ์ฌํญ ์ ๋ฌ
spec ๋ณ๊ฒฝ์ฌํญ์ AI์๊ฒ ์๋ฆด ๋:
#### ๋ณ๊ฒฝ์ฌํญ๊ณผ ์ํฅ์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
```
"๊ฒฐ์ ์ฒ๋ฆฌ ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. PayPal ๋์ Stripe๊ฐ ํ์์
๋๋ค. ์ด๋ฏธ PayPal webhook ํธ๋ค๋ฌ๋ฅผ ๊ตฌํํ์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์
์์
์ ํฌํจํ์ฌ ์ด ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํ๋๋ก tasks.md๋ฅผ ์
๋ฐ์ดํธํด์ฃผ์ธ์."
```
#### ๋ณด์กด ๋ฐ ๋ง์ด๊ทธ๋ ์ด์
์ ์ํ ์ปจํ
์คํธ ์ ๊ณต
```
"MongoDB์์ PostgreSQL๋ก ์ด๋ํ๋๋ผ๋ ์ด๋ฏธ ์๋ฃ๋ ์์
์ด๋ฏ๋ก ์๋ฃ๋ ๋ชจ๋ MongoDB ์์
์ ์ ์งํด์ฃผ์ธ์. ๊ตฌํ๋ MongoDB ์ฝ๋๋ฅผ PostgreSQL๋ก ์ ํํ๋ ๋ง์ด๊ทธ๋ ์ด์
์์
์ ์ถ๊ฐํด์ฃผ์ธ์."
```
#### ๊ฒ์ฆ ์์ฒญ
```
"tasks.md ์
๋ฐ์ดํธ ํ requirements.md์ ๋ชจ๋ ์๊ตฌ์ฌํญ์ ํด๋น ์์
์ด ์๋์ง, ์ํคํ
์ฒ ๋ณ๊ฒฝ์ ์ํ ๋ง์ด๊ทธ๋ ์ด์
๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋์ง, ์ ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๋ํ ๋๊ธฐ ์ค์ธ ์์
์ด ์๋์ง ํ์ธํด์ฃผ์ธ์."
```
### ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ต
์ฃผ์ ์ํคํ
์ฒ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ AI๋ ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์
์ ์ง์ํ๋ ์์
์ ์์ฑํด์ผ ํฉ๋๋ค:
1. ๊ธฐ์กด ๊ฒ๊ณผ ํจ๊ป ์ ์ํคํ
์ฒ ๊ตฌํ
2. ํธํ์ฑ ๋ ์ด์ด ์์
์ถ๊ฐ
3. ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
4. ๊ฐ ๋ง์ด๊ทธ๋ ์ด์
๋จ๊ณ ๊ฒ์ฆ
5. ์ ์ฒด ๊ฒ์ฆ ํ์๋ง ์ด์ ๊ตฌํ ์ ๊ฑฐ
์ด๋ฅผ ํตํด ์ ํ ๊ธฐ๊ฐ ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ด ๊ณ์ ์๋ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
### Refresh Tasks ํ๋กฌํํธ ์ฌ์ฉ
refresh tasks ํ๋กฌํํธ๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ ์๋ ์์ต๋๋ค:
```
"user-auth spec์ ๋ํด refresh-tasks ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํด์ค. ๋ณ๊ฒฝ์ฌํญ์: ์ธ์ฆ์ JWT์์ OAuth2๋ก ์ ํ."
```
๊ทธ๋ฌ๋ฉด AI๋ ํฌ๊ด์ ์ธ ์๋ก๊ณ ์นจ ์ง์นจ์ ๋ฐ๋ผ ์๋ฃ๋ ๋ชจ๋ ์์
์ ๋ณด์กดํ๋ฉด์ ์์
์ ์
๋ฐ์ดํธํฉ๋๋ค.
## ๊ณ ๊ธ ํจํด
### ๋ฉํฐ Spec ์ํฌํ๋ก์ฐ
#### ๊ด๋ จ Spec
```
"๋ค์๊ณผ ํตํฉ๋๋ admin-dashboard spec ๋ง๋ค์ด์ค:
- user-management spec
- analytics spec
- reporting spec"
```
#### Spec ์ข
์์ฑ
```
"๋ค์์ ์์กดํ๋ notifications spec ๋ง๋ค์ด์ค:
- user-auth ์๋ฃ
- message-queue ๊ตฌํ
- email-service ์ฌ์ฉ ๊ฐ๋ฅ"
```
### ์ ์ง์ ๊ฐ๋ฐ
#### MVP ์ฐ์
```
"๋ค์๋ง ํฌํจํ๋ user-profiles MVP spec ๋ง๋ค์ด์ค:
- ๊ธฐ๋ณธ ํ๋กํ ์์ฑ
- ํ์ ์ด๋ฆ๊ณผ ์๋ฐํ
- ๊ณต๊ฐ ํ๋กํ ๋ณด๊ธฐ
(์์
๊ธฐ๋ฅ์ ๋์ค์ ์ถ๊ฐํ ๊ฒ์)"
```
#### ๊ฐ์ Spec
```
"๋ค์์ ์ถ๊ฐํ๋ user-auth ๊ฐ์ spec ๋ง๋ค์ด์ค:
- ์์
๋ก๊ทธ์ธ (Google, GitHub)
- ์์ฒด ์ธ์ฆ
- ํฅ์๋ ์ธ์
๊ด๋ฆฌ
- ๊ณ์ ์ฐ๊ฒฐ"
```
### ๋ณต์กํ ์๋๋ฆฌ์ค
#### ๋ง์ด๊ทธ๋ ์ด์
Spec
```
"MongoDB์์ PostgreSQL๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ spec ๋ง๋ค์ด์ค:
- ํ์ฌ ์คํค๋ง ๋ฌธ์ํ
- ์ ๊ด๊ณํ ๊ตฌ์กฐ ์ค๊ณ
- ๋ฌด์ค๋จ ๋ง์ด๊ทธ๋ ์ด์
๊ณํ
- ๋กค๋ฐฑ ์ ์ฐจ ํฌํจ"
```
#### ๋ฆฌํฉํ ๋ง Spec
```
"๋ค์์ ์ํ ๋ฆฌํฉํ ๋ง spec ๋ง๋ค์ด์ค:
- ๋ชจ๋๋ฆฌ์ค๋ฅผ ์๋น์ค๋ก ๋ถํ
- ๊ณต์ ์ปดํฌ๋ํธ ์ถ์ถ
- ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ 80%๋ก ๊ฐ์
- ํ์ ํธํ์ฑ ์ ์ง"
```
#### ์ฑ๋ฅ Spec
```
"์ฑ๋ฅ ์ต์ ํ spec ๋ง๋ค์ด์ค:
- ํ์ฌ ๋ณ๋ชฉ ์ง์ ํ๋กํ์ผ๋ง
- ์บ์ฑ ์ ๋ต ์ค๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ฑ ๊ณํ
- ๋ชจ๋ํฐ๋ง ๊ตฌํ"
```
## ์ํฌํ๋ก์ฐ ์กฐํฉ
### ์์ ํ ๊ธฐ๋ฅ ํ๋ฆ
```
1. "ํ๋ก์ ํธ๋ฅผ ์ํ steering ๋ฌธ์ ๋ง๋ค์ด์ค"
2. "์ฌ์ฉ์ ์ธ์ฆ์ ์ํ spec ๋ง๋ค์ด์ค"
3. "์๊ตฌ์ฌํญ ๊ฒํ ๋ฐ ์น์ธ"
4. "์ค๊ณ ๊ฒํ ๋ฐ ์น์ธ"
5. "์์
1.1 ๊ตฌํ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง"
6. "์์
1.2 ๊ตฌํ - ์ธ์ฆ ์๋น์ค"
7. "์ธ์ฆ ํ๋ฆ์ ๋ํ ํ
์คํธ ๋ง๋ค์ด์ค"
8. "๋ชจ๋ ์์
์ ์๋ฃ๋ก ํ์"
```
### ๋ณ๋ ฌ ๊ฐ๋ฐ
```
"๋ด๊ฐ ์๊ตฌ์ฌํญ์ ๊ฒํ ํ๋ ๋์ API ์ค๊ณ ์ด์์ ์์ํด์ค"
"ํ๋ก ํธ์๋์ ๋ฐฑ์๋ spec์ ๋ณ๋ ฌ๋ก ๋ง๋ค์ด์ค"
"๋ฐฑ์๋ ํ์ด API ์์
์ ํ๋ ๋์ UI ์์
์ฒ๋ฆฌํด์ค"
```
### ๋ฐ๋ณต์ ๊ฐ์
```
1. "๊ฒ์์ ์ํ ์ด๊ธฐ spec ๋ง๋ค์ด์ค"
2. "๊ธฐ๋ณธ ๊ฒ์ ๊ตฌํ (์์
1-3)"
3. "๊ณ ๊ธ ๊ฒ์์ ์ํ ๊ฐ์ spec ๋ง๋ค์ด์ค"
4. "ํํฐ๋ง ๋ฐ ์ ๋ ฌ ๊ธฐ๋ฅ ์ถ๊ฐ"
5. "๊ฒ์ ์ฑ๋ฅ์ ์ํ ์ต์ ํ spec ๋ง๋ค์ด์ค"
```
## ์ปจํ
์คํธ ์ธ์ ํ๋กฌํํธ
### ํ๋ก์ ํธ ์ปจํ
์คํธ ์ฌ์ฉ
```
"์ฐ๋ฆฌ์ ๊ธฐ์กด ํจํด์ ๋ฐ๋ฅด๋ spec ๋ง๋ค์ด์ค"
"์ฐ๋ฆฌ ์ฝ๋๋ฒ ์ด์ค์ ์ผ๊ด๋๊ฒ ์ด ์์
๊ตฌํํด์ค"
"์ฐ๋ฆฌ์ ํ์ฌ ์ํคํ
์ฒ์ ํตํฉ๋๋๋ก ์ด ๊ธฐ๋ฅ ์ค๊ณํด์ค"
```
### ๋ค๋ฅธ Spec ์ฐธ์กฐ
```
"user-auth์ ์ ์ฌํ์ง๋ง ๊ด๋ฆฌ์ ์ธ์ฆ์ ์ํ spec ๋ง๋ค์ด์ค"
"payment spec๊ณผ ๋์ผํ ์ค๊ณ ํจํด ์ฌ์ฉํด์ค"
"์ฐ๋ฆฌ notification spec์ ์์
๊ตฌ์กฐ๋ฅผ ๋ฐ๋ผ์ค"
```
### ์ด์ ์์
์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ
```
"user-auth spec์ ํ ๊ด๋ฆฌ ํฌํจํ๋๋ก ํ์ฅํด์ค"
"๊ธฐ์กด REST API spec์ GraphQL ์ง์ ์ถ๊ฐํด์ค"
"search spec์ ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ ํด์ค"
```
## ํจ๊ณผ์ ์ธ ํ๋กฌํํ
์ ์ํ ํ
### ๊ตฌ์ฒด์ ์ผ๋ก
โ **๋ชจํธํจ**: "๋ก๊ทธ์ธ spec ๋ง๋ค์ด์ค"
โ
**๊ตฌ์ฒด์ **: "2FA, ์๋ ๋ก๊ทธ์ธ ์ ์ง, ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ด ํฌํจ๋ ์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ ๋ก๊ทธ์ธ spec ๋ง๋ค์ด์ค"
### ์ปจํ
์คํธ ์ ๊ณต
โ **์ปจํ
์คํธ ์์**: "์์
๊ตฌํํด์ค"
โ
**์ปจํ
์คํธ ํฌํจ**: "์ฐ๋ฆฌ์ ๊ธฐ์กด Express ๋ฏธ๋ค์จ์ด์ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ ์์
1.2 ๊ตฌํํด์ค"
### ๋ช
ํํ ๊ธฐ๋์น ์ค์
โ **๋ถ๋ช
ํ**: "๋ ์ข๊ฒ ๋ง๋ค์ด์ค"
โ
**๋ช
ํ**: "200ms ๋ฏธ๋ง์ ์๋ต ์๊ฐ์ผ๋ก ํ์ฌ ํธ๋ํฝ์ 10๋ฐฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋ฅผ ๊ฐ์ ํด์ค"
### ์ ์ง์ ์์ฒญ ์ฌ์ฉ
โ **๋๋ฌด ๋ง์**: "5๊ฐ์ spec ๋ง๋ค๊ณ ๋ชจ๋ ๊ฒ ๊ตฌํํด์ค"
โ
**์ ์ง์ **: "๋จผ์ user-auth spec์ ๋ง๋ค๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๊ฒํ ํ ๊ฒ์"
### ๊ธฐ์กด ์์
์ฐธ์กฐ
โ **์๋ก ์์**: "์ ๊ฒฐ์ ์์คํ
๋ง๋ค์ด์ค"
โ
**๊ธฐ๋ฐ ๊ตฌ์ถ**: "์ฐ๋ฆฌ์ payment spec์ ๊ตฌ๋
์ฒญ๊ตฌ ์ถ๊ฐํ๋๋ก ๊ฐ์ ํด์ค"
## ์ผ๋ฐ ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ
### CRUD ์์
```
"๋ค์์ ํฌํจํ๋ ์ ํ์ ๋ํ CRUD ์์
spec ๋ง๋ค์ด์ค:
- ๊ฒ์ฆ๊ณผ ํจ๊ป ์์ฑ
- ํ์ด์ง๋ค์ด์
๋ฐ ํํฐ๋ง๊ณผ ํจ๊ป ์ฝ๊ธฐ
- ๋๊ด์ ์ ๊ธ๊ณผ ํจ๊ป ์
๋ฐ์ดํธ
- ๋ณต๊ตฌ ์ต์
์ด ์๋ ์ํํธ ์ญ์ "
```
### ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ
```
"๋ค์์ ํฌํจํ๋ ์ธ์ฆ spec ๋ง๋ค์ด์ค:
- JWT ๊ธฐ๋ฐ ์ธ์ฆ
- ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด
- API ํค ๊ด๋ฆฌ
- ์ธ์
์ฒ๋ฆฌ
- ๋ฆฌํ๋ ์ ํ ํฐ ๋กํ
์ด์
"
```
### ์ค์๊ฐ ๊ธฐ๋ฅ
```
"๋ค์์ ํฌํจํ๋ ์ค์๊ฐ ์ฑํ
spec ๋ง๋ค์ด์ค:
- WebSocket ์ฐ๊ฒฐ
- ๋ฉ์์ง ์ง์์ฑ
- ํ์ดํ ํ์๊ธฐ
- ์ฝ์ ํ์ธ
- ์คํ๋ผ์ธ ๋ฉ์์ง ํ"
```
### ํ์ผ ๊ด๋ฆฌ
```
"๋ค์์ ํฌํจํ๋ ํ์ผ ์
๋ก๋ spec ๋ง๋ค์ด์ค:
- ๋์ฉ๋ ํ์ผ์ ์ํ ์ฒญํฌ ์
๋ก๋
- ์งํ ์ํฉ ์ถ์
- ์ฌ๊ฐ ๊ธฐ๋ฅ
- ๋ฐ์ด๋ฌ์ค ์ค์บ
- CDN ํตํฉ"
```
### ๋ถ์ ๋ฐ ๋ณด๊ณ
```
"๋ค์์ ํฌํจํ๋ ๋ถ์ spec ๋ง๋ค์ด์ค:
- ์ด๋ฒคํธ ์ถ์
- ์ฌ์ฉ์ ์ ์ ์ฐจ์
- ์ค์๊ฐ ๋์๋ณด๋
- ์์ฝ๋ ๋ณด๊ณ ์
- ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์ต์
"
```
## ๋ฌธ์ ํด๊ฒฐ ํ๋กฌํํธ
### ๋ฌธ์ ๋ฐ์ ์
```
"์ด spec์ด ํ์๋์ง ์๋ ์ด์ ๋?"
"์์
์ด ์๋ฃ๋์ง ์๋ ์ด์ ๋๋ฒ๊ทธํด์ค"
"์น์ธ์ ๋ง๊ณ ์๋ ๊ฒ์ ๋ญ์ผ?"
"์ด ์๋ฌ๋ฅผ ์ดํดํ๋๋ก ๋์์ค"
```
### ๋งํ ํด์
```
"๋ค์์ ๋ญ ํด์ผ ํด?"
"์งํ์ ๋ง๊ณ ์๋ ๊ฒ ๋ณด์ฌ์ค"
"๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ฒ๋ฆฌํ ์ ์๋ ์์
์ ๋ญ์ผ?"
"์ด ์ข
์์ฑ์ ์ด๋ป๊ฒ ํด๊ฒฐํด?"
```
## ๊ด๋ จ ๋ฌธ์
- [์ฌ์ฉ์ ๊ฐ์ด๋](USER-GUIDE.md) - ์ผ๋ฐ ์ฌ์ฉ ์ง์นจ
- [์ํฌํ๋ก์ฐ ํ๋ก์ธ์ค](WORKFLOW.md) - ์ํฌํ๋ก์ฐ ์ดํด
- [๋๊ตฌ ์ฐธ์กฐ](TOOLS-REFERENCE.md) - ์์ ํ ๋๊ตฌ ๋ฌธ์
- [๋ฌธ์ ํด๊ฒฐ](TROUBLESHOOTING.md) - ์ผ๋ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ