Chris31372/better-chat

๐Ÿค– ๋‹ค์ค‘ ๋ชจ๋ธ ์ง€์›, ์•ˆ์ „ํ•œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ, ๋ชจ๋ธ ํ†ตํ•ฉ ๋ฐ ์ง€์†์  ๋Œ€ํ™” ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ AI ์ฑ„ํŒ… ์•ฑ์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.

better-chat๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ด ์Šคํ‚ฌ์€ ๋‹ค์ค‘ AI ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๋ฉฐ ์ง€์†์ ์ธ ๋Œ€ํ™” ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” AI ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด ์Šคํ‚ฌ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ AI ๋ชจ๋ธ(์˜ˆ: OpenAI, Anthropic ๋“ฑ)์„ ํ†ตํ•ฉํ•˜๊ณ , ๊ฐ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ธ์…˜ ๊ธฐ๋ฐ˜์˜ ๋Œ€ํ™” ๊ธฐ๋ก ๊ด€๋ฆฌ, ๋ชจ๋ธ ๊ฐ„ ์ „ํ™˜, ์‚ฌ์šฉ์ž ์ธ์ฆ ๋“ฑ ์‹ค์ œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ํ•„์š”ํ•œ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๋“ค์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํ‚ฌ์€ Claude Code, Cursor ๋“ฑ ๋‹ค์–‘ํ•œ AI ์—์ด์ „ํŠธ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Node.js ๊ธฐ๋ฐ˜์˜ ํ˜„๋Œ€์ ์ธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

์ง€์› ๋Œ€์ƒ~Claude Code~Codex CLI~Cursor
npx skills add Chris31372/better-chat

Installed? Explore more ์—ฐ๊ตฌ & ๋ฐ์ดํ„ฐ ๋ถ„์„ skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review ยท View all 6 โ†’

์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” AI์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

์ด ์—์ด์ „ํŠธ ์Šคํ‚ฌ์ด ๋ฏธ๋ฆฌ ๋กœ๋“œ๋œ ์ƒˆ ์ฑ„ํŒ…์„ ์—ฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ

better-chat์€(๋Š”) ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

๐Ÿค– ๋‹ค์ค‘ ๋ชจ๋ธ ์ง€์›, ์•ˆ์ „ํ•œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ, ๋ชจ๋ธ ํ†ตํ•ฉ ๋ฐ ์ง€์†์  ๋Œ€ํ™” ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ AI ์ฑ„ํŒ… ์•ฑ์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.

๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ๋Ÿฌ AI ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•˜๊ณ  ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฒฉ๋ฆฌํ•˜๋ฉฐ ์ง€์†์ ์ธ ๋Œ€ํ™” ๊ธฐ๋ก์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” AI ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋‹ค์ค‘ ๋ชจ๋ธ ์ง€์›: OpenAI, Anthropic ๋“ฑ ๋‹ค์–‘ํ•œ AI ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ ํƒ๊ถŒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ: ๊ฐ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณด์•ˆ ๋ฐ ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์  ๋Œ€ํ™” ๊ด€๋ฆฌ: ๋Œ€ํ™” ์„ธ์…˜์„ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•  ์ˆ˜ ์žˆ์–ด ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ํ†ตํ•ฉ: ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์˜ ๋ชจ๋ธ ํ†ตํ•ฉ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ธ์ฆ: JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ํ†ตํ•ด ์•ˆ์ „ํ•œ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ

ํ•„์ˆ˜ ์กฐ๊ฑด

  • Node.js 18 ์ด์ƒ
  • npm ๋˜๋Š” yarn
  • ์ง€์›๋˜๋Š” AI ๋ชจ๋ธ์˜ API ํ‚ค

์„ค์น˜

git clone https://github.com/Chris31372/better-chat.git
cd better-chat
npm install

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

.env.example ํŒŒ์ผ์„ .env๋กœ ๋ณต์‚ฌํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”:

OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key
JWT_SECRET=your-jwt-secret
DATABASE_URL=your-database-url

์‹คํ–‰

npm run dev

๊ฐœ๋ฐœ ์„œ๋ฒ„๊ฐ€ http://localhost:3000์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ๋Œ€ํ™” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉํ•  AI ๋ชจ๋ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ „์†กํ•˜์—ฌ AI์™€ ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋Œ€ํ™”๋Š” ์ž๋™์œผ๋กœ ์ €์žฅ๋˜์–ด ๋‚˜์ค‘์— ๋‹ค์‹œ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API ์—”๋“œํฌ์ธํŠธ

์—”๋“œํฌ์ธํŠธ๋ฉ”์„œ๋“œ์„ค๋ช…
/api/auth/registerPOST์‚ฌ์šฉ์ž ๋“ฑ๋ก
/api/auth/loginPOST์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ
/api/conversationsGET๋Œ€ํ™” ๋ชฉ๋ก ์กฐํšŒ
/api/conversations/:idGETํŠน์ • ๋Œ€ํ™” ์กฐํšŒ
/api/conversationsPOST์ƒˆ ๋Œ€ํ™” ์ƒ์„ฑ
/api/conversations/:id/messagesPOST๋ฉ”์‹œ์ง€ ์ „์†ก

๊ธฐ์ˆ  ์Šคํƒ

  • ํ”„๋ ˆ์ž„์›Œํฌ: Next.js (React)
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: PostgreSQL (Prisma ORM)
  • ์ธ์ฆ: JWT (JSON Web Tokens)
  • AI ๋ชจ๋ธ: OpenAI API, Anthropic API
  • ์Šคํƒ€์ผ๋ง: Tailwind CSS

๊ธฐ์—ฌํ•˜๊ธฐ

๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ, ๊ธฐ๋Šฅ ์ œ์•ˆ, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋“ฑ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๊ธฐ์—ฌ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

  1. ์ด ์ €์žฅ์†Œ๋ฅผ ํฌํฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (git checkout -b feature/amazing-feature).
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค (git commit -m 'Add some amazing feature').
  4. ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค (git push origin feature/amazing-feature).
  5. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ฐ๋ฝ์ฒ˜

๊ด€๋ จ ์Šคํ‚ฌ