๋ฌ๋ ์คํฐ๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ํ AI ์ฑ๋ด ์๋น์ค์ ๋๋ค.
dalestudy-chatbot/
โโโ frontend/ # React + TypeScript + Vite
โโโ backend/ # Node.js + Express + TypeScript
โโโ data/ # JSON ๋ฐ์ดํฐ ํ์ผ
โโโ PLAN.md # ํ๋ก์ ํธ ๊ณํ์
โโโ README.md # ์ด ํ์ผ
- Node.js 18+
- npm ๋๋ yarn
git clone <repository-url>
cd dalestudy-chatbot
cd backend
cp .env.example .env
npm install
npm run dev
๋ฐฑ์๋ ์๋ฒ๊ฐ http://localhost:8080 ์์ ์คํ๋ฉ๋๋ค.
cd frontend
cp .env.example .env
npm install
npm run dev
ํ๋ก ํธ์๋๊ฐ http://localhost:3000 ์์ ์คํ๋ฉ๋๋ค.
src/components/ChatInterface.tsx
- ๋ฉ์ธ ์ฑํ ์ธํฐํ์ด์คsrc/components/MessageList.tsx
- ๋ฉ์์ง ๋ฆฌ์คํธ ์ปดํฌ๋ํธsrc/components/ChatInput.tsx
- ๋ฉ์์ง ์ ๋ ฅ ์ปดํฌ๋ํธsrc/api/index.ts
- API ํธ์ถ ํจ์๋คsrc/types/index.ts
- TypeScript ํ์ ์ ์
src/index.ts
- Express ์๋ฒ ๋ฉ์ธ ํ์ผsrc/routes/chat.ts
- ์ฑํ API ๋ผ์ฐํฐsrc/routes/search.ts
- ๊ฒ์ API ๋ผ์ฐํฐsrc/services/searchService.ts
- Fuse.js ๊ฒ์ ์๋น์คsrc/utils/dataLoader.ts
- JSON ๋ฐ์ดํฐ ๋ก๋src/types/index.ts
- TypeScript ํ์ ์ ์
data/study-projects.json
- ์คํฐ๋ ํ๋ก์ ํธ ๋ฐ FAQ ๋ฐ์ดํฐ
npm run dev # ๊ฐ๋ฐ ์๋ฒ ์คํ (watch mode)
npm run build # TypeScript ๋น๋
npm run start # ํ๋ก๋์
์๋ฒ ์คํ
npm run lint # ESLint ์คํ
npm run dev # ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run build # ํ๋ก๋์
๋น๋
npm run preview # ๋น๋๋ ํ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
npm run lint # ESLint ์คํ
์ฌ์ฉ์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ณ AI ์๋ต์ ๋ฐํํฉ๋๋ค.
Request:
{
"message": "๋ฌ๋ ์คํฐ๋์ ์ด๋ป๊ฒ ์ฐธ์ฌํ๋์?"
}
Response:
{
"message": "์น์ฌ์ดํธ์์ ๊ด์ฌ ์๋ ์คํฐ๋๋ฅผ ์ ํํ๊ณ ...",
"sources": [...]
}
ํค์๋๋ก ์คํฐ๋ ์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค.
Request:
GET /api/search?q=React ์คํฐ๋
Response:
{
"query": "React ์คํฐ๋",
"category": "study",
"results": [...]
}
- LLM API ์ฐ๋ - OpenAI ๋๋ Anthropic API ์ฐ๊ฒฐ
- ํ๋กฌํํธ ์์ง๋์ด๋ง - ๋ ๋์ ๋ต๋ณ์ ์ํ ํ๋กฌํํธ ์ต์ ํ
- UI/UX ๊ฐ์ - ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํ ๋์์ธ ๊ฐ์
- ๋ฐฐํฌ ์ค์ - Vercel + Railway/Render ๋ฐฐํฌ ๊ตฌ์ฑ
MIT License