์ฃผ์ ยท๋์ด๋ยท์ถ์ ์คํ์ผ์ ๊ณ ๋ฅด๋ฉด, AI๊ฐ ํ์ดยทํํธยท๊ฒ์ฐ์ด ํจ๊ป ์๋ ์๋ก์ด ์ฌํ ๋ฌผ๋ฆฌ ๋ฌธ์ ๋ฅผ ๋ง๋ค์ด ์ฃผ๋ ์์ ์น ์ฑ์ ๋๋ค. ํด์์ญํ, ์ ์๊ธฐํ, ์๋๋ก ๋ฑ ๋ํยท์ฌ๋ฆผํผ์๋ ์์ค ์ฃผ์ ๋ฅผ ์ง์ํฉ๋๋ค.
๋ชจ๋ธ์ ๋ฌธ์ ๋ฅผ ์ง์ ํ์ด ์ฐจ์ยท๊ทนํยทํน์๊ฐ์ผ๋ก ๊ฒ์ฐํ ๋ค ํ์ด๋ฅผ ์ ๋๋ก ์ ๋๋๋ฉฐ, ๋ชจ๋ ์์์ LaTeX๋ก ์ถ๋ ฅ๋์ด ๋ธ๋ผ์ฐ์ ์์ MathJax๋ก ๋ ๋๋ง๋ฉ๋๋ค.
โ ๏ธ ๋ฌธ์ ์ ํ์ด๋ AI๊ฐ ์์ฑํฉ๋๋ค. ์ํยท์ ์ถ ์ ์๋ ๋ฐ๋์ ์ง์ ๊ฒ์ฐํ์ธ์.
- ์๋ก์ด ๋ฌธ์ ์์ฑ โ ๊ต๊ณผ์ ์์ ๋ณต์ฌ๊ฐ ์๋๋ผ ์ฃผ์ ์์ ์์ฐ์ค๋ฝ๊ฒ ๋์ค๋ ๋ ์ฐฝ์ ์ธ ์ํฉ์ ๋ง๋ญ๋๋ค.
- ํ์ด ยท ํํธ ยท ๊ฒ์ฐ ยท ํํ ์ค๋ต โ ๊ฐ ๋ฌธ์ ๋ง๋ค ๋จ๊ณ๋ณ ํ์ด, ๋จ๊ณ์ ํํธ, ๊ฒ์ฐ, ์์ฃผ ํ๋ฆฌ๋ ์ง์ ์ ํจ๊ป ์ ๊ณตํฉ๋๋ค.
- 5๊ฐ์ง ์ถ์ ์คํ์ผ โ ์ธํธํ ๊ณ์ฐ, ์ฆ๋ช ยท์ ๋, ์ฌ๋ฆผํผ์๋ ์ฌํ, ๊ฐ๋ ํ์ธ, ์ค๋ฅ์ง๋จยท๋ชจ๋ธ๋ง.
- LaTeX ๋ ๋๋ง โ MathJax๋ก ๊ทธ๋ฆฌ์ค๋ฌธ์ยท์ฒจ์ยท๋ถ์ยท์ ๋ถ์ ์ ํํ ํ์ํฉ๋๋ค.
- ๋งํฌ๋ค์ด ๋ด๋ณด๋ด๊ธฐ โ ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ๋ณต์ฌํ๊ฑฐ๋
.mdํ์ผ๋ก ์ ์ฅํฉ๋๋ค. - ์์กด์ฑ ์ต์ โ Express + Anthropic SDK๋ฟ. ๋ก๊ทธ์ธยทDBยท๊ฒฐ์ ์์. API ํค ํ๋๋ฉด ์คํ๋ฉ๋๋ค.
git clone https://github.com/fakeminjun7321/physics-problem-studio.git
cd physics-problem-studio
npm install
cp .env.example .env # .env ๋ฅผ ์ด์ด ANTHROPIC_API_KEY ๋ฅผ ์ฑ์๋๋ค
npm start # http://localhost:3000๋ธ๋ผ์ฐ์ ์์ http://localhost:3000 ์ ์ด๊ณ , ์ฃผ์ ๋ฅผ ์
๋ ฅํ ๋ค ๋ฌธ์ ์์ฑ์ ๋๋ฅด๋ฉด ๋ฉ๋๋ค.
Anthropic API ํค๋ console.anthropic.com ์์ ๋ฐ๊ธ๋ฐ์ต๋๋ค.
public/index.html ํผ + ๊ฒฐ๊ณผ ๋ ๋๋ง(MathJax). ๋จ์ผ ํ์ด์ง, ์ธ๋ถ ์์ฐ ์์.
server.js Express ์๋ฒ โ /api/config ์ /api/generate ๋ ๊ฐ์ ์๋ํฌ์ธํธ.
lib/physics.js ์ถ์ ํ๋กฌํํธ + ์
๋ ฅ ๊ฒ์ฆ + ์ถ๋ ฅ ์ ๊ทํ(๋ฌธ์ ์คํ).
lib/studio-core.js ๋ชจ๋ธ ํธ์ถ + LaTeX-in-JSON ๋ณต๊ตฌ ํ์.
lib/json-sanitize.js ๋ฌธ์์ด ์์ raw ์ ์ด๋ฌธ์ escape ๋ณต๊ตฌ.
- ํ๋ก ํธ์๋๊ฐ ์ฃผ์ ยท๋์ด๋ยท์คํ์ผ์
POST /api/generate๋ก ๋ณด๋ ๋๋ค. - ์๋ฒ๊ฐ ์์คํ ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํด Claude ๋ฅผ ํธ์ถํฉ๋๋ค.
- Claude ๊ฐ JSON ๊ฐ์ฒด ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
- LaTeX ๋ฅผ ํฌํจํ JSON ์ ๊ฒฌ๊ณ ํ๊ฒ ํ์ฑํฉ๋๋ค โ ๋ชจ๋ธ์ด ๋ฌธ์์ด ์์
\theta๊ฐ์ ๋จ์ผ ๋ฐฑ์ฌ๋์๋ raw ์ ์ด๋ฌธ์๋ฅผ ๋ฃ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๋ฅผ ์๋ ๋ณต๊ตฌํฉ๋๋ค. - ์คํค๋ง๋๋ก ์ ๊ทํํ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ฃผ๊ณ , ํ๋ก ํธ์๋๊ฐ ๋ ๋๋งํฉ๋๋ค.
| ํ๊ฒฝ ๋ณ์ | ํ์ | ์ค๋ช |
|---|---|---|
ANTHROPIC_API_KEY |
โ | Anthropic API ํค. ์์ผ๋ฉด ์์ฑ์ด 503 ์ ๋ฐํํฉ๋๋ค. |
PORT |
์๋ฒ ํฌํธ (๊ธฐ๋ณธ 3000). |
์ฌ์ฉ ๋ชจ๋ธ์ lib/studio-core.js ์ STUDIO_MODELS ์์ ๋ฐ๊ฟ ์ ์์ต๋๋ค (๊ธฐ๋ณธ: Claude Opus 4.8 / Sonnet 5 / Haiku 4.5).
์ผ๋ฐ Node ์น ์๋น์ค์ด๋ฏ๋ก ์ด๋์๋ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ ๋ช
๋ น์ npm start, PORT ๋ ํธ์คํธ๊ฐ ์ฃผ์
ํ๋ ๊ฐ์ ์ฐ๋ฉฐ, ANTHROPIC_API_KEY ๋ฅผ ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํ๋ฉด ๋ฉ๋๋ค. .env ๋ ์ปค๋ฐํ์ง ๋ง์ธ์ (.gitignore ์ ์ด๋ฏธ ์ ์ธ๋์ด ์์ต๋๋ค).