codebadger์(๋) ๋ฌด์์ ํ๋์?
๐ฆก codebadger๋ ์ปจํ ์ด๋ํ๋ Model Context Protocol (MCP) ์๋ฒ๋ก, AI ์์ด์ ํธ์ LLM์ด Joern ์ฝ๋ ์์ฑ ๊ทธ๋ํ(CPG)๋ฅผ ํตํด ์ฝ๋๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๊น์ด ์๊ฒ ์ ๊ทผํ๊ณ ์ง์ํ ์ ์๋๋ก ํฉ๋๋ค.
๊ธฐ๋ฅ
- CPG ๊ธฐ๋ฐ ์ง์: ์ฝ๋๋ฒ ์ด์ค์ ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ(AST), ์ ์ด ํ๋ฆ ๊ทธ๋ํ(CFG), ๋ฐ์ดํฐ ์์กด์ฑ ๊ทธ๋ํ(DDG) ๋ฑ์ SQL๊ณผ ์ ์ฌํ ์ฟผ๋ฆฌ๋ก ํ์ํ ์ ์์ต๋๋ค.
- ์ทจ์ฝ์ ๋ถ์: Joern์ ๊ฐ๋ ฅํ ์ ์ ๋ถ์ ์์ง์ ํ์ฉํ์ฌ ๋ณด์ ์ทจ์ฝ์ ํจํด์ ์๋ณํ๊ณ ๋ณด๊ณ ํ ์ ์์ต๋๋ค.
- ์ปจํ ์ด๋ํ๋ ๋ฐฐํฌ: Docker ์ปจํ ์ด๋๋ก ์คํ๋๋ฏ๋ก ๋ก์ปฌ ํ๊ฒฝ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- MCP ํ๋กํ ์ฝ ์ง์: Claude Code, Cursor, Codex ๋ฑ MCP๋ฅผ ์ง์ํ๋ ๋ชจ๋ AI ์์ด์ ํธ์ ํธํ๋ฉ๋๋ค.
์ฌ์ฉ ์์
๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ AI ์์ด์ ํธ์๊ฒ ํ ์ ์์ต๋๋ค:
- "์ด ํ๋ก์ ํธ์์ ํน์ ํจ์
processData๋ฅผ ํธ์ถํ๋ ๋ชจ๋ ์์น๋ฅผ ์ฐพ์์ค." - "๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ์์ ํ๊ฒ ๋ซํ์ง ์๋ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ๋ถ์ํด์ค."
- "๋ชจ๋ A์ ๋ชจ๋ B ์ฌ์ด์ ๋ชจ๋ ์์กด์ฑ ๊ด๊ณ๋ฅผ ์๊ฐํํด์ค."
์์ํ๊ธฐ
ํ์ ์กฐ๊ฑด
- Docker
- MCP๋ฅผ ์ง์ํ๋ AI ์์ด์ ํธ (์: Claude Desktop, Cursor)
์ค์น ๋ฐ ์คํ
- ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํฉ๋๋ค:
git clone https://github.com/Lekssays/codebadger.git
cd codebadger
- Docker ์ปจํ ์ด๋๋ฅผ ๋น๋ํ๊ณ ์คํํฉ๋๋ค:
docker build -t codebadger .
docker run -p 8080:8080 -v /path/to/your/codebase:/workspace codebadger
- AI ์์ด์ ํธ ์ค์ ์์ MCP ์๋ฒ ์๋ํฌ์ธํธ๋ฅผ
http://localhost:8080/mcp๋ก ์ง์ ํฉ๋๋ค.
ํ๊ฒฝ ๋ณ์
| ๋ณ์๋ช | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
MCP_PORT | MCP ์๋ฒ ํฌํธ | 8080 |
WORKSPACE_PATH | ๋ถ์ํ ์ฝ๋๋ฒ ์ด์ค ๊ฒฝ๋ก | /workspace |
JOERN_OPTS | Joern ์์ง ์ถ๊ฐ ์ต์ | (์์) |
๋ผ์ด์ ์ค
MIT License