- ํ๋ก์ ํธ ์ด๋ฆ: NUNCHI-AI
- ํ๋ก์ ํธ ์ค๋ช : NUNCHI ํค์ค์คํฌ์ AI ์ค์ผ์คํธ๋ ์ด์ ์๋ฒ. ์์ฑ ํ์ดํ๋ผ์ธ(STT โ LLM โ TTS), LangGraph ๊ธฐ๋ฐ ์ฃผ๋ฌธ ์์ด์ ํธ, MCP Tool ์คํ์ ๋ด๋นํฉ๋๋ค. React ํ๋ก ํธ์๋์ Spring ๋ฐฑ์๋ ์ฌ์ด์์ AI ํ๋ฆ์ ์ ์ดํ๋ฉฐ, Smithery.ai๋ฅผ ํตํด ์ธ๋ถ Claude Desktop๊ณผ๋ ์ฐ๋ ๊ฐ๋ฅํฉ๋๋ค.
| ์กฐํจ๋ | ์ดํ๋ ธ | ์ํธ์ | ์ํ์ฐ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| BE / AI | FE / ๊ฒฐ์ / HW์ฐ๋ | Infra / VISION / ADMIN | FE / PM |
| GitHub | GitHub | GitHub | GitHub |
React (ํค์ค์คํฌ UI)
โ REST / WebSocket
[NUNCHI-AI โ FastAPI]
โโโ OpenAI (Whisper STT / GPT / TTS)
โโโ MCP Tool Router
โโโ DB Tool โ Spring ๋ฉ๋ด/์ฃผ๋ฌธ/๊ฒฐ์ API ํธ์ถ
โโโ UI Tool โ React ํ๋ฉด ์ ์ด ์ด๋ฒคํธ ์ ์ก
โโโ Payment Tool โ ๊ฒฐ์ ํ๋ก์ฐ ์ค์ผ์คํธ๋ ์ด์
โ HTTP REST
Spring Boot (NUNCHI)
โ
PostgreSQL + Redis
๋ง์ดํฌ ์ ๋ ฅ๋ถํฐ TTS ์๋ต ์ถ๋ ฅ๊น์ง ์ ๊ณผ์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
1. ์์ฑ ์์ ํค์ค์คํฌ ๋ง์ดํฌ์์ ์ค๋์ค ์
๋ ฅ ์์
2. STT ๋ณํ OpenAI Whisper๋ก ์์ฑ โ ํ
์คํธ ๋ณํ
3. ์๋ ๋ถ๋ฅ LLM์ด ์ฃผ๋ฌธ / ์ถ์ฒ / ๊ฒฐ์ / ์ผ๋ฐ ์ง๋ฌธ ์๋ ๋ถ๋ฅ
4. ๊ฐ์ฒด ์ถ์ถ ๋ฉ๋ด๋ช
, ์๋, ์ต์
, ์กฐ๊ฑด(์๋ ๋ฅด๊ธฐ ๋ฑ) ์ถ์ถ
5. Tool ์คํ MCP Tool ์ ํ ๋ฐ ์ฒด์ด๋ ์คํ
6. TTS ์๋ต ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์์ฑ์ผ๋ก ํฉ์ฑํด ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
LangGraph๋ก ๊ตฌ์ฑ๋ ์ํ ๊ธฐ๋ฐ ์์ด์ ํธ์ ๋๋ค. ๋ ธ๋ ๋จ์๋ก ์๋ ๋ถ๋ฅ โ Tool ์คํ โ ์๋ต ์์ฑ ํ๋ฆ์ ์ ์ดํ๋ฉฐ, ์ฃผ๋ฌธ ๋ชจ๋์ ๋ฐ๋ผ ํ๋ ์ง์นจ ๋ธ๋ก์ ๋ถ๋ฆฌํ์ฌ ๋์ํฉ๋๋ค.
์์ด์ ํธ ๊ทธ๋ํ ํ๋ฆ
์
๋ ฅ (์์ฑ ํ
์คํธ / ์ฑํ
)
โ
โผ
[intent_classifier] โ ์ด์ ๋ํ ๋ฌธ๋งฅ ์ฐธ์กฐ
โ
โโ ์ฃผ๋ฌธ / ๋ด๊ธฐ โ [order_agent] โ add_to_cart Tool
โโ ์ถ์ฒ ์์ฒญ โ [recommend_agent] โ get_menus Tool
โโ ๊ฒฐ์ โ [payment_agent] โ confirm_order Tool
โโ ์ผ๋ฐ ์ง๋ฌธ โ [chat_agent] โ TTS ์๋ต ์์ฑ
โ
โผ
[response_builder] โ TTS ํฉ์ฑ + UI Control Tool ์ด๋ฒคํธ ์ ์ก
๋ชจ๋๋ณ ํ๋ ์ง์นจ ๋ถ๋ฆฌ
| ๋ชจ๋ | ๋์ ๋ฐฉ์ |
|---|---|
| ์ผ๋ฐ ๋ชจ๋ | ํฐ์น ์ฃผ๋ฌธ ๋ณด์กฐ, ์์ฑ ๋ช ๋ น ๊ธฐ๋ฐ ํ๋ฉด ์๊ฒฉ ์กฐ์ |
| ์๋ฐํ ๋ชจ๋ | ์๋ฐํ "๋์น"๋ก์ ๋ํ ์ฃผ๋, ์ถ์ฒ โ ๋ด๊ธฐ โ ๊ฒฐ์ ์ ํ๋ก์ฐ ์ ์ด |
์ฃผ์ ์ค๊ณ ํฌ์ธํธ
- LLM ํฉํ ๋ฆฌ ๋์ ์ผ๋ก OpenAI / Gemini ๊ณต๊ธ์ ์ ํ ์ง์
- ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ์ ํ๊ฐ ๋ฐฉ์ง ๊ฐ๋ โ Tool ๊ฒฐ๊ณผ ๊ฒ์ฆ ํ ์๋ต ์์ฑ
- ๋ฝ ์ถฉ๋(409) ๋ฐ์ ์ ์๋ ์ฌ์๋ ๋ก์ง ๋ด์ฅ
- ์ง์ AI ๋ฉ์์ง ๋ฌธ๋งฅ์ ์๋ ๋ถ๋ฅ์ ๋ฐ์ํ์ฌ ์ฐ์ ๋ํ ํ์ง ํฅ์
| Tool | ์ค๋ช | ์ฃผ์ ๊ธฐ๋ฅ |
|---|---|---|
| DB Tool | Spring ๋ฐฑ์๋ ๋ฐ์ดํฐ ์กฐํ | ๋ฉ๋ด ๋ชฉ๋ก, ๋ฉ๋ด ์์ธ, ์ธ๊ธฐ ๋ฉ๋ด, ์นดํ ๊ณ ๋ฆฌ๋ณ ์กฐํ |
| UI Control Tool | React ํค์ค์คํฌ ํ๋ฉด ์ ์ด | ํ๋ฉด ์ด๋, ๋ฉ๋ด ๊ฐ์กฐ, ์ฅ๋ฐ๊ตฌ๋ ๋ฐ์, ํ์ธ ๋ชจ๋ฌ ํ์ |
| Payment Tool | ๊ฒฐ์ ํ๋ก์ฐ ์ค์ผ์คํธ๋ ์ด์ | ์ฃผ๋ฌธ ํ์ , ์นด๋ ๊ฒฐ์ , ๊ฒฐ์ ์คํจ ๋์ |
๋ชจ๋ Tool์ MCP ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, Spring API ์ค๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ตํฉ๋๋ค. ๋ฉ๋ดยท๊ฐ๊ฒฉ์ ์ ๋ ํ๋์ฝ๋ฉํ์ง ์์ต๋๋ค.
์๋ฐํ ๋ชจ๋์์ ๋ค์ ๋ฐํ๋ฅผ ์์ธกํ์ฌ ์๋ต์ ๋ฏธ๋ฆฌ prefetchํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํต๋ฐ ๋ฒํผ์ ๋๋ฅด๋ ์๊ฐ ์ฆ์ ์๋ต์ด ๊ฐ๋ฅํฉ๋๋ค.
์:
์ฅ๋ฐ๊ตฌ๋ ํ์ธํด์คยท์กฐ๊ฑด ๋ฐ๊ฟ์ ์ถ์ฒํด์คยท๋ค๋ฅธ ๋ฉ๋ด๋ ์ถ์ฒํด์ค
Smithery.ai์ NUNCHI MCP ์๋ฒ๋ฅผ ๋ฑ๋กํ์ฌ, ๊ฐ์ธ Claude Desktop์์ ๊ฐ๋จํ ๋ช ๋ น์ด ํ ์ค๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
- ์ธ๊ตญ์ด ์ฃผ๋ฌธ, ๊ฐ์ธ ๋ง์ถค ์ถ์ฒ ๋ฑ ๊ฐ์ธ AI๋ก ํ์ฅ ํ์ฉ ๊ฐ๋ฅ
- ์ถํ ๋๊ตญ AI CHAT๊ณผ ์ฐ๊ฒฐํ์ฌ ๊ต๋ด AI์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
| Python | |
| FastAPI | |
| LangGraph | |
| OpenAI | |
| Docker | |
| GitHub Actions |
NUNCHI-AI/
โโโ app/ # FastAPI ์ง์
์ , ๋ผ์ฐํฐ (/api/**)
โ โโโ main.py
โ โโโ api/
โโโ service/ # ์์ฑ ํ์ดํ๋ผ์ธ, ์์ด์ ํธ, ์ถ์ฒ / ํต๋ฐ ๋ก์ง
โโโ adapter/ # OpenAI / Spring ๋ฐฑ์๋ ์ฐ๋
โโโ kiosk_mcp/ # MCP ์๋ฒ ๋ฐ Tool ๊ตฌํ
โ โโโ tools/ # DB / UI / Payment Tool
โโโ domain/ # Pydantic ๋ชจ๋ธ
โโโ core/ # ์ค์ , ์์ธ, ๊ณตํต ์ ํธ
โโโ .claude/ # ๊ฐ๋ฐ ์ปจํ
์คํธ ๋ฌธ์ (PROJECT.md, CONVENTION.md)
โโโ requirements.txt
โโโ Dockerfile
Git Flow๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ค์ ๋ธ๋์น๋ฅผ ์ฌ์ฉํฉ๋๋ค.
-
mainBranch- ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ์ ์ฝ๋๋ฅผ ์ ์งํฉ๋๋ค.
- ๋ชจ๋ ๋ฐฐํฌ๋ ์ด ๋ธ๋์น์์ ์ด๋ฃจ์ด์ง๋๋ค.
-
devBranch- ๊ฐ๋ฐ ํตํฉ ๋ธ๋์น์ ๋๋ค.
- ๊ธฐ๋ฅ ๊ฐ๋ฐ ์๋ฃ ํ dev๋ก ๋จธ์งํฉ๋๋ค.
-
{name}/{feature}Branch- ํ์ ๊ฐ์์ ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ธ๋์น์ ๋๋ค.
- ์:
feat/#65/smithery,fix/#68/qa-3
# ํด๋์ค: ํ์ค์นผ ์ผ์ด์ค
class OrderAgentService: ...
# ํจ์ & ๋ณ์: ์ค๋ค์ดํฌ ์ผ์ด์ค
def get_menu_list(): ...
current_session_id = ""
# ์์: ์ดํผ ์ค๋ค์ดํฌ ์ผ์ด์ค
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")- ๋น์ฆ๋์ค ๋ก์ง์ Router์ ๋์ง ์๊ณ Service๋ก ๋ถ๋ฆฌ
- ์ธ๋ถ ์ฐ๋(OpenAI, Spring)์ Adapter ๊ณ์ธต์ผ๋ก ๋ถ๋ฆฌ
- MCP Tool ๊ตฌํ์ kiosk_mcp/ ๋๋ ํฐ๋ฆฌ์ ์ง์ค
- ๋ฉ๋ดยท๊ฐ๊ฒฉ์ ์ ๋ ํ๋์ฝ๋ฉ ๊ธ์ง, Spring API ์ค๋ฐ์ดํฐ ๊ธฐ์ค
- AI ์๋ต ์๊ฐ 3์ด ์ด๋ด ๋ชฉํ
[Type] ์ค๋ช
[Feat] : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
[Fix] : ๋ฒ๊ทธ ์์
[Refactor]: ์ฝ๋ ๋ฆฌํฉํ ๋ง
[Chore] : ๋น๋, ์ค์ , ํจํค์ง ๋ณ๊ฒฝ
[Docs] : ๋ฌธ์ ์์ฑ / ์์
== ex1
[Feat] LangGraph ์ฃผ๋ฌธ ์์ด์ ํธ ๋ชจ๋๋ณ ํ๋ ์ง์นจ ๋ถ๋ฆฌ
์ผ๋ฐ ๋ชจ๋ / ์๋ฐํ ๋ชจ๋ ํ๋กฌํํธ ๋ธ๋ก ๋ถ๋ฆฌ ๊ตฌ์กฐ ์ถ๊ฐ
== ex2
[Fix] ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ๋ฝ ์ถฉ๋(409) ์ ์ฌ์๋ ๋ก์ง ์ถ๊ฐ
== ex3
[Chore] Smithery MCP ์๋ฒ ๋ฐฐํฌ ์ค์ ์ถ๊ฐ



