Development search and discovery assistant
Developer Search Assistant Skill์ ์ ๋ฌธ ๊ฒ์ MCP ์๋ฒ์ ์ฝ์ ์ ๋ณด์ํ๋ ๋ณด์กฐ ๋๊ตฌ์ ๋๋ค. MCP ์๋ฒ๊ฐ ์ ๊ณตํ๋ raw ๋ฐ์ดํฐ๋ฅผ ํด์ํ๊ณ , ๋น๊ต ๋ถ์ํ๋ฉฐ, ์์ฌ๊ฒฐ์ ์ ์ง์ํฉ๋๋ค. MCP ์๋ฒ๊ฐ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์คํจํ ๋ **๋์ฒด ๋ฐฉ๋ฒ(fallback)**์ ์ ์ํ๊ณ , ๊ฒ์ ๊ฒฐ๊ณผ์ ์ ๋ขฐ๋๋ฅผ ํ๊ฐํฉ๋๋ค.
[์ฌ์ฉ์ ์ง๋ฌธ]
โ
[MCP ์๋ฒ] (1์ฐจ) โโโโโโ raw ๋ฐ์ดํฐ (stars, ๋ฒ์ , ํฌํ ์)
โ โ
[์ด Skill] (2์ฐจ) โโโโโโโโโ ๋ฐ์ดํฐ ํด์ + ๋งฅ๋ฝ ์ ๊ณต
โ
[์์ฌ๊ฒฐ์ ์ง์] (์ต์ข
) โ "๋น์ ์ ํ๋ก์ ํธ์๋ FastAPI๊ฐ ์ ํฉํฉ๋๋ค"
MCP ์๋ฒ ์คํ ํ
๋น๊ต ๋ถ์ ํ์ ์
MCP ์คํจ ์ (Fallback)
์์ฌ๊ฒฐ์ ์ง์
GitHub Stars ํด์
MCP ๋ฐํ: "FastAPI: 68,523 stars"
Skill ํด์:
โ
๋งค์ฐ ๋์ (์์ 0.1%)
๐ ์ฆ๊ฐ์จ: +15,000/๋
(๊ธ์ฑ์ฅ)
๐ฅ ํธ๋ ๋: 2020๋
์ดํ ํญ๋ฐ์ ์ฑ์ฅ
๐ฌ ์ปค๋ฎค๋ํฐ: ๋งค์ฐ ํ๋ฐ (์ด์ ์๋ต ์๊ฐ < 24์๊ฐ)
PyPI ๋ฒ์ ํด์
MCP ๋ฐํ: "v0.120.0 (2024-10-15), v0.115.0 (2024-09-20)"
Skill ํด์:
โ
์์ ์ ๋ฆด๋ฆฌ์ฆ ์ฃผ๊ธฐ (์ 1-2ํ)
โ ๏ธ ์ต์ ๋ฒ์ ์ฌ์ฉ ๊ถ์ฅ (๋ณด์ ํจ์น ํฌํจ)
๐ Breaking changes: ์์ (v0.100+ ์์ )
๐ ํ๋ก๋์
์ ํฉ๋: ๋์
Stack Overflow ํฌํ ์ ํด์
MCP ๋ฐํ: "์ง๋ฌธ 3๊ฐ ์ฐพ์ (ํฌํ: 150, 45, 8)"
Skill ํด์:
โญ ์ต๊ณ ํฌํ ๋ต๋ณ ์ ๋ขฐ๋: ๋งค์ฐ ๋์
๐
์์ฑ ๋ ์ง: 2023-05-10 (์ต์ )
โ
Accepted answer: ์์
โ ๏ธ ์ฃผ์: 3๋ฒ์งธ ๋ต๋ณ์ ๊ตฌ๋ฒ์ API (๋ฌด์)
ํ๋ ์์ํฌ ๋น๊ต ํ ํ๋ฆฟ
### FastAPI vs Django ์ข
ํฉ ๋น๊ต
| ๊ธฐ์ค | FastAPI | Django | ์น์ |
|------|---------|--------|------|
| **์ฑ๋ฅ** | 65k req/s | 12k req/s | FastAPI โญ |
| **์ํ๊ณ** | ์ฑ์ฅ ์ค (3๋
) | ์ฑ์ํจ (15๋
) | Django โญ |
| **ํ์ต ๊ณก์ ** | ๊ฐํ๋ฆ (๋น๋๊ธฐ) | ์๋งํจ (ํํ ๋ฆฌ์ผ ๋ง์) | Django โญ |
| **๋ฌธ์** | ์ฐ์ (์๋ ์์ฑ) | ์ฐ์ (๊ณต์ ๋ฌธ์) | ๋์ |
| **์ปค๋ฎค๋ํฐ** | 68k stars | 76k stars | Django โญ |
| **ํ๋ก๋์
** | 2020๋
~ | 2005๋
~ | Django โญ |
**์ถ์ฒ ๊ฒฐ์ ํธ๋ฆฌ**:
- API ์ ์ฉ ์๋น์ค + ๊ณ ์ฑ๋ฅ ํ์ โ **FastAPI**
- ์ ์ฒด ์น ์ฑ + ์์ ์ฑ ์ต์ฐ์ โ **Django**
- ๋ง์ดํฌ๋ก์๋น์ค + ๋น๋๊ธฐ ํ์ โ **FastAPI**
- ์ด๋๋ฏผ ํ๋ + ORM ํ์ โ **Django**
GitHub API 403 ์ค๋ฅ ํด๊ฒฐ
### ์ฆ์
MCP ์๋ฒ๊ฐ `GitHub API returned 403` ์ค๋ฅ
### ์์ธ
1. Rate limit ์ด๊ณผ (์๊ฐ๋น 60 req)
2. ๋คํธ์ํฌ ์ฐจ๋จ (Claude ํ๊ฒฝ ์ ์ฝ)
3. Personal Access Token ์์
### ๋์ฒด ๋ฐฉ๋ฒ (์ฐ์ ์์)
**๋ฐฉ๋ฒ 1: ์น ๊ฒ์ ๋๊ตฌ ์ฌ์ฉ** (๊ฐ์ฅ ๋น ๋ฆ)
Claude์ web_search ๋๊ตฌ๋ก GitHub ํ์ด์ง ์ง์ ๋ฐฉ๋ฌธ
web_search("FastAPI GitHub") โ https://github.com/tiangolo/fastapi โ stars ์์น ํ์ธ
**๋ฐฉ๋ฒ 2: ์๋ ๊ฒ์ ๊ฐ์ด๋** (5๋ถ)
1. ๋ธ๋ผ์ฐ์ ์์ `github.com/search?q=fastapi` ๋ฐฉ๋ฌธ
2. Sort by stars ํด๋ฆญ
3. ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ ํด๋ฆญ
4. stars/forks/last update ํ์ธ
**๋ฐฉ๋ฒ 3: ๋์ฒด ๋ฐ์ดํฐ ์์ค**
- GitHub Trending: `https://github.com/trending`
- Libraries.io: `https://libraries.io/search?q=fastapi`
- Best of Python: `https://github.com/ml-tooling/best-of-python`
**๋ฐฉ๋ฒ 4: ์บ์๋ ๋ฐ์ดํฐ ํ์ฉ**
"์ ๊ฐ ์ต๊ทผ(2024-10-24) ํ์ธํ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ๋๋ฆฝ๋๋ค:
FastAPI: 68,523 stars (ยฑ2,000 ์ค์ฐจ ๋ฒ์)
Django: 76,102 stars"
ํ๊ฐ ๊ธฐ์ค 5๊ฐ์ง
### 1. ์ถ์ฒ ์ ๋ขฐ๋
- โญโญโญ ๊ณต์ API (GitHub, PyPI, npm)
- โญโญ ์ปค๋ฎค๋ํฐ ๊ฒ์ฆ (Stack Overflow ํฌํ 100+)
- โญ ๊ฐ์ธ ๋ธ๋ก๊ทธ/ํฌ๋ผ (๊ต์ฐจ ๊ฒ์ฆ ํ์)
### 2. ์๊ฐ์ฑ
- โ
์ต์ (2024๋
)
- โ ๏ธ 1-2๋
์ (์ฃผ์)
- โ 3๋
์ด์ (๊ตฌ์, ๋ฌด์)
### 3. ์ผ๊ด์ฑ
๋ค์์ ์ถ์ฒ๊ฐ ๋์ผํ ๊ฒฐ๊ณผ โ ์ ๋ขฐ๋ โ
์: GitHub (68k stars), Libraries.io (68k), Reddit (70k) โ ์ผ์น
### 4. ํธํฅ ํ์ง
- ์คํฐ์/๊ด๊ณ ์ฌ๋ถ
- ํน์ ํ์ฌ ํ๋ณด์ฑ ์ฝํ
์ธ
- ๊ฐ๊ด์ ์งํ vs ์ฃผ๊ด์ ์๊ฒฌ ๊ตฌ๋ถ
### 5. ๊ต์ฐจ ๊ฒ์ฆ
FastAPI ์ธ๊ธฐ๋ ๊ฒ์ฆ: โ GitHub stars: 68k (์์ 0.1%) โ PyPI ๋ค์ด๋ก๋: 10M+/์ โ Stack Overflow ์ง๋ฌธ: 5,000+ โ ์ฑ์ฉ ๊ณต๊ณ : Indeed 500+ (2024) โ ์ข ํฉ ์ ๋ขฐ๋: ๋งค์ฐ ๋์
๊ฒฐ์ ํธ๋ฆฌ ์์ฑ
### "์ด๋ค Python ์น ํ๋ ์์ํฌ?"
์ง๋ฌธ 1: API๋ง ํ์ํ๊ฐ, ์ ์ฒด ์น์ฑ์ธ๊ฐ?
โโ API๋ง โ FastAPI / Flask ๊ณ ๋ ค
โโ ์ ์ฒด ์น์ฑ โ Django / Flask ๊ณ ๋ ค
์ง๋ฌธ 2: ์ฑ๋ฅ์ด ์ต์ฐ์ ์ธ๊ฐ?
โโ Yes โ FastAPI (65k req/s)
โโ No โ ๋ค์ ์ง๋ฌธ
์ง๋ฌธ 3: ๋น ๋ฅธ ํ๋กํ ํ์ดํ ํ์ํ๊ฐ?
โโ Yes โ Flask (๊ฐ๋จ)
โโ No โ Django (์์ ๊ธฐ๋ฅ)
์ง๋ฌธ 4: ํ ๊ฒฝํ์?
โโ ๋น๋๊ธฐ ๊ฒฝํ ์์ โ FastAPI
โโ Python๋ง ๊ฒฝํ โ Django/Flask
โโ ์ ๊ท ํ โ Django (๋ฌธ์ ํ๋ถ)
์ต์ข
์ถ์ฒ:
- ๊ณ ์ฑ๋ฅ API + ๋น๋๊ธฐ โ **FastAPI** โญโญโญ
- ์ ์ฒด ์น์ฑ + ์์ ์ฑ โ **Django** โญโญโญ
- ๊ฐ๋จํ API + ๋น ๋ฅธ ์์ โ **Flask** โญโญ
์ํ ๋ถ์
### FastAPI ์ ํ ์ ๊ณ ๋ ค์ฌํญ
โ
์ฅ์
- ์ธ๊ณ ์ต๊ณ ์์ค ์ฑ๋ฅ
- ์๋ API ๋ฌธ์ ์์ฑ
- ํ์
ํํธ ๊ธฐ๋ฐ ๊ฒ์ฆ
โ ๏ธ ๋จ์
- ์ํ๊ณ ์ฑ์๋ (Django ๋๋น)
- ๋น๋๊ธฐ ํ์ต ๊ณก์
- ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธํ์ฑ ์ด์
๐จ ์ํ ์์
- **์ธ๋ ฅ ์ถฉ์ ์ด๋ ค์**: ๋น๋๊ธฐ ๊ฒฝํ์ ์ ์ (์ํ: ์ฌ๋ด ๊ต์ก)
- **๋ ๊ฑฐ์ ํตํฉ**: ๊ธฐ์กด ๋๊ธฐ ์ฝ๋์ ํผ์ฉ ์ ๋ณต์ก (์ํ: ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์
)
- **์ฅ๊ธฐ ์ง์ ๋ถํ์ค์ฑ**: 2020๋
์ถ์ (์ํ: ์ปค๋ฎค๋ํฐ ํ๋ฐ)
### ์์ฌ๊ฒฐ์ ์ ์
| ๊ธฐ์ค | ๊ฐ์ค์น | FastAPI | Django |
|------|--------|---------|--------|
| ์ฑ๋ฅ | 30% | 10/10 | 6/10 |
| ์ํ๊ณ | 25% | 7/10 | 10/10 |
| ํ์ต ๊ณก์ | 20% | 6/10 | 8/10 |
| ๋ฌธ์ | 15% | 9/10 | 9/10 |
| ์ปค๋ฎค๋ํฐ | 10% | 8/10 | 9/10 |
| **์ข
ํฉ** | 100% | **8.15** | **8.25** |
โ Django๊ฐ ๊ทผ์ํ๊ฒ ์์์ง๋ง, **์ฑ๋ฅ์ด ์ต์ฐ์ ์ด๋ฉด FastAPI**
1. ์ด SKILL.md ํ์ผ ๋ค์ด๋ก๋
2. Claude.ai โ Projects
3. ํ๋ก์ ํธ ์ ํ ๋๋ ์์ฑ
4. Settings (โ๏ธ) โ Project Knowledge
5. ์ด ํ์ผ ์
๋ก๋
6. Save
ํ
์คํธ:
"FastAPI GitHub stars๊ฐ 68,523๊ฐ์ธ๋ฐ ์ด๊ฒ ๋ง์ ๊ฑด๊ฐ์?"
โ Skill์ด ํด์ ์ ๊ณต (์์ 0.1%, ๊ธ์ฑ์ฅ ๋ฑ)
# Global ์ค์น (๋ชจ๋ ํ๋ก์ ํธ)
mkdir -p ~/.claude/skills
cp dev-search-assistant.md ~/.claude/skills/
# ํ๋ก์ ํธ๋ณ ์ค์น
cd your-project
mkdir -p .claude/skills
cp dev-search-assistant.md .claude/skills/
# ๊ฒ์ฆ
claude skills list
# โ "dev-search-assistant" ํ์ ํ์ธ
Step 1: MCP ์๋ฒ๋ก ๋ฐ์ดํฐ ์์ง
์ฌ์ฉ์: "FastAPI GitHub ์ ๋ณด ์ฐพ์์ค"
MCP: [GitHub API ํธ์ถ] โ "FastAPI: 68,523 stars, last update 3 days ago"
Step 2: Skill๋ก ํด์ ์์ฒญ
์ฌ์ฉ์: "์ด stars ์๊ฐ ๋ง์ ํธ์ธ๊ฐ์?"
Skill:
"โ
๋งค์ฐ ๋์ต๋๋ค (Python ์น ํ๋ ์์ํฌ ์ค ์์ 0.1%)
๐ ์ฆ๊ฐ์จ: ์ฐ๊ฐ +15,000 (๊ธ์ฑ์ฅ ์ค)
๐ฅ ํธ๋ ๋: 2020๋
์ดํ ํญ๋ฐ์ ์ฑ์ฅ
๐ฌ ์ปค๋ฎค๋ํฐ: ๋งค์ฐ ํ๋ฐ (์ด์ ์๋ต < 24์๊ฐ)"
Step 3: ์์ฌ๊ฒฐ์ ์ง์
์ฌ์ฉ์: "๊ทธ๋ผ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์จ๋ ๋ ๊น์?"
Skill:
"์ถ๊ฐ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค:
1. API ์ ์ฉ์ธ๊ฐ์, ์ ์ฒด ์น์ฑ์ธ๊ฐ์?
2. ์ฑ๋ฅ์ด ์ต์ฐ์ ์ธ๊ฐ์?
3. ํ์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์?"
[๋ต๋ณ ํ]
โ "๋ค, FastAPI๋ฅผ ์ถ์ฒํฉ๋๋ค. ์ด์ : ..."
MCP ์คํจ ์ ์๋ ๋์
MCP: "GitHub API returned 403 (rate limit)"
Skill ์๋ ๊ฐ์
:
"MCP ์๋ฒ๊ฐ ์ผ์์ ์ผ๋ก ์ ํ๋์์ต๋๋ค.
๋์ฒด ๋ฐฉ๋ฒ 3๊ฐ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค:
๋ฐฉ๋ฒ 1: web_search ๋๊ตฌ
๋ฐฉ๋ฒ 2: ์๋ ๊ฒ์ (5๋ถ ๊ฐ์ด๋)
๋ฐฉ๋ฒ 3: ์ ๊ฐ ์ต๊ทผ ํ์ธํ ์บ์ ๋ฐ์ดํฐ (2024-10-24 ๊ธฐ์ค)
์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mcp_result |
object | Yes | - | MCP ์๋ฒ ๋ฐํ JSON |
context |
string | No | null | ์ถ๊ฐ ๋งฅ๋ฝ (ํ๋ก์ ํธ ํ์ , ํ ๊ท๋ชจ ๋ฑ) |
analysis_type |
enum | No | "interpretation" | "interpretation" | "comparison" | "decision" |
fallback_enabled |
bool | No | true | MCP ์คํจ ์ ๋์ฒด ๋ฐฉ๋ฒ ์ ๊ณต |
reliability_check |
bool | No | true | ์ ๋ขฐ๋ ํ๊ฐ ํฌํจ |
Scenario: MCP๊ฐ GitHub stars๋ฅผ ๋ฐํํ์ง๋ง ์ซ์์ ์๋ฏธ๋ฅผ ๋ชจ๋ฅผ ๋
Input (MCP ๊ฒฐ๊ณผ):
{
"tool": "search_github_repo",
"result": {
"name": "FastAPI",
"stars": 68523,
"forks": 5802,
"last_update": "2024-10-21",
"language": "Python"
}
}
Skill ํธ์ถ:
"์ด GitHub stars ์๋ฅผ ํด์ํด์ค"
Expected Output:
### FastAPI GitHub ์งํ ํด์
#### Stars ๋ถ์ (68,523๊ฐ)
โ
**๋งค์ฐ ๋์** (Python ์น ํ๋ ์์ํฌ ์ค ์์ 0.1%)
- Django (76k)์ ๊ทผ์ , Flask (64k) ์ถ์
- 2020๋
์ถ์ โ ํ๊ท ์ฐ๊ฐ +15k (๊ธ์ฑ์ฅ)
#### Forks ๋ถ์ (5,802๊ฐ)
โ
**ํ๋ฐํ ๊ธฐ์ฌ** (stars ๋๋น 8.5% ๋น์จ)
- ์ผ๋ฐ์ ์ผ๋ก 5-10%๊ฐ ๊ฑด๊ฐํ ์์ค
- ์ปค๋ฎค๋ํฐ๊ฐ ํ๋ฐํ ๊ฐ์ ์ ์ฐธ์ฌ ์ค
#### ์ต์ ์ฑ (3์ผ ์ ์
๋ฐ์ดํธ)
โ
**๋งค์ฐ ํ๋ฐ** (์ฃผ๊ฐ ๋ฆด๋ฆฌ์ฆ ์์ค)
- ๋ฒ๊ทธ ์์ ๋ฐ ๊ธฐ๋ฅ ์ถ๊ฐ ์ง์
- ํ๋ก๋์
์ฌ์ฉ ์์
#### ์ข
ํฉ ํ๊ฐ
โญโญโญโญโญ ์ต๊ณ ๋ฑ๊ธ
- ์ธ๊ธฐ๋: ์์ 0.1%
- ํ์ฑ๋: ๋งค์ฐ ๋์
- ์์ ์ฑ: ์ฐ์
- ์ถ์ฒ๋: ๋งค์ฐ ๋์
๐ก **์์ฌ๊ฒฐ์ ์ง์**: ๊ณ ์ฑ๋ฅ API ๊ฐ๋ฐ ์ ์ต์ฐ์ ๊ณ ๋ ค ๋์
Key Takeaway: raw ์ซ์ โ ์คํ ๊ฐ๋ฅํ ์ธ์ฌ์ดํธ
Scenario: FastAPI vs Django ์ค ์ ํํด์ผ ํ ๋
Input (MCP ๊ฒฐ๊ณผ 2๊ฐ):
{
"fastapi": {"stars": 68523, "pypi_downloads": "10M/month"},
"django": {"stars": 76102, "pypi_downloads": "45M/month"}
}
Skill ํธ์ถ:
"FastAPI์ Django๋ฅผ ๋น๊ต ๋ถ์ํด์ค.
์ฐ๋ฆฌ๋ RESTful API๋ฅผ ๋ง๋ค๊ณ , ์ฑ๋ฅ์ด ์ค์ํด."
Expected Output:
### FastAPI vs Django ์ข
ํฉ ๋น๊ต
#### ๐ ์ ๋์ ์งํ
| ์งํ | FastAPI | Django | ์น์ |
|------|---------|--------|------|
| GitHub Stars | 68,523 | 76,102 | Django โญ |
| ๋ค์ด๋ก๋ | 10M/์ | 45M/์ | Django โญ |
| ์ฑ๋ฅ (req/s) | 65,000 | 12,000 | FastAPI โญโญโญ |
| ๋ฆด๋ฆฌ์ฆ ์ฃผ๊ธฐ | ์ 2ํ | ๋ถ๊ธฐ 1ํ | FastAPI โญ |
#### ๐ ์ ์ฑ์ ๋น๊ต
**FastAPI ๊ฐ์ **
- โก ์ฑ๋ฅ: Starlette ๊ธฐ๋ฐ, ๋น๋๊ธฐ ๋ค์ดํฐ๋ธ (Django ๋๋น 5๋ฐฐ)
- ๐ ์๋ ๋ฌธ์: OpenAPI/Swagger ์๋ ์์ฑ
- ๐ ํ์
๊ฒ์ฆ: Pydantic ๊ธฐ๋ฐ ์๋ ๊ฒ์ฆ
- ๐ฏ ์ต์ ๊ธฐ์ : Python 3.6+ type hints ํ์ฉ
**Django ๊ฐ์ **
- ๐๏ธ ์ฑ์๋: 15๋
์ญ์ฌ, ๊ฒ์ฆ๋ ์์ ์ฑ
- ๐ ํ์คํ: ORM, Admin, Auth ๋ด์ฅ
- ๐ ์ํ๊ณ: ํจํค์ง 5,000+ (FastAPI 500+)
- ๐ฅ ์ธ๋ ฅ: ๊ฐ๋ฐ์ ํ 10๋ฐฐ ์ด์
#### ๐ฏ ๋น์ ์ ์๊ตฌ์ฌํญ ๊ธฐ๋ฐ ์ถ์ฒ
**์๊ตฌ์ฌํญ**: RESTful API + ์ฑ๋ฅ ์ค์
โ **FastAPI๋ฅผ ๊ฐ๋ ฅํ ์ถ์ฒํฉ๋๋ค** โญโญโญ
**์ด์ **:
1. โก **์ฑ๋ฅ**: 65k req/s (Django 12k์ 5๋ฐฐ)
- ๋น๋๊ธฐ ๋ค์ดํฐ๋ธ โ ๋์ ๋์ ์ฐ๊ฒฐ ์ฒ๋ฆฌ
- uvicorn/gunicorn ์กฐํฉ ์ ๋์ฑ ํฅ์
2. ๐ฏ **API ํนํ**: Django์ ํ
ํ๋ฆฟ/ORM์ ๋ถํ์
- ์๋ OpenAPI ๋ฌธ์ โ ํ๋ก ํธ์๋ ํ์
์ฉ์ด
- ํ์
๊ฒ์ฆ โ ๋ฐํ์ ์ค๋ฅ ์ฌ์ ๋ฐฉ์ง
3. ๐ **์ฑ์ฅ์ฑ**: ๊ธ์ฑ์ฅ ์ค (์ฐ +15k stars)
- ์ปค๋ฎค๋ํฐ ํ๋ฐ, ์ต์ ๊ธฐ์ ์ ๊ทน ๋ฐ์
#### โ ๏ธ ์ฃผ์์ฌํญ
- ํ์ ๋น๋๊ธฐ ๊ฒฝํ ๋ถ์กฑ ์: 2์ฃผ ํ์ต ๊ธฐ๊ฐ ํ์
- ๋ ๊ฑฐ์ ๋๊ธฐ ์ฝ๋ ํตํฉ ์: ํธํ ๋ ์ด์ด ํ์
#### ๐ ์์ฌ๊ฒฐ์ ์ ์
์ฑ๋ฅ (40%) + API ํนํ (30%) + ํ๋์ (20%) + ๊ธฐํ (10%)
= **FastAPI 8.7 vs Django 6.3**
๐ก **๊ฒฐ๋ก **: FastAPI ์ ํ ํ, ํ ๊ต์ก 2์ฃผ ๊ณํ ์๋ฆฝ
Key Takeaway: ์ซ์ + ๋งฅ๋ฝ โ ๋ช ํํ ์ถ์ฒ
Scenario: MCP ์๋ฒ๊ฐ GitHub API 403 ์ค๋ฅ
Input (MCP ์ค๋ฅ):
{
"error": "GitHub API returned 403 Forbidden",
"reason": "Rate limit exceeded (60 requests/hour)",
"reset_time": "2024-10-24T15:30:00Z"
}
Skill ํธ์ถ:
"MCP๊ฐ ์คํจํ์ด. FastAPI stars๋ฅผ ์ด๋ป๊ฒ ํ์ธํ์ง?"
Expected Output:
### ๐ด MCP ์๋ฒ ์ผ์ ์ ํ ๊ฐ์ง
#### ์์ธ ๋ถ์
- GitHub API rate limit ์ด๊ณผ (์๊ฐ๋น 60ํ)
- ๋ณต๊ตฌ ์๊ฐ: 2024-10-24 15:30 (์ฝ 45๋ถ ํ)
#### ๐ก ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋์ฒด ๋ฐฉ๋ฒ (์ฐ์ ์์)
---
**๋ฐฉ๋ฒ 1: Claude ์น ๊ฒ์ ๋๊ตฌ** (๊ฐ์ฅ ๋น ๋ฆ - 30์ด)
์ ๊ฐ ์ง๊ธ ๋ฐ๋ก ๊ฒ์ํด๋๋ฆฌ๊ฒ ์ต๋๋ค:
[web_search ๋๊ตฌ ์๋ ํธ์ถ]
Query: "FastAPI GitHub stars 2024" Result: https://github.com/tiangolo/fastapi โ 68,523 stars (2024-10-24 ํ์ธ)
โ
**๊ฒ์ฆ ์๋ฃ**: 68,523 stars
- ์ถ์ฒ: GitHub ๊ณต์ ํ์ด์ง
- ์ ๋ขฐ๋: ๋งค์ฐ ๋์ (โญโญโญ)
---
**๋ฐฉ๋ฒ 2: ์บ์ ๋ฐ์ดํฐ ํ์ฉ** (์ฆ์)
์ ๊ฐ ์ต๊ทผ ํ์ธํ ๋ฐ์ดํฐ(2024-10-21):
- FastAPI: 68,450 stars (ยฑ100 ์ค์ฐจ)
- Django: 76,080 stars (ยฑ100 ์ค์ฐจ)
โ ๏ธ **์ฃผ์**: 3์ผ ์ ๋ฐ์ดํฐ (ํ์ฌ ๋๋น +50~100 ์ฐจ์ด ์์)
โ
**์ ํฉ ์ํฉ**: ๋๋ต์ ๋น๊ต ๋ชฉ์
---
**๋ฐฉ๋ฒ 3: ์๋ ๊ฒ์ ๊ฐ์ด๋** (5๋ถ)
๋ธ๋ผ์ฐ์ ์์ ์ง์ ํ์ธ:
1. `github.com/tiangolo/fastapi` ๋ฐฉ๋ฌธ
2. Stars ์ซ์ ํ์ธ (์ฐ์ธก ์๋จ)
3. Insights โ Traffic ์์ ํธ๋ ๋ ํ์ธ
๐ธ ์คํฌ๋ฆฐ์ท ๊ณต์ ์ ๋ ์์ธํ ๋ถ์ ์ ๊ณต ๊ฐ๋ฅ
---
**๋ฐฉ๋ฒ 4: ๋์ฒด ๋ฐ์ดํฐ ์์ค** (10๋ถ)
- Libraries.io: https://libraries.io/pypi/fastapi
โ stars, forks, releases ํตํฉ ๋ฐ์ดํฐ
- PyPI Stats: https://pypistats.org/packages/fastapi
โ ๋ค์ด๋ก๋ ์ถ์ด (์ธ๊ธฐ๋ ๊ฐ์ ํ์ธ)
- GitHub Trending: https://github.com/trending/python
โ ํ์ฌ ํธ๋ ๋ ์์ ํ์ธ
---
#### ๐ MCP ๋ณต๊ตฌ ํ ์ฌ๊ฒ์ฆ ๊ถ์ฅ
45๋ถ ํ rate limit ๋ฆฌ์
โ MCP ์๋ฒ ์ฌ์๋
โ ๊ณต์ API ๋ฐ์ดํฐ๋ก ๊ต์ฐจ ๊ฒ์ฆ
#### ๐ ์ ๋ขฐ๋ ๋น๊ต
| ๋ฐฉ๋ฒ | ์ ๋ขฐ๋ | ์๋ | ์ถ์ฒ๋ |
|------|--------|------|--------|
| ์น ๊ฒ์ | โญโญโญ | 30์ด | ์ต์ฐ์ |
| ์บ์ | โญโญ | ์ฆ์ | 2์์ |
| ์๋ | โญโญโญ | 5๋ถ | 3์์ |
| ๋์ฒด ์์ค | โญโญ | 10๋ถ | 4์์ |
๐ก **์ ์ถ์ฒ**: ๋ฐฉ๋ฒ 1 (์น ๊ฒ์) ์ฆ์ ์คํ ์๋ฃ
โ 68,523 stars ํ์ธ โ
Explanation:
Key Takeaway: MCP ์คํจ โ ์์ ์ค๋จ, ํญ์ Plan B
1. ํญ์ MCP ์ฐ์ ์คํ
์ฌ๋ฐ๋ฅธ ์์:
1. MCP ์๋ฒ๋ก raw ๋ฐ์ดํฐ ์์ง
2. Skill๋ก ๋ฐ์ดํฐ ํด์
3. ์์ฌ๊ฒฐ์ ์ง์ ์์ฒญ
์ด์ : MCP๊ฐ ๊ฐ์ฅ ์ ํํ๊ณ ์ต์ ๋ฐ์ดํฐ ์ ๊ณต
2. ๋งฅ๋ฝ ์ ๋ณด ์ ๊ณต
์ข์ ์:
"FastAPI stars๊ฐ 68k์ธ๋ฐ, ์ฐ๋ฆฌ ํ์ Python ๊ฒฝํ๋ง ์๊ณ
๋น๋๊ธฐ๋ ์ฒ์์ด์ผ. ์จ๋ ๋ ๊น?"
๋์ ์:
"FastAPI ์จ๋ ๋ผ?"
์ด์ : ๋งฅ๋ฝ์ด ์์ด์ผ ์ ํํ ์ถ์ฒ ๊ฐ๋ฅ
3. ์ฌ๋ฌ ์งํ ์ข ํฉ ํ๊ฐ
๋จ์ผ ์งํ (X): "stars๊ฐ ๋ง์ผ๋๊น ์ข์ ๊ฑฐ์ผ"
์ข
ํฉ ํ๊ฐ (O): "stars, ๋ค์ด๋ก๋, ๋ฆด๋ฆฌ์ฆ ์ฃผ๊ธฐ, ์ปค๋ฎค๋ํฐ ํ์ฑ๋ ๋ชจ๋ ๊ณ ๋ ค"
4. ์ ๋ขฐ๋ ํญ์ ์ฒดํฌ
"์ด ๋ฐ์ดํฐ ์ ๋ขฐํ ๋งํด?"
โ Skill์ด ์ถ์ฒ, ์๊ฐ์ฑ, ์ผ๊ด์ฑ ์๋ ํ๊ฐ
5. ์คํจ ์ Fallback ์ฆ์ ์์ฒญ
MCP ์ค๋ฅ ๋ฐ์ ์:
"๋์ฒด ๋ฐฉ๋ฒ ์๋ ค์ค"
โ Skill์ด 4๊ฐ์ง ์ต์
์ฆ์ ์ ๊ณต
1. MCP ์์ด Skill๋ง ๋จ๋ ์ฌ์ฉ (X)
๋์ ์: "FastAPI ์ธ๊ธฐ ์์ด?"
โ Skill์ ํด์ ๋๊ตฌ, raw ๋ฐ์ดํฐ๋ MCP๊ฐ ์ ๊ณต
์ฌ๋ฐ๋ฅธ ์์:
MCP๋ก stars ์กฐํ โ Skill๋ก ํด์
2. ๋งฅ๋ฝ ์์ด ๋น๊ต ์์ฒญ (X)
๋์ ์: "FastAPI vs Django ์ค ๋ญ๊ฐ ๋์?"
โ ํ๋ก์ ํธ ํน์ฑ ์์ด ์ผ๋ฐ์ ๋ต๋ณ๋ง ๊ฐ๋ฅ
์ข์ ์: "API ์ ์ฉ, ์ฑ๋ฅ ์ค์, ํ 3๋ช
, Python ๊ฒฝํ โ FastAPI vs Django?"
โ ๊ตฌ์ฒด์ ์ถ์ฒ ๊ฐ๋ฅ
3. ์ค๋๋ ๋ฐ์ดํฐ๋ก ์์ฌ๊ฒฐ์ (X)
๋์ ์:
"2023๋
๋ฐ์ดํฐ๋ก 2024๋
๊ธฐ์ ์คํ ๊ฒฐ์ "
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ:
์ต์ ๋ฐ์ดํฐ ํ์ธ (MCP) โ ํธ๋ ๋ ๋ถ์ (Skill) โ ๊ฒฐ์
4. ์ ๋ขฐ๋ ๋ฌด์ (X)
๋์ ์:
๊ฐ์ธ ๋ธ๋ก๊ทธ 1๊ฐ ์๊ฒฌ์ผ๋ก ๊ฒฐ์
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ:
๊ณต์ API + ์ปค๋ฎค๋ํฐ ํฌํ + ๋ฒค์น๋งํฌ ์ข
ํฉ
5. Fallback ๋ฐฉ๋ฒ ์๋ ์ ํจ (X)
๋์ ์:
"MCP ์ ๋๋ค? ๊ทธ๋ผ ํฌ๊ธฐ"
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ:
"MCP ์คํจ โ ์น ๊ฒ์ โ ์๋ ๊ฒ์ โ ์บ์ ํ์ฉ"
1. MCP + Skill ๋ณ๋ ฌ ์ฒ๋ฆฌ
# ํจ์จ์ ์ธ ์ํฌํ๋ก์ฐ
async def search_and_analyze():
# MCP ์๋ฒ ํธ์ถ (๋น๋๊ธฐ)
mcp_task = call_mcp_github("FastAPI")
# Skill ํธ์ถ ์ค๋น (๋ณ๋ ฌ)
skill_task = prepare_analysis_context()
# ๊ฒฐ๊ณผ ์์ง
mcp_result = await mcp_task
context = await skill_task
# Skill๋ก ์ฆ์ ํด์
return skill_interpret(mcp_result, context)
# ์๊ฐ ์ ๊ฐ: ์ง๋ ฌ (5์ด) โ ๋ณ๋ ฌ (2์ด)
2. ์บ์ ์ ๊ทน ํ์ฉ
์์ฃผ ์กฐํํ๋ ๋ฐ์ดํฐ:
- ์ธ๊ธฐ ํ๋ ์์ํฌ stars (์ผ 1ํ ๊ฐฑ์ )
- PyPI ๋ฒ์ ์ ๋ณด (์ฃผ 1ํ ๊ฐฑ์ )
โ Skill์ "์ต๊ทผ ์บ์ ์์ด?" ๋จผ์ ํ์ธ
โ ์์ผ๋ฉด MCP ํธ์ถ
3. ๋ฐฐ์น ๋น๊ต ์์ฒญ
๋์ ์:
FastAPI ์กฐํ โ ํด์ โ Django ์กฐํ โ ํด์
์ข์ ์:
"FastAPI, Django, Flask 3๊ฐ ๋์ ๋น๊ต ๋ถ์"
โ MCP 3๋ฒ ํธ์ถ โ Skill 1๋ฒ ์ข
ํฉ ๋ถ์
1. API ํค ๋ ธ์ถ ๋ฐฉ์ง
MCP ์๋ฒ ์ค์ ์:
- GitHub Personal Access Token โ ํ๊ฒฝ ๋ณ์
- Skill์ token ์ ๊ทผ ๋ถ๊ฐ (๋ถ๋ฆฌ)
2. ๋ฐ์ดํฐ ๊ฒ์ฆ
Skill์ ์๋ ๊ฒ์ฆ:
- URL ์ ์์ฑ ์ฒดํฌ (ํผ์ฑ ๋ฐฉ์ง)
- ์ถ์ฒ ์ ๋ขฐ๋ ํ๊ฐ (์คํธ ์ ์ธ)
- ๊ต์ฐจ ๊ฒ์ฆ (๋จ์ผ ์ถ์ฒ ์์กด ๋ฐฉ์ง)
3. ๊ฐ์ธ์ ๋ณด ๋ณดํธ
Skill์ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์์:
- ์ฌ์ฉ์ ํ๋ก์ ํธ ์ ๋ณด
- ํ ๊ตฌ์ฑ์ ์ ๋ณด
- ๊ฒ์ ํ์คํ ๋ฆฌ
โ ์ธ์
์ข
๋ฃ ์ ๋ชจ๋ ๋งฅ๋ฝ ์ญ์
Symptom:
์ฌ์ฉ์: "์ด stars ์ ๋ง์?"
Skill: "MCP ๊ฒฐ๊ณผ๋ฅผ ๋จผ์ ์ ๊ณตํด์ฃผ์ธ์"
Cause: MCP ์๋ฒ ํธ์ถ ์์ด Skill๋ง ์ง์ ํธ์ถ
Solution:
# Step 1: MCP ๋จผ์ ํธ์ถ
"FastAPI GitHub stars ์ฐพ์์ค"
โ MCP: "68,523 stars"
# Step 2: Skill๋ก ํด์
"์ด ์ซ์๋ฅผ ํด์ํด์ค"
โ Skill: "๋งค์ฐ ๋์ (์์ 0.1%)..."
Prevention: ํญ์ MCP โ Skill ์์ ์ ์ง
Symptom:
์ฌ์ฉ์: "FastAPI vs Django?"
Skill: "๋ ๋ค ์ข์ต๋๋ค"
Cause: ๋งฅ๋ฝ ์ ๋ณด ๋ถ์กฑ (ํ๋ก์ ํธ ํน์ฑ, ์๊ตฌ์ฌํญ ์์)
Solution:
๊ตฌ์ฒด์ ์ ๋ณด ์ ๊ณต:
"์ฐ๋ฆฌ๋ API ์ ์ฉ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์๊ณ ,
์ฑ๋ฅ์ด ์ค์ํ๋ฉฐ, ํ์ Python์ ์์ง๋ง ๋น๋๊ธฐ๋ ์ฒ์์
๋๋ค.
FastAPI vs Django ์ค ๋ญ ์จ์ผ ํ ๊น์?"
โ Skill: "FastAPI ์ถ์ฒ. ์ด์ : ์ฑ๋ฅ 5๋ฐฐ, API ํนํ..."
Prevention: ๋น๊ต ์์ฒญ ์ ํญ์ 3๊ฐ์ง ๋ช ์:
Symptom:
MCP ์คํจ โ Skill fallback ์ ์ โ ์ฌ์ ํ ๋ฐ์ดํฐ ์์
Cause: ๋คํธ์ํฌ ์ฐจ๋จ ๋๋ ๋ชจ๋ API ๋์ ์ ํ
Solution:
# ์ตํ์ ์๋จ: ์บ์ ๋ฐ์ดํฐ + ์๋ ๊ฒ์
Skill:
"๋ชจ๋ ์๋ ๋ฐฉ๋ฒ์ด ์คํจํ์ต๋๋ค.
์ต์
1: ์ ์บ์ ๋ฐ์ดํฐ (2024-10-21)
FastAPI: 68,450 stars (ยฑ100)
์ต์
2: ์๋ ๊ฒ์ 5๋ถ ๊ฐ์ด๋
1. github.com/tiangolo/fastapi ๋ฐฉ๋ฌธ
2. Stars ํ์ธ
3. ์คํฌ๋ฆฐ์ท ๊ณต์ ์ ์์ธ ๋ถ์ ์ ๊ณต"
Prevention: ์ค์ํ ๊ฒฐ์ ์:
Symptom:
์ถ์ฒ A: "FastAPI stars 68k"
์ถ์ฒ B: "FastAPI stars 70k"
โ ์ด๋ค ๊ฒ ๋ง์?
Cause: ๋ฐ์ดํฐ ์์ง ์์ ์ฐจ์ด ๋๋ ์ง๊ณ ๋ฐฉ์ ์ฐจ์ด
Solution:
Skill ์๋ ์ฒ๋ฆฌ:
"2๊ฐ ์ถ์ฒ ๋ฐ๊ฒฌ:
- GitHub API (68,523) - 2024-10-24 14:30
- Libraries.io (70,102) - 2024-10-20 (์บ์)
โ ์ต์ ๋ฐ์ดํฐ(GitHub API) ์ฐ์ ์ ๋ขฐ
โ ์ฐจ์ด ์์ธ: Libraries.io ์บ์ ์ง์ฐ
์ต์ข
ํ๋จ: 68,523 stars โ
"
Prevention:
Symptom:
Skill: "๋ฌด์กฐ๊ฑด FastAPI ์ฐ์ธ์"
โ ๋์ค์ ๋ฌธ์ ๋ฐ์
Cause: Skill์ด ์ํ ์์ ๋ฏธ๊ณ ๋ ค ๋๋ ์ฌ์ฉ์ ํน์ ์ํฉ ๋ฌด์
Solution:
์ฌ๋ฐ๋ฅธ Skill ์๋ต:
"FastAPI๋ฅผ ์ถ์ฒํฉ๋๋ค (8.5/10)
โ
์ฅ์ : ์ฑ๋ฅ 5๋ฐฐ, ์๋ ๋ฌธ์
โ ๏ธ ์ฃผ์: ๋น๋๊ธฐ ํ์ต ๊ณก์
๐จ ์ํ: ํ ๊ฒฝํ ๋ถ์กฑ ์ ์ด๊ธฐ 2์ฃผ ์์ฐ์ฑ ์ ํ
์ํ ๋ฐฉ์:
1. 2์ฃผ ํ ๊ต์ก (asyncio ๊ธฐ์ด)
2. ์๊ท๋ชจ ํ๋กํ ํ์
์ผ๋ก ๊ฒ์ฆ
3. Django ๋ณํ ์ ์ง (๋ฆฌ์คํฌ ๋ถ์ฐ)
์ต์ข
๊ฒฐ์ ์ ํ ๋ฆฌ๋๊ฐ ํ๋จํ์ธ์."
Prevention:
์ด Skill์ ์ ์ธ์ ํจ์๊ฐ ์๋ ๋ํํ ์ธํฐํ์ด์ค๋ก ์๋ํฉ๋๋ค. Claude์ ์์ฐ์ด๋ก ๋ํํ๋ฉด์ ๊ธฐ๋ฅ์ ํธ์ถํฉ๋๋ค.
์ฌ์ฉ:
"์ด MCP ๊ฒฐ๊ณผ๋ฅผ ํด์ํด์ค"
"68,523 stars๊ฐ ๋ง์ ๊ฑด๊ฐ์?"
"PyPI ๋ฒ์ 0.120.0์ด ์ต์ ์ธ๊ฐ์?"
๋ฐํ:
์ฌ์ฉ:
"FastAPI vs Django ๋น๊ตํด์ค"
"์ฑ๋ฅ, ์ํ๊ณ, ํ์ต ๊ณก์ ๊ธฐ์ค์ผ๋ก ๋น๊ต"
๋ฐํ:
์ฌ์ฉ:
"์ฐ๋ฆฌ ํ๋ก์ ํธ์ FastAPI ์จ๋ ๋ ๊น?"
"API ์ ์ฉ, ์ฑ๋ฅ ์ค์, ํ 3๋ช
, Python ๊ฒฝํ"
๋ฐํ:
์ฌ์ฉ:
"MCP๊ฐ 403 ์ค๋ฅ์ผ. ์ด๋ป๊ฒ ํด?"
"GitHub API ์ ๋ผ. ๋์ฒด ๋ฐฉ๋ฒ?"
๋ฐํ:
Skill์ด ์ฒ๋ฆฌํ๋ MCP ๊ฒฐ๊ณผ ๊ตฌ์กฐ:
{
"github": {
"name": "string",
"stars": "integer",
"forks": "integer",
"last_update": "ISO 8601 date",
"language": "string"
},
"pypi": {
"name": "string",
"version": "string",
"release_date": "ISO 8601 date",
"author": "string",
"license": "string",
"dependencies": ["array"]
},
"stackoverflow": {
"questions": [{
"title": "string",
"votes": "integer",
"views": "integer",
"accepted": "boolean",
"url": "string"
}]
}
}
Features:
Improvements:
Known Limitations:
Planned Features:
MIT License - ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌ ๊ฐ๋ฅ
# Skill ๋ก๋ ํ์ธ
claude skills list | grep "dev-search-assistant"
# ํ
์คํธ ์ฟผ๋ฆฌ
claude "FastAPI GitHub stars๋ฅผ ํด์ํด์ค"
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ๋ชฉ์ | MCP ์๋ฒ ๋ณด์กฐ (ํด์ + ๋น๊ต + ์์ฌ๊ฒฐ์ ) |
| ํต์ฌ ๊ธฐ๋ฅ | 5๊ฐ์ง (ํด์/๋น๊ต/์์ฌ๊ฒฐ์ /Fallback/์ ๋ขฐ๋) |
| ์ฌ์ฉ ์์ | MCP ๊ฒฐ๊ณผ ๋ฐ์ ํ |
| ์ค์น | 5๋ถ (ํ์ผ ์ ๋ก๋) |
| ํจ๊ณผ | raw ๋ฐ์ดํฐ โ ์คํ ๊ฐ๋ฅ ์ธ์ฌ์ดํธ |
๐ MCP ์๋ฒ + ์ด Skill = ์๋ฒฝํ ๊ฐ๋ฐ์ ๊ฒ์ ์์คํ !
๋ฒ์ : v1.0.0
์
๋ฐ์ดํธ: 2024-10-24
ํธํ: Claude 3.5 Sonnet+, Claude.ai, Claude Code v1.0.0+