ํ์ด์ฌ/์ฅ๊ณ ์น์๋น์ค ๊ฐ๋ฐ์ ๊ธฐ์ด๋ฅผ ํํํ ๋ค์ ธ๋ณด์ธ์. ์ฅ๊ณ ํ์ต์๋ ์๊ฐ๋ ๊ฑธ๋ฆฌ์ง๋ง, ๋ฐ๋ณต๋๋ ๊ฐ๋ฐ ์์ ์ฌ๋ฌ๋ถ์ ์์ฐ์ฑ์ ๊ทน๋ํํ์ค ์ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์์์ ํ์ค๋ก ๋ง๋ค์ด๋ณด์ธ์.
์๋ ํ์ธ์.
AI/LLM/์์ด์ ํธ์ ์๋์ ์ฅ๊ณ ๋ก ํ ์ ์๋ ์ผ๋ค์ด ๋์ฑ ๋ง์์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ์ฅ๊ณ ํ์ฐ์ ์ํด, ๋ค์ํ AI ๊ด๋ จ ํํ ๋ฆฌ์ผ๋ค์ ๊ฐ๋ฐํ๊ณ ๊ณต์ ํ๊ณ ์์ต๋๋ค.
์ธ๋ฒ์งธ ํํ ๋ฆฌ์ผ๋ก ์ฅ๊ณ ๊ธฐ๋ฐ์ "RAG ๋ฐ๋ฐ๋ฅ๋ถํฐ ์น ์ฑํ
๊น์ง" ํํ ๋ฆฌ์ผ์ ๊ณต์ ๋๋ฆฝ๋๋ค.
https://ai.pyhub.kr/rag-01/
์์ฆ AI ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์คํ use case๋ก ์๋ฆฌ๋งค๊นํ ๊ฒ์ด RAG์ RAG ๊ธฐ๋ฐ์ ์น ์ฑํ ์ด๊ฑฐ๋ ์. RAG๋ ์์ฆ ChatGPT์ ๊ฐ์ ์๋น์ค๋ฅผ ๋ง๋ค ๋, ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ป๋ ํต์ฌ ๊ธฐ์ ์ ๋๋ค. ์ผ๋ฐ ํ์ฌ๋ค ๋ฟ๋ง ์๋๋ผ, ์ฌ๋ฌ ๊ณต๊ณต ๊ธฐ๊ด์์๋ RAG ์ฑ๋ด์ ์๋ก ์๋คํฌ์ด ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์น์ฑํ ๊ทธ๋ฆฌ๊ณ RAG์ ํ์ํ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ด ์ฅ๊ณ ๊ฐ ์ด๋ฏธ ์ ์ง์ํด์ฃผ๊ณ ์๋ ๊ธฐ๋ฅ๋ค์ ๋๋ค. ์ฅ๊ณ ๊ธฐ๋ฐ์์ ์์ฐ์ฑ๋๊ฒ RAG ์น ์ฑํ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์์ ์์์์ผ๋ก ์ ๋ฌ๋๋ ธ๋ ๊ฐ์ ๋ณด์ถฉ ์ง๋ต์ผ๋ก ์งํํ๋ ค๋ ์ ํ๋ธ ๋ผ์ด๋ธ๋ ์ข ๋ ์ค๋น๊ฐ ํ์ํ๋ค๊ณ ํ๋จ์ด ๋์ด ์ค ์ดํ์ ์งํํ๊ฒ ์ต๋๋ค.
ํผ์ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผํ๊ธฐ๋ณด๋ค ๊ฐ์ด ํ๋ฉด ์ฌ๋ฏธ์์ผ๋๊น์. 1/25(ํ ) ์คํ 9์์ <๋ฐ๋ผํ์ธ์. "RAG ๋ฐ๋ฐ๋ฅ๋ถํฐ ์น ์ฑํ
๊น์ง" ํํ ๋ฆฌ์ผ ๋ผ์ด๋ธ #1> ๋ฅผ ์งํํ๋ ค ํฉ๋๋ค. RAG๋ฅผ ํ์ด์ฌ์ผ๋ก ์ง์ ๊ตฌํํด๋ณด๋ฉฐ ์ดํด๋๋ฅผ ์์๊ฐ๊ณ , ์ฅ๊ณ /htmx๋ฅผ ํตํด ์น ์ฑํ
UI๋ฅผ ๋ง๋๋ ํํ ๋ฆฌ์ผ์ ๋ผ์ด๋ธ๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช
๋๋ฆฌ๊ณ , ์ง๋ต๋ ๋๋๊ตฌ์. ๊ฐ์ด ์ค์ต์ ํด๋ณด๋ฉฐ ์ดํด๋๋ฅผ ์์๊ฐ๋ ค ํฉ๋๋ค. RAG์ ์ฅ๊ณ ๊ธฐ๋ฐ์ RAG ๊ฐ๋ฐ์ ๋ํด์ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ์ด๋ฒ ์ฃผ ํ ์์ผ์ ์ ํ๋ธ๋ฅผ ํตํด ๋ต์ด์. :-)
https://www.youtube.com/live/aI-Dt4wSgLY
๊ฐ์ฌํฉ๋๋ค.
ํ์ด์ฌ์ฌ๋๋ฐฉ ์ด์ง์ ๋๋ฆผ
JetBrains์์ ์งํํ 2024 Django ๊ฐ๋ฐ์ ์ค๋ฌธ์กฐ์ฌ ๋ถ์ ํฌ์คํ
์ ๊ณต์ ๋๋ฆฝ๋๋ค.
https://blog.jetbrains.com/ko/pycharm/2024/09/the-state-of-django/
๋น๋๊ธฐ: Django ๊ฐ๋ฐ์์ 61%๊ฐ ์ฌ์ฉ
ํ๋ฐํธ์๋: Django ๊ฐ๋ฐ์๊ฐ HTMX, Alpine.js ๋ฐ Tailwind CSS ๋ฑ์ ์ ์ ๋ ์ ํธ
๋ฐ์ดํฐ๋ฒ ์ด์ค: Django ๊ฐ๋ฐ์์ 75%๋ PostgreSQL๋ฅผ ์ ํธํ๊ณ 50%๋ ์บ์์ฉ์ผ๋ก Redis๋ฅผ ์ฌ์ฉ
์ค์ผ์คํธ๋ ์ด์ : 50% ์ด์์ Django ๊ฐ๋ฐ์๊ฐ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ์ฌ์ฉ
CI ์์คํ : GitHub Actions์ด ์ ๊ณ๋ฅผ ์ ๋
IaC: Django ๊ฐ๋ฐ์์ 39%๋ Infrastructure as Code(IaC)๋ฅผ ์ฌ์ฉ
์ด ์ค์ ์ฝ๋ฉํธ๋ฅผ ๋ช ๊ฐ ๋จ๊ฒจ๋ด ๋๋ค.
์ ๋ ์์ฆ ๋น๋๊ธฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์ฝ๋๊ฐ async def ์ ๋๋ค. AI์ ์๋์๋ ์ธ๋ถ API ํธ์ถ์ด ๋ง๊ธฐ ๋๋ฌธ์ I/O ์ต์ ํ๊ฐ ํ์ํ๊ตฌ์. ์ด์ ์ฅ๊ณ ๋ด์์๋ async ์ ์ฉํ์๋ฉด ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์๋ฒ๋ฅผ ์ด์ํ ์ ์์ต๋๋ค. ์ฅ๊ณ ๋ชจ๋ธ์ด๋ ๋ช๋ช ์ฅ์์๋ค์ด ๋น๋๊ธฐ๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์, ๋น๋๊ธฐ ๋ฒ์ ์ ์ฅ์์๋ฅผ ๋ฐ๋ก ๊ตฌํํ๊ธด ํด์ผํฉ๋๋ค. ์ ๊ฐ ๊ตฌํํ ๋น๋๊ธฐ ๋ฒ์ ์ login_required, csrf_exept, require_http_methods ์ฅ์์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด๋ณด์ธ์. ํ์ด์ฌ์์๋ ๋น๋๊ธฐ ํจ์ ์ด๋ฆ ์์ a๋ฅผ ๋ถ์ด๋ ์ปจ๋ฒค์ ์ด ์์ต๋๋ค.
htmx/alpine.js/tailwindcss ๋ ์ ๊ฐ ๊ฐ๋ฐํ django-pyhub-ai ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ์ ๊ทน ํ์ฉํ๊ณ ์๋ ๋ฐ์. ๋ณธ ๊ฐ์์์๋ htmx๋ฅผ ์ ๊ทน ๋ค๋ฃจ๊ณ ์์ฃ .
PostgreSQL์ ์ ์ธ๊ณ์ ์ผ๋ก ์ธ๊ธฐ๊ฐ ๊ธ์์นํ๊ณ ์๊ตฌ์. ruby on rails ์ง์์์ ์์ ์ค์ธ sqlite3 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ญ๋ง๋ช ์ ๋์ ์ ์ ๋์์ ์๋น์ค์์๋ ํ ๋์ ์๋ฒ๋ก๋ ์๋น์ค๊ฐ ์ ๋๋ค๊ณ ํฉ๋๋ค. sqlite3 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ์คํธ์ฉ DB๋ก ์๊ฐํ๊ธฐ ์ฝ์ง๋ง, ์์ฆ ๊ฐ์ด disk i/o๊ฐ ๋น์ฝ์ ์ผ๋ก ๋นจ๋ผ์ง๊ณ , cpu/memory๊ฐ 20๋ ์ ์ ๋นํด 100๋ฐฐ ์ด์ ์ข์์ง ์๋์๋, ์ถฉ๋ถํ ์ข์ ์ฑ๋ฅ์ ๋ฐํํ๋ค๊ณ ํฉ๋๋ค.
2024๋ ํจ๊ป ํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฌ๊ตฌ์. ๋ค๊ฐ์ค๋ 2025๋ ์๋ ์ ๋ถํ๋๋ฆฝ๋๋ค.
์ฌ๋ฌ๋ถ์ ํ์ด์ฌ/์ฅ๊ณ ํ์ด์ค๋ฉ์ด์ปค๊ฐ ๋๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์ด์ง์ ๋๋ฆผ
์๋ ํ์ธ์.
<ํ์ด์ฌ/์ฅ๊ณ ๋ก 30๋ถ ๋ง์ ๋ฐ์ดํฐ ๋ถ์ ์์ด์ ํธ ์ฑ๋ด ๋ง๋ค๊ธฐ> ํํ ๋ฆฌ์ผ ์์๊ณผ ๋ฌธ์๋ฅผ ๊ณต์ ๋๋ฆฝ๋๋ค.
ํํ ๋ฆฌ์ผ ์์ : https://www.youtube.com/watch?v=10Fp78n3jSw
ํํ ๋ฆฌ์ผ ๋ฌธ์ : https://django-pyhub-ai.readthedocs.io
์ ๊ฐ ๋ง๋ django-pyhub-ai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ๋น ๋ฅด๊ฒ LLM ์ํฉ๊ทน ์ฑ๋ด๊ณผ ๋ฐ์ดํฐ๋ถ์ ์์ด์ ํธ ์ฑ๋ด์ ๋ง๋๋ ๊ณผ์ ์ ๋ด๊ณ ์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฅ๊ณ ์ ํต์ฌ ์ฒ ํ ์ค DRY(Donโt Repeat Yourself) ์ฒ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ๋ณต์ ์ด๊ณ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ ์ ๊ฑฐํ๊ณ , ํจ์จ์ ์ธ ์์ด์ ํธ ๊ธฐ๋ฐ ์ฑํ ์๋น์ค๋ฅผ ์์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์น ํ๋ก ํธ์๋์ ๋ํ ๊ณ ๋ฏผ์์ด ์ค์ ์ ๊ฐ๊น์ด ์ฝ๋๋ก ์์ด์ ํธ ์ฑ๋ด์ ๊ตฌํํ์ค ์ ์์ต๋๋ค. ์ฅ๊ณ ์ฑ๋์ค์ HTMX ๊ธฐ๋ฐ์ด๋ฉฐ, LLM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๋ช ํ ๋ญ์ฒด์ธ์ ๋ด๋ถ์์ ์ฌ์ฉํฉ๋๋ค.
์ฑ๋ด ๋์ ํ๋ฉด
django์ ๋ชจ๋ธ/์บ์/ํ ํ๋ฆฟ/์คํ ๋ฆฌ์ง/API/์ธ์ฆ ๋ฑ์ ํ์ฉํ๋ฉด, ์์ฐ์ฑ ๋๊ฒ ๋์ฑ ๊ฐ์น์๋ ์ธ๊ณต์ง๋ฅ ์์ด์ ํธ๋ฅผ ๋ง๋ค ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ผ๋ก๋ ๋ค์ํ ์ฅ๊ณ ์์ ์ ํด๋๋ฆด ์ ์๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค.
๋๋ฆฌ ๊ณต์ ๋ถํ๋๋ฆฌ๊ตฌ์.
์ฌ๋ฌ๋ถ์ ํ์ด์ฌ/์ฅ๊ณ ํ์ด์ค๋ฉ์ด์ปค๊ฐ ๋๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
ํ์ด์ฌ์ฌ๋๋ฐฉ, ์ด์ง์ ๋๋ฆผ
์ธํ๋ฐ <์ฅ๊ณ ์ค๊ณ์ฒ ํ์ผ๋ก ์์ํ๋ ํ์ด์ฌ ์ฅ๊ณ ์
๋ฌธ ๊ฐ์>๋ฅผ ์ค๋ ๋ถ๋ก ๋ฌด๋ฃ๋ก ์ ํํฉ๋๋ค.
https://inf.run/RDjT
์ฃผ๋ณ์ ์ฅ๊ณ ์ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ด ์๋ค๋ฉด ๋๋ฆฌ ๊ณต์ ๋ถํ๋๋ฆฝ๋๋ค. ํ์ง๋ง ์น๊ฐ๋ฐ์ด ์ฒ์์ด์ ๋ถ๋ค์๊ฒ๋ ์ด๋ ค์ฐ์ค ์ ์์ต๋๋ค. ์น๊ฐ๋ฐ์ด ์ฒ์์ด์ ๋ถ๋ค๊ป์๋ ์ํ์ฝ๋ฉ์ <Python Django Web Framework> ์ ํ๋ธ ๊ฐ์ข๋ฅผ ๋จผ์ ํ์ตํ์๊ธฐ๋ฅผ ์ถ์ฒ๋๋ฆฝ๋๋ค.
https://www.youtube.com/playlist?list=PLuHgQVnccGMDLp4GH-rgQhVKqqZawlNwG
๊ฐ์ฌํฉ๋๋ค. :-)
์กฐ๊ธ ์ ์ ํ ๋๋ ธํธ ์ ํ๋ธ์ OpenAI Realtime API๋ฅผ ํ ์คํธํ ์์์ด ์ฌ๋ผ์์ต๋๋ค.
https://github.com/langchain-ai/react-voice-agent ์ ์ฅ์์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ ๋ณด์ฌ์ฃผ์ จ๊ตฌ์. ์ด ์ ์ฅ์์ ์ฝ๋๋ Starlette๊ณผ langchain ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์ด์์ต๋๋ค.
์ด๋ฅผ django/channels + langchain ๋ฒ์ ์ผ๋ก ํฌํ
ํด๋ดค์ต๋๋ค. ;-)
https://github.com/pyhub-kr/pyhub-django-react-voice-agent
react-voice-agent ํ๋ก์ ํธ์ ๊ธฐ๋ฅ์ ์ผ๋ก ๋์ผํฉ๋๋ค. OPENAI_API_KEY ํ๊ฒฝ๋ณ์๋ง ์ค์ ํ์๊ณ , http://localhost:8000 ํ์ด์ง๋ก ์ ์ํ์๋ฉด ๋์ํฉ๋๋ค.
์ ํ ๋๋ ธํธ ์์์ ์์ง ์ ๋ณด์ จ๋ค๋ฉด ๋จผ์ ๋ณด์๊ณ , ์ฝ๋๋ฅผ ๋๋ ค๋ณด์ธ์.
django channels์ AsyncWebsocketConsumer๋ฅผ ํ์ฉํ์ต๋๋ค.
#openai #realtime
"์ฅ๊ณ ๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์น ํ๋ก ํธ์๋ ๊ฐ๋ฐ" ์ฃผ์ ๋ก ๋ชจ๋์ ์ฐ๊ตฌ์ ๊ฐ๋จ์ ์์ ํน๊ฐ์ ๊ณง 3์๋ถํฐ 2์๊ฐ ๋์ ์คํ๋ผ์ธ์ผ๋ก ์งํํฉ๋๋ค. ๋ฐํ ์ฌ๋ผ์ด๋์ ์ฝ๋ ์ ์ฅ์๋ฅผ ๊ณต์ ํฉ๋๋ค.
1. ์ฅ๊ณ ์์ django-cotton ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๋ค์ํ ๋์ ์ธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
- ์์ด์ฝ ์ปดํฌ๋ํธ, ์ง๋ ์ปดํฌ๋ํธ, ์ด๋ฏธ์ง ํ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์์ ฏ, ๋ฑ)
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์์ ๋น๊ต
- HTMX ํ์ฉ
2. django view๋ฅผ ํ์ฉํ์ฌ ChatGPT ์๋น์ค ๋ง๋ค๊ธฐ (No JS)
- ์ด๋ฏธ์ง/ํ ์คํธ ์ ๋ ฅ๊ฐ ์ ์ก (๋ฉํฐ๋ชจ๋ฌ)
- ์คํธ๋ฆฌ๋ฐ ์๋ต์ ๊ตฌํํ๊ณ ํ๋ฉด์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
- LLM์ ํ์ฉํ ์๋ต ์์ฑ
- ํด๋์ค ๊ธฐ๋ฐ ๋ทฐ๋ก ๋ฆฌํฉํ ๋งํ๋ ๋ฐฉ๋ฒ
- ์น์์ผ ์์ด SSE๋ฅผ ์ฅ๊ณ ๋ทฐ๋ก ๊ตฌํํ์ฌ, ๋ค์๊ฐ ์ฑํ ๊ตฌํ
3. ์์ ์์ฌ๋ก ํผ ๋ ์ด์์ ๊ตฌ์ฑํ๊ธฐ
- ์ปค์คํ ํ ํ๋ฆฟ ํ์ฉ
- django-widget-tweaks ๋ฐ django-crispy-forms ํ์ฉ
4. ์น API์์ JWT๊ฐ ์๋, ์ฅ๊ณ ๊ธฐ๋ณธ์ ์ธ์ ์ธ์ฆ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ
- JWT ์ธ์ฆ๊ณผ์ ๋น๊ต
- ์ฅ๊ณ LoginView/LogoutView์์ ๋ค๋ฅธ ํธ์คํธ๋ก๋ถํฐ์ ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ์์ฒญ ์ฒ๋ฆฌํ๊ธฐ
- ๋ค๋ฅธ ํธ์คํธ์์ ์ธ์ ์ฟ ํค๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ
์ฌ๋ผ์ด๋ : https://drive.google.com/file/d/1tcdHEiadFuFb-HOSEVIQkCvgJ8ssY4wv/view?usp=drive_link
์ฝ๋ ์ ์ฅ์ : https://github.com/pyhub-kr/pyhub-htmx-examples
์์์ผ๋ก๋ ๋ฐ๋ก ์ดฌ์ํด์, ๊ณต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. :-)
์๋ ํ์ธ์. ์ด์ง์์ ๋๋ค.
์ง๋ ์๋ฒฝ์ ๋ชจ๋ ์์์ ์
๋ก๋ํ์ต๋๋ค.
์ค๋ ์๊ฐ ๊ธฐ๋ค๋ ค์ฃผ์
์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ถ์ ์ ๋ง์น ์ ์์์ต๋๋ค.
๋ฐฐํฌ ๋ง์ง๋ง ์์์์ HTTPS ์ธ์ฆ์ ๋ฐ๊ธํ๊ธฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ์. HTTPS ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์๋ ๋๋ฉ์ธ์ด ํ์ํ๊ฑฐ๋ ์. ๋๋ฉ์ธ์ด ์์ผ์ ๋ถ๋ค์ ์ํด, ๋ณธ ๊ฐ์ ์๊ฐ์ ํํ์ผ๋ก 1ํ์ ํํด pyhub-django.com ์๋ธ ๋๋ฉ์ธ์ ์ฐ์ต ๋ชฉ์ ์ผ๋ก ๋ฐ๊ธํด๋๋ฆฝ๋๋ค. ๊ด๋ จ ๊ณต์ง๋ฅผ ํตํด ๋ด์ฉ์ ํ์ธํ์๊ณ ์ ์ฒญํ์ค ์ ์์ต๋๋ค.
๋ณธ ๊ฐ์ ์ ์์ด ์ฌ๊ธฐ์์ ๋๋๋ ๊ฒ์ด ์๋๋ผ, ์ง์์ ์ผ๋ก ๋ด์ฉ์ ์ ๋ฐ์ดํธํ์ฌ ๋ณด๋ค ์ข์ ๊ฐ์๊ฐ ๋ ์ ์๋๋ก ์ต์ ์ ๋คํ๊ฒ ์ต๋๋ค.
์์ผ๋ก๋ ๋ง์ ๊ด์ฌ๊ณผ ์ฑ์์ ๋ถํ๋๋ฆฝ๋๋ค.
์ฌ๋ฌ๋ถ์ ํ์ด์ฌ/์ฅ๊ณ ํ์ด์ค๋ฉ์ด์ปค๊ฐ ๋๊ฒ ์ต๋๋ค.
ํ์ด์ฌ ์ฌ๋๋ฐฉ, ์ด์ง์ ๋๋ฆผ
https://risingstars.js.org/2023/en#section-framework ์ ๋ฐ๋ฅด๋ฉด, HTMX ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 2023๋ 7์๋ถํฐ GitHub ์คํ์๊ฐ ๊ธ๋ฑํ๊ตฐ์. ์ ์ฒด ์คํ์๋ก๋ ๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋นํด ๋ง์ด ๋ถ์กฑํ์ง๋ง, ์ต๊ทผ ๋ง์ด ๊ด์ฌ์ ๋ฐ๊ณ ์์์ ๋ณด์ฌ์ฃผ๋ ์งํ๋ค์.
2023๋ ์ ์ถ๊ฐ๋ก ๋ฐ์ GitHub ์คํ์
๋ฆฌ์กํธ : + 1.69๋ง
htmx : + 1.56๋ง
์ค๋ฒจํธ : + 1.03๋ง
Million : + 8200
Vue.js : + 7900
HTMX๋ ํ๋ก ํธ์ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์ ๋ฐฑ์๋๋ฅผ ๊ฐ๋ฆฌ์ง ์์ง๋ง, ์ฅ๊ณ ์ ๋์ฑ ์ข์ ๊ถํฉ์ ๋ณด์ฌ์ฃผ๊ณ ์๊ตฌ์. js์ฝ๋๋ฅผ ๊ฑฐ์ ์ฐ์ง ์๊ณ html ๋งํฌ์ ๋ง์ผ๋ก ๋ง์ UI ์์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฌผ๋ก js๋ฅผ ์ธ ์ค ์๋ฉด ๋ ๋ง์ ์์ ์ ํ ์ ์๊ฒ ์ฃ .
๋ณธ ๊ฐ์์์๋ "์น์ 10: ์ฅ๊ณ ์ฃผ๋์ ์น ํ๋ก ํธ์๋ ๊ธฐ์ ๊ณผ ์น ์ปดํฌ๋ํธ" ์์ HTMX์ ๋ํด 15๊ฐ ์์์ ๊ฑธ์ณ ๊น๊ฒ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ;-)
์ฌ๋ฌ๋ถ. HTMX ๊ฐ๋ ฅ ์ถ์ฒ์ ๋๋ค~!!!
์ โฉ44,000
5๊ฐ์ ํ ๋ถ ์
โฉ220,000