๐ [Project] AI ๋ด ์ง์ ๋ง๋ค๊ธฐ: MCP์ ํ์๊ณผ ํ์ค์ ์ธ ์ฐํ๋ก
๐ ๋ก์ปฌ(Local) vs ์๊ฒฉ(Remote): ๊ธฐ์ ๋ณด๋ค '๋น์ฉ๊ณผ ๋ณด์'
MCP ์๋ฒ๋ฅผ ์ด๋์ ๋ ๊ฒ์ธ๊ฐ? ์ด ์ง๋ฌธ์ ๋ํด ์ ๋ '๋ก์ปฌ ์ฐ์ ' ์ ๋ต์ ์ ํํ์ต๋๋ค. ๊ทธ ์ด์ ๋ ๋ช ํํฉ๋๋ค.
-
๋น์ฆ๋์ค ๋ชจ๋ธ(BM)์ ๋ถ์ฌ: OpenAI๋ ๊ตฌ๊ธ ๊ฐ์ ๊ฑฐ๋ ๊ธฐ์ ๋ ์์ตํ์ ์ฌํ์ ๊ฑฐ๋ ์๊ธฐ์, ๊ฐ์ธ ํ๋ก์ ํธ์์ ๊ณ ์ ์ ์ธ ํธ์คํ ๋น์ฉ์ ์ง์ถํ๋ ๊ฒ์ ํฐ ๋ถ๋ด์ ๋๋ค.
-
๋ณด์์ ๊ด์ ์ ํ: ์๊ฒฉ ์๋ฒ๋ ์ธ๋ถ ์นจ์ (Hacking)์ ์ทจ์ฝํ ๋ฐ๋ฉด, ๋ก์ปฌ ์๋ฒ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋จ์ ๋์ด ์์ต๋๋ค. ๋ฌผ๋ก ๋ก์ปฌ ํ์ผ ์ ๊ทผ์ ๋ํ ๋ฆฌ์คํฌ๋ ์์ง๋ง, ์ด๋ '์ต์ ๊ถํ ์์น'๊ณผ '์๋๋ฐ์ค ํ๊ฒฝ'์ ํตํด ์ถฉ๋ถํ ํต์ ๊ฐ๋ฅํฉ๋๋ค.
-
์์ด์ ํธ ๋ฐํ์: ๊ตณ์ด ์๋ฒ๋ฅผ 24์๊ฐ ์ด์ด๋ ํ์ ์์ด, ํ์ํ ๋๋ง ๋ก์ปฌ์์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ
stdioํต์ ์ ํตํด LLM๊ณผ ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ด ํจ์ฌ ํฉ๋ฆฌ์ ์ ๋๋ค.
โ ๏ธ ๊ธฐ์ ์ ์ ์ : MCP๋ 'Master Control Program'์ด ์๋๋๋ค
๊ธ์ ์ ๋ฆฌํ๋ค ๋ณด๋ ํ ๊ฐ์ง ์ง๊ณ ๋์ด๊ฐ ๋ถ๋ถ์ด ์์ต๋๋ค. ๋ํ ์ค ์ธ๊ธ๋ MCP๋ ์ํ <ํธ๋ก >์ ์ธ๊ณต์ง๋ฅ์ด๋ IBM์ ์ ์ฉ์ด๊ฐ ์๋, Anthropic์ด ๋ฐํํ Model Context Protocol(๋ชจ๋ธ ์ปจํ ์คํธ ํ๋กํ ์ฝ)์ ์ฝ์์ ๋๋ค.
๋จ์ํ '์งํํ๋ ํ๋ก๊ทธ๋จ'์ด๋ผ๋ ์๋ฏธ๋ฅผ ๋์ด, AI๊ฐ ๋ฐ์ดํฐ ์์ค ๋ฐ ๋๊ตฌ์ ํต์ ํ๊ธฐ ์ํ "ํ์ค ๊ท์ฝ"์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ์์ผ๋ก์ ๊ฐ๋ฐ ๋ฐฉํฅ์ ์ก๋ ๋ฐ ๋ ์ ํํฉ๋๋ค.
๐ง ๋ฅ๊ณต(๋ฅ์น๊ณ ๊ณต๊ฒฉ)์ด ์ ๋ ๋, ์ ๋ต์ ํํด
FastAPI์ mcp.mount()๋ฅผ ์๋ํ๋ฉฐ MCP ์๋ฒ ๊ตฌ์ถ์ ๋ฐ์ฐจ๋ฅผ ๊ฐํ๋ ค ํ์ง๋ง, ์์์น ๋ชปํ ์ฅ๋ฒฝ์ ๋ถ๋ชํ์ต๋๋ค. ๊ด๋ฆฌ ํ์ด์ง๊ฐ ๋จ์ง ์๊ณ , ์ฐธ๊ณ ํ ์๋ฃ๋ ๋ถ์กฑํ์ฃ .
ํ์ง๋ง ์ด ๊ธฐ์ ์ ๋๊ด์ ์คํ๋ ค "๊ณผ์ฐ ์ง๊ธ ๋์๊ฒ MCP๊ฐ ์ต์ ์ธ๊ฐ?"๋ผ๋ ๋ณธ์ง์ ์ธ ์ง๋ฌธ์ ๋์ง๊ฒ ํ์ต๋๋ค. ์ฌ๊ธฐ์ ์ ๋ ์ค์ํ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค.
"AI์ ์์ ๋๋ณด๋ค๋ ๊ณต์ ์ ํ์คํ๊ฐ ์ฐ์ ์ด๋ค."
โ๏ธ MCP vs Function Calling: ํ์ง๊ณผ ํ์คํ์ ๋๋ ๋ง
์ฐ๋ฆฌ๊ฐ AI ์ง์์๊ฒ ๊ธฐ๋ํ๋ ๊ฒ์ '์ฐฝ์์ ์ธ ์ผํ'์ด ์๋๋ผ '๊ท ์ผํ ์ ๋ฌด ํ์ง'์ ๋๋ค.
-
์ ์กฐ ๊ณต์ ์ ํ์คํ: ISO9001์ฒ๋ผ, ํ๋ฅญํ ์์คํ ์ ์์ ์์ ๊ธฐ๋ถ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋์ง ์๋๋ก ๋งค๋ด์ผํ๋์ด ์์ต๋๋ค.
-
AI์ ๊ฐ๋ณ์ฑ: MCP๋ AI๊ฐ ๋๊ตฌ๋ฅผ '์ค์ค๋ก ์ ํ'ํ๊ฒ ํฉ๋๋ค. ์ด๋ ์ ์ฐํ์ง๋ง, ๋ฐ๋๋ก ๋งํ๋ฉด ๋๊ฐ์ ์ง๋ฌธ์๋ ๋งค๋ฒ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๋ป์ ๋๋ค.
-
๊ฒฐ๋ก : ์ ํํ๋ ์ ๋ฌด ์๋ํ์๋ AI๊ฐ ๋๊ตฌ๋ฅผ ์ ํํ๊ฒ ๋๋ MCP๋ณด๋ค, ๊ฐ๋ฐ์๊ฐ ํ๋ก์ธ์ค๋ฅผ ์๊ฒฉํ ์ ์ดํ๋ Function Calling์ด 'ํ์ง ๊ด๋ฆฌ' ์ธก๋ฉด์์ ํจ์ฌ ์ ๋ฆฌํ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ ๊ธฐ์ ์ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ ค๋ค, ์ ์๋น์ค์ ๋ ์ ํฉํ ๋ฐฉ์์ Function Calling์ ํตํ ์ ๊ตํ ์ ์ด๋ผ๋ ํ์ ์ ์ป๊ฒ ๋์์ต๋๋ค. ๊ทธ๋์ ์ฐ์ ์ MCP ์๋ฒ์ ๋ชฉ๋งค๊ธฐ๋ณด๋ค, DRF(Django REST Framework)๋ฅผ ํตํ CRUD ์๋ํฌ์ธํธ๋ฅผ ๋จผ์ ํํํ๊ฒ ๊ตฌ์ถํ๊ธฐ๋ก ์ ์ ์ ๋ณ๊ฒฝํ์ต๋๋ค.
โญ ๋ค์ ๋จ๊ณ: ๊ธฐ๋ฐ ๋ค์ง๊ธฐ
๊ธฐ์ ๊ตฌํ์ ๊ฒฐ๊ตญ '๋'๊ณผ 'ํ์ง'๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. ๋ค์ ๊ธฐ๋ก์์๋ MCP ์๋ฒ์ ๋ฑ๋ก๋ ๋๊ตฌ๋ค์ ๊ธฐ๋ฐ์ด ๋ DRF CRUD ์๋ํฌ์ธํธ ๊ตฌ์ถ๊ธฐ๋ฅผ ๋ค๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ก ์๋ด: ์ด ํฌ์คํ ์ ๊ธฐ์กด ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ์ 7, 8ํ์ฐจ ์ฐ์ฌ๋ถ์ ํตํฉํ์ต๋๋ค. ๋ก์ปฌ๊ณผ ์๊ฒฉ ์๋ฒ ์ฌ์ด์ ์ ๋ต์ ์ ํ, ๊ทธ๋ฆฌ๊ณ MCP ์๋ฒ ๊ตฌ์ถ ์ค ๋ง์ฃผํ ๊ธฐ์ ์ ํ๊ณ์ 'ํ์ง ํ์คํ'์ ๋ํ ๊น์ ๊ณ ๋ฏผ์ ๊ธฐ๋กํ์ต๋๋ค.