Skip to main content
Glama
DESIGN_TEMPLATE.mdβ€’5.51 kB
# 🎯 ν”„λ‘œμ νŠΈ 섀계 κ°€μ΄λ“œ ν…œν”Œλ¦Ώ > **λͺ©μ **: Claude Code와 ν˜‘μ—… μ‹œ 일관성 확보 및 μ‹€μˆ˜ λ°©μ§€ > **μ‚¬μš©λ²•**: ν”„λ‘œμ νŠΈ μ‹œμž‘ μ „ 이 ν…œν”Œλ¦Ώμ„ λ³΅μ‚¬ν•˜μ—¬ μž‘μ„± ## πŸ“‹ **1. ν”„λ‘œμ νŠΈ κΈ°λ³Έ 정보** ### ν”„λ‘œμ νŠΈλͺ… `[ν”„λ‘œμ νŠΈλͺ…]` ### ν”„λ‘œμ νŠΈ μœ ν˜• - [ ] MVP/ν”„λ‘œν† νƒ€μž… (λΉ λ₯Έ 개발 μš°μ„ ) - [ ] ν”„λ‘œλ•μ…˜ (ν’ˆμ§ˆ/ν™•μž₯μ„± μš°μ„ ) - [ ] 개인 ν”„λ‘œμ νŠΈ - [ ] νŒ€ ν”„λ‘œμ νŠΈ - [ ] ν΄λΌμ΄μ–ΈνŠΈ ν”„λ‘œμ νŠΈ ### 개발 κΈ°κ°„ - **μ‹œμž‘μΌ**: YYYY-MM-DD - **λͺ©ν‘œ μ™„λ£ŒμΌ**: YYYY-MM-DD - **μ˜ˆμƒ κΈ°κ°„**: Nμ£Ό --- ## πŸ› οΈ **2. 기술 μŠ€νƒ (FIXED - μ ˆλŒ€ λ³€κ²½ κΈˆμ§€)** ### Backend - **Runtime**: Node.js 18+ - **Framework**: Express.js - **Database**: SQLite3 (sqlite3 νŒ¨ν‚€μ§€λ§Œ μ‚¬μš©) - **ORM/쿼리**: 직접 SQL 쿼리 - **인증**: JWT ### Frontend (ν•΄λ‹Ήμ‹œ) - **Framework**: React/Vue/Vanilla - **λΉŒλ“œ 도ꡬ**: Vite/Webpack - **μŠ€νƒ€μΌλ§**: CSS/Tailwind ### 개발 도ꡬ - **νŒ¨ν‚€μ§€ κ΄€λ¦¬μž**: npm - **μ½”λ“œ ν’ˆμ§ˆ**: ESLint + Prettier - **ν…ŒμŠ€νŠΈ**: Jest (ν•„μš”μ‹œ) --- ## πŸ“ **3. μ½”λ”© κ·œμΉ™ (MANDATORY - λ°˜λ“œμ‹œ μ€€μˆ˜)** ### 넀이밍 μ»¨λ²€μ…˜ - **λ°μ΄ν„°λ² μ΄μŠ€**: snake_case (created_at, updated_at, user_id) - **JavaScript λ³€μˆ˜**: camelCase (userId, createdAt) - **파일λͺ…**: kebab-case (user-controller.js) - **API μ—”λ“œν¬μΈνŠΈ**: kebab-case (/api/user-profile) ### λ°μ΄ν„°λ² μ΄μŠ€ κ·œμΉ™ - **Primary Key**: 항상 `id` (INTEGER PRIMARY KEY) - **νƒ€μž„μŠ€νƒ¬ν”„**: created_at, updated_at (DATETIME) - **μ™Έλž˜ν‚€**: [table]_id (user_id, post_id) - **Boolean**: 0/1 (is_active, is_deleted) ### API 응닡 ν˜•μ‹ ```javascript // 성곡 응닡 { "success": true, "data": { ... } } // μ—λŸ¬ 응닡 { "success": false, "error": "μ—λŸ¬ λ©”μ‹œμ§€" } ``` ### μ—λŸ¬ 처리 - **λͺ¨λ“  async ν•¨μˆ˜**: try-catch ν•„μˆ˜ - **λ°μ΄ν„°λ² μ΄μŠ€ μ—λŸ¬**: λ‘œκΉ… + μ‚¬μš©μž μΉœν™”μ  λ©”μ‹œμ§€ - **404 μ—λŸ¬**: λͺ…ν™•ν•œ λ©”μ‹œμ§€ 제곡 --- ## 🚫 **4. κΈˆμ§€μ‚¬ν•­ (FORBIDDEN - μ ˆλŒ€ μ‚¬μš© κΈˆμ§€)** ### νŒ¨ν‚€μ§€ κΈˆμ§€ - ❌ `better-sqlite3` (sqlite3만 μ‚¬μš©) - ❌ `sequelize`, `prisma` (직접 SQL만) - ❌ `mongoose` (MongoDB μ‚¬μš© μ•ˆ 함) ### 넀이밍 κΈˆμ§€ - ❌ camelCase λ°μ΄ν„°λ² μ΄μŠ€ 컬럼 (CreateAt, UserId λ“±) - ❌ λŒ€λ¬Έμž μ‹œμž‘ λ³€μˆ˜λͺ… (CreateUser, GetData λ“±) - ❌ μ•½μ–΄ λ‚¨μš© (usr, prd, usr_id λŒ€μ‹  user_id) ### μ½”λ”© νŒ¨ν„΄ κΈˆμ§€ - ❌ 직접 λ°μ΄ν„°λ² μ΄μŠ€ μ ‘κ·Ό (μ»¨νŠΈλ‘€λŸ¬μ—μ„œ 직접 쿼리) - ❌ κΈ€λ‘œλ²Œ λ³€μˆ˜ μ‚¬μš© - ❌ console.log ν”„λ‘œλ•μ…˜ μ½”λ“œμ— 남기기 - ❌ ν•˜λ“œμ½”λ”©λœ μ„€μ •κ°’ --- ## πŸ—οΈ **5. μ•„ν‚€ν…μ²˜ 섀계 (SuperClaude νŒ¨ν„΄ 적용)** ### 폴더 ꡬ쑰 ``` ν”„λ‘œμ νŠΈ/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ controllers/ # API μ—”λ“œν¬μΈνŠΈ 둜직 β”‚ β”œβ”€β”€ models/ # 데이터 λͺ¨λΈ 및 DB μ ‘κ·Ό β”‚ β”œβ”€β”€ middleware/ # 인증, λ‘œκΉ… λ“± β”‚ β”œβ”€β”€ utils/ # 헬퍼 ν•¨μˆ˜ β”‚ └── routes/ # λΌμš°νŒ… μ„€μ • β”œβ”€β”€ database/ β”‚ β”œβ”€β”€ schema.sql # ν…Œμ΄λΈ” μ •μ˜ β”‚ └── migrations/ # DB 변경사항 β”œβ”€β”€ tests/ # ν…ŒμŠ€νŠΈ 파일 └── docs/ # 섀계 λ¬Έμ„œ ``` ### API 섀계 원칙 - **RESTful**: GET, POST, PUT, DELETE 의미 μ€€μˆ˜ - **응닡 ν˜•μ‹ 톡일**: μœ„ API 응닡 ν˜•μ‹ μ‚¬μš© - **HTTP μƒνƒœμ½”λ“œ**: 200, 201, 400, 401, 404, 500 적절히 μ‚¬μš© - **μ—λŸ¬ 처리**: μΌκ΄€λœ μ—λŸ¬ 응닡 ꡬ쑰 ### λ°μ΄ν„°λ² μ΄μŠ€ 섀계 원칙 - **μ •κ·œν™”**: 3NFκΉŒμ§€ μ •κ·œν™” 적용 - **인덱슀**: 자주 κ²€μƒ‰λ˜λŠ” μ»¬λŸΌμ— 인덱슀 생성 - **μ œμ•½μ‘°κ±΄**: NOT NULL, UNIQUE, FOREIGN KEY 적절히 μ‚¬μš© --- ## βœ… **6. 검증 체크리슀트 (Validation)** ### 섀계 검증 - [ ] μš”κ΅¬μ‚¬ν•­μ΄ 기술 μŠ€νƒμœΌλ‘œ κ΅¬ν˜„ κ°€λŠ₯ν•œκ°€? - [ ] μ½”λ”© κ·œμΉ™μ΄ λͺ…ν™•νžˆ μ •μ˜λ˜μ—ˆλŠ”κ°€? - [ ] κΈˆμ§€μ‚¬ν•­μ΄ ꡬ체적으둜 λͺ…μ‹œλ˜μ—ˆλŠ”κ°€? - [ ] API 섀계가 RESTful 원칙을 λ”°λ₯΄λŠ”κ°€? - [ ] λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆκ°€ μ •κ·œν™”λ˜μ—ˆλŠ”κ°€? ### μœ μ§€λ³΄μˆ˜μ„± 검증 - [ ] 6κ°œμ›” 후에도 이해할 수 μžˆλŠ” ꡬ쑰인가? - [ ] μƒˆλ‘œμš΄ κ°œλ°œμžκ°€ μ‰½κ²Œ 이해할 수 μžˆλŠ”κ°€? - [ ] ν™•μž₯ μ‹œ κΈ°μ‘΄ μ½”λ“œ μˆ˜μ •μ„ μ΅œμ†Œν™”ν•  수 μžˆλŠ”κ°€? ### Claude Code ν˜‘μ—… 검증 - [ ] Claudeκ°€ ν—·κ°ˆλ¦΄ 수 μžˆλŠ” 뢀뢄이 λͺ…μ‹œλ˜μ—ˆλŠ”κ°€? - [ ] 이전 μ‹€μˆ˜λ“€μ΄ κΈˆμ§€μ‚¬ν•­μ— ν¬ν•¨λ˜μ—ˆλŠ”κ°€? - [ ] 일관성 μžˆλŠ” νŒ¨ν„΄μ΄ μ •μ˜λ˜μ—ˆλŠ”κ°€? --- ## πŸ€– **7. Claude Code ν˜‘μ—… κ°€μ΄λ“œ** ### μž‘μ—… μ‹œμž‘ μ „ λ°˜λ“œμ‹œ 확인 1. "이 ν”„λ‘œμ νŠΈμ˜ 섀계 λ¬Έμ„œλ₯Ό λ¨Όμ € μ½μ–΄μ£Όμ„Έμš”" 2. "κΈ°μ‘΄ νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•΄μ£Όμ„Έμš”" 3. "κΈˆμ§€μ‚¬ν•­μ„ μœ„λ°˜ν•˜μ§€ μ•Šμ•˜λŠ”μ§€ μ²΄ν¬ν•΄μ£Όμ„Έμš”" ### μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€ μ‹œ 1. κΈ°μ‘΄ 파일 ꡬ쑰 확인 2. 넀이밍 μ»¨λ²€μ…˜ μ€€μˆ˜ 확인 3. API 응닡 ν˜•μ‹ 일치 확인 4. μ—λŸ¬ 처리 νŒ¨ν„΄ 일치 확인 ### 문제 λ°œμƒ μ‹œ 1. 섀계 λ¬Έμ„œ λ‹€μ‹œ 확인 2. κΈ°μ‘΄ κ΅¬ν˜„λœ λΉ„μŠ·ν•œ κΈ°λŠ₯ μ°Έμ‘° 3. νŒ¨ν„΄ 일관성 μš°μ„  κ³ λ € --- ## πŸ“ **8. λ³€κ²½ 이λ ₯** | λ‚ μ§œ | 버전 | λ³€κ²½ λ‚΄μš© | λ‹΄λ‹Ήμž | |------|------|-----------|--------| | YYYY-MM-DD | 1.0 | 초기 섀계 | [이름] | | | | | | --- **🎯 이 λ¬Έμ„œλŠ” Claude Codeμ™€μ˜ ν˜‘μ—…μ—μ„œ 일관성 확보와 μ‹€μˆ˜ λ°©μ§€λ₯Ό μœ„ν•œ 핡심 κ°€μ΄λ“œμž…λ‹ˆλ‹€.** **ν”„λ‘œμ νŠΈ μ‹œμž‘ μ „ λ°˜λ“œμ‹œ μž‘μ„±ν•˜κ³ , μž‘μ—… 쀑 μˆ˜μ‹œλ‘œ μ°Έμ‘°ν•˜μ„Έμš”!**

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/foswmine/workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server