๋ฌ๋  ์คํฐ๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ํ 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-chatbotcd 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