๐ [Project] AI ๋ด ์ง์ ๋ง๋ค๊ธฐ: ์ง๋ฌด ์ค๊ณ(R&R)์ MCP ์ ๋ต ๊ฐ์ด๋
๐ง '์๋ฌป๋ฐ ์ฝ๋ฉ'์ ๋ฉ์ถ๊ณ ์ค๊ณ๋๋ฅผ ๊ทธ๋ฆฌ๋ค
์์ด๋์ด๊ฐ ๋ ์ค๋ฅด๋ฉด ๋ฐ๋ก IDE๋ฅผ ์ผ๋ ์ต๊ด์ ์ ์ ์ ์ด๋๊ณ , ์ด๋ฒ์๋ AI ์ง์์ Role(์ญํ )์ ์ ์ํ๋ ๋ฐ ์ง์คํ์ต๋๋ค. ์ญํ ์ ์์ ๋ฐ๋ผ ์ฝ๋ฉ์ ์์ ๋ฌผ๋ก , ๊ธฐ์กด ๋ ๊ฑฐ์ ํ๋ก์ธ์ค๋ฅผ ์ผ๋ง๋ ๋ฏ์ด๊ณ ์น ์ง๊ฐ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก AI๋ฅผ ๋ฆฌํฉํ ๋ง(Refactoring)์ ํ์ฉํ๋ ๊ฒ์ด ์ ๊ท ์ฐฝ์๋ณด๋ค ๊ฒฐ๊ณผ๋ฌผ์ด ์ฐ์ํ ๋๊ฐ ๋ง์ง๋ง, ์๋น์ค ์ ์ฒด์ ํจ์จ์ ์ํด '๋น์ฉ ํจ์จ์ฑ'๊ณผ '์ ์์ผํ ๊ฐ๋ฐ' ์ฌ์ด์์ ์ ๊ตํ ์ธ์คํ๊ธฐ๊ฐ ํ์ํ์ต๋๋ค.
๐ ํ์ ํ์: AI๊ฐ ๋น์ง๊ณ ๋ค์ด๊ฐ ์๋ฆฌ๋ ์ด๋์ธ๊ฐ?
๋จผ์ ํ์ฌ ์ด์ ์ค์ธ 'API ์ํ ๋ชจ๋ํฐ๋ง' ํ๋ก์ธ์ค๋ฅผ ํด๋ถํด ๋ณด์์ต๋๋ค.
-
ํ์: API ํธ์ถ ์คํจ ์ DB์ '์คํจ'๋ก ๊ธฐ๋ก๋จ. ๊ด๋ฆฌ์๊ฐ ์ง์ ํ์ด์ง๋ฅผ ์ด์ด๋ด์ผ๋ง ํ์ธ ๊ฐ๋ฅ.
-
๊ฐ์ ํฌ๋ง์ : ์คํจ ์ ์ฆ๊ฐ ์๋ฆผ์ ๋ฐ๊ณ , ๋จ์ ์ค๋ฅ๋ผ๋ฉด ์๋์ผ๋ก ์ฌ์๋(Retry)๊น์ง ์๋ฃํ๊ณ ์ถ์.
์ฌ๊ธฐ์ ๊ณ ๋ฏผ์ด ์์๋ฉ๋๋ค. "๋จ์ํ Try/Except ๊ตฌ๋ฌธ์ผ๋ก ํด๊ฒฐ๋ ์ผ์ ๊ตณ์ด ๋น์ผ AI์๊ฒ ๋งก๊ฒจ์ผ ํ ๊น?" ๊ธฐ์กด ์ฝ๋ฉ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ ์์ญ์ ๋ฌด๋ถ๋ณํ๊ฒ AI๋ฅผ ์ง์ด๋ฃ๋ ๊ฒ์ ๋น์ฉ ๋ญ๋น์
๋๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ MCP(Model Context Protocol)์ Function Calling์ ์ง๊ฐ๊ฐ ๋๋ฌ๋ฉ๋๋ค. ์ธ๊ฐ ๊ฐ๋ฐ์๊ฐ ์ผ์ผ์ด ๋ฌธ์ ๋ฅผ ํ์ ํ๊ณ ์์ ํ๋ 'ํ๋จ'์ ๊ณผ์ ์ AI๊ฐ ๋์ ํ๊ฒ ๋ง๋๋ ๊ฒ, ์ฆ 'ํด๊ฒฐ ๋๊ตฌ(ํจ์)๋ฅผ ์ค์ค๋ก ์ ํํ๊ฒ ํ๋ ๋ฅ๋ ฅ'์ ๋ถ์ฌํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค.
๐ AI ์ง๊ธ๋ณ ์ ๋ฌด ๋ฐฐ๋ถ ๊ธฐ์ค (Function vs MCP)
ํ์ต๊ณผ ํ์ ๋์, ์ ๋ AI ์ง์์ ์ ๋ฌด ์์ค์ ์ธ ๊ฐ์ง ์นดํ ๊ณ ๋ฆฌ๋ก ๋ช ํํ ๋๋์์ต๋๋ค.
| ์ง๋ฌด ๊ตฌ๋ถ | ๊ถ์ฅ ๊ธฐ์ | ํน์ง ๋ฐ ์ ์ฉ ์์ |
| 1. ๋จ์ ๋ฐ๋ณต ์์ (์๋ฐ) | Internal Function | ๋น์ฉ ํจ์จ ์ต์ฐ์ . ๊ธฐ์กด ์ฝ๋๋ก ์ฆ๊ฐ ์ฒ๋ฆฌ (์: ํฉ๊ณ ๊ณ์ฐ, ๋จ์ DB ์ ๋ฐ์ดํธ). |
| 2. ํน์ ๊ณผ์ ์ํ (์ฌ์) | Function Calling | ๋ชจ๋ธ์ด ์ ์๋ ํจ์๋ฅผ ํธ์ถ. ํน์ ํ์คํฌ ์ํ (์: ๋ง์ผํ ๋ฌธ๊ตฌ ์์ฑ, ๋ฐ์ดํฐ ์์ฝ). |
| 3. ํ๋ก์ธ์ค ๊ด๋ฆฌ (ํ์ฅ) | MCP (Protocol) | ํ์คํ๋ ๋๊ตฌ/๋ฐ์ดํฐ ์ฐ๊ฒฐ. AI๊ฐ ์ฌ๋ฌ ๋ฆฌ์์ค๋ฅผ '๋ฐ๊ฒฌ'ํ๊ณ ๋งฅ๋ฝ์ ๋ง๊ฒ ์ทจ์ฌ์ ํํ์ฌ ๋ณตํฉ ๋ฌธ์ ํด๊ฒฐ. |
Function Calling์ด ๊ฐ๋ฐ์๊ฐ ๋ฏธ๋ฆฌ ์ฅ์ฌ์ค 'ํน์ ๋๊ตฌ'๋ง ์ฐ๋ ์ฌ์์ด๋ผ๋ฉด, MCP๋ AI๊ฐ ๋ด ์๋ฒ์ '๋๊ตฌํจ(Toolbox)' ์ ์ฒด๋ฅผ ํ์ํ๋ฉฐ ์ํฉ์ ๋ง๋ ๋๊ตฌ๋ฅผ ๊บผ๋ด ์ฐ๋ ํ์ฅ์ ๊ฐ๊น์ต๋๋ค. ๋๋ถ์ ๊ฐ๋ฐ์๋ ๋งค๋ฒ ์๋ก์ด ํจ์๋ฅผ AI์๊ฒ ์ฐ๊ฒฐํ๋๋ผ ๊ณ ์ํ ํ์ ์์ด, ํ์คํ๋ ํต๋ก(MCP Server)๋ง ์ด์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
๐งญ ์ค์ ์ ์ฉ: API ๋ชจ๋ํฐ๋ง ์ง์์ ์ ๋ฌด ์ ์
์ ๊ธฐ์ค์ ๋ฐ๋ผ, ์ ๊ฐ ๋ง๋ค ์ฒซ ๋ฒ์งธ 'AI ๊ด๋ฆฌ ์ง์'์ ํ๋ ์ง์นจ์ ์ธ์ ์ต๋๋ค.
-
๊ฐ์ ๋ฐ ๋ถ์: API ํธ์ถ ์คํจ ์ ์๋ฌ ์ฝ๋๋ฅผ ํด์ํ์ฌ ๊ด๋ฆฌ์์๊ฒ ๋ณด๊ณ ํ ๊ฒ.
-
์์จ ์กฐ์น: ๋จ์ ์๋ํฌ์ธํธ ๋ฌด์๋ต์ผ ๊ฒฝ์ฐ ์ต๋ 3ํ ์๋ ์ฌ์๋. (AI๊ฐ ์ฌ์๋ ํจ์๋ฅผ ์ค์ค๋ก ํธ์ถํ๋๋ก ์ค๊ณ)
-
์ต์ข ๋ณด๊ณ : ์ฌ์๋ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํฌํจํ ์ต์ข ์ํ๋ฅผ ์ด๋ฉ์ผ(API Handler)๋ก ์ฆ์ ๋ฐ์ก.
๋จ์ํ ์๋ฆผ์ ๋์ด, ์ํฉ์ ํ๋จํ๊ณ ์กฐ์น๊น์ง ๋ง์น ๋ค ๋ณด๊ณ ํ๋ '๊ด๋ฆฌ์'๋ฅผ ์ํ๋ ๊ฒ์ด ์ด๋ฒ ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ฝ์ค์ ๋๋ค.
โญ ๋ค์ ๋จ๊ณ: ์ด๋ก ์์ ์ค์ ์ฝ๋ฉ์ผ๋ก
๊ฐ๋ ์ด ๋ชจํธํ ๋๋ ๋ง๋งํ์ง๋ง, ์ง๋ฌด๋ณ๋ก ๊ธฐ์ ์คํ์ ์ ๋ฆฌํ๊ณ ๋๋ ๋น๋ก์ ์๋๊ฐ ๋ถ๊ธฐ ์์ํฉ๋๋ค. ๊ณผ์ฐ ์ด 'AI ๊ด๋ฆฌ์'๊ฐ ์ ์๋๋๋ก ๊ผผ๊ผผํ๊ฒ ์ ๋ฌด๋ฅผ ์ํํด ์ค๊น์?
๋ค์ ๊ธ์์๋ ์ค์ ๊ตฌํ ๊ณผ์ ๊ณผ ์ฝ๋ฉ ์งํ ์ํฉ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
๐ก ์๋ด: ์ด ํฌ์คํ ์ ๊ธฐ์กด ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ์ 3, 4ํ์ฐจ ์ฐ์ฌ๋ถ์ ํตํฉํ์ฌ ์ฌ๊ตฌ์ฑํ ๊ธ์ ๋๋ค. ๋ฌด์์ ์ฝ๋ฉ์ ๋ฐ์ด๋ค๊ธฐ ์ , AI์๊ฒ ์ด๋ค ์ญํ ์ ๋งก๊ธธ์ง '์์ ์กฐ์ '๊ณผ '๊ธฐ์ ์ ๋๊ตฌ'๋ฅผ ๊ณ ๋ฏผํ ๊ธฐ๋ก์ ๋๋ค.