์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์™„๋ฒฝ ๊ฐ€์ด๋“œ with ๋ฆฌ์•กํŠธ (์žฅ๊ณ  4.2 ๊ธฐ์ค€)

ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ ๋‹ค์ ธ๋ณด์„ธ์š”. ์žฅ๊ณ  ํ•™์Šต์—๋Š” ์‹œ๊ฐ„๋„ ๊ฑธ๋ฆฌ์ง€๋งŒ, ๋ฐ˜๋ณต๋˜๋Š” ๊ฐœ๋ฐœ ์†์— ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ์ƒ์„ ํ˜„์‹ค๋กœ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.

์ƒˆ์†Œ์‹

8 ๊ฐœ

  • ์•ˆ๋…•ํ•˜์„ธ์š”.

    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

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ํŒŒ์ด์ฌ์‚ฌ๋ž‘๋ฐฉ ์ด์ง„์„ ๋“œ๋ฆผ

    2
  • 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)๋ฅผ ์‚ฌ์šฉ

    ์ด ์ค‘์— ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ช‡ ๊ฐœ ๋‚จ๊ฒจ๋ด…๋‹ˆ๋‹ค.

    1. ์ €๋„ ์š”์ฆ˜ ๋น„๋™๊ธฐ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ async def ์ž…๋‹ˆ๋‹ค. AI์˜ ์‹œ๋Œ€์—๋Š” ์™ธ๋ถ€ API ํ˜ธ์ถœ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— I/O ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•˜๊ตฌ์š”. ์ด์— ์žฅ๊ณ  ๋‚ด์—์„œ๋„ async ์ ์šฉํ•˜์‹œ๋ฉด ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ณ  ๋ชจ๋ธ์ด๋‚˜ ๋ช‡๋ช‡ ์žฅ์‹์ž๋“ค์ด ๋น„๋™๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋น„๋™๊ธฐ ๋ฒ„์ „์˜ ์žฅ์‹์ž๋ฅผ ๋”ฐ๋กœ ๊ตฌํ˜„ํ•˜๊ธด ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ตฌํ˜„ํ•œ ๋น„๋™๊ธฐ ๋ฒ„์ „์˜ login_required, csrf_exept, require_http_methods ์žฅ์‹์ž ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด์„ธ์š”. ํŒŒ์ด์ฌ์—์„œ๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ์ด๋ฆ„ ์•ž์— a๋ฅผ ๋ถ™์ด๋Š” ์ปจ๋ฒค์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    2. htmx/alpine.js/tailwindcss ๋Š” ์ œ๊ฐ€ ๊ฐœ๋ฐœํ•œ django-pyhub-ai ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋„ ์ ๊ทน ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์š”. ๋ณธ ๊ฐ•์˜์—์„œ๋„ htmx๋ฅผ ์ ๊ทน ๋‹ค๋ฃจ๊ณ  ์žˆ์ฃ .

    3. PostgreSQL์€ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์ธ๊ธฐ๊ฐ€ ๊ธ‰์ƒ์Šนํ•˜๊ณ  ์žˆ๊ตฌ์š”. ruby on rails ์ง„์˜์—์„œ ์‹œ์ž‘ ์ค‘์ธ sqlite3 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ์‹ญ๋งŒ๋ช… ์ •๋„์˜ ์œ ์ € ๋Œ€์ƒ์˜ ์„œ๋น„์Šค์—์„œ๋Š” ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋กœ๋„ ์„œ๋น„์Šค๊ฐ€ ์ž˜ ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. sqlite3 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ŠคํŠธ์šฉ DB๋กœ ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, ์š”์ฆ˜ ๊ฐ™์ด disk i/o๊ฐ€ ๋น„์•ฝ์ ์œผ๋กœ ๋นจ๋ผ์ง€๊ณ , cpu/memory๊ฐ€ 20๋…„ ์ „์— ๋น„ํ•ด 100๋ฐฐ ์ด์ƒ ์ข‹์•„์ง„ ์‹œ๋Œ€์—๋Š”, ์ถฉ๋ถ„ํžˆ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    2024๋…„ ํ•จ๊ป˜ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ตฌ์š”. ๋‹ค๊ฐ€์˜ค๋Š” 2025๋…„์—๋„ ์ž˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ์—ฌ๋Ÿฌ๋ถ„์˜ ํŒŒ์ด์ฌ/์žฅ๊ณ  ํŽ˜์ด์Šค๋ฉ”์ด์ปค๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ง„์„ ๋“œ๋ฆผ

    0
  • ์•ˆ๋…•ํ•˜์„ธ์š”.

    <ํŒŒ์ด์ฌ/์žฅ๊ณ ๋กœ 30๋ถ„ ๋งŒ์— ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—์ด์ „ํŠธ ์ฑ—๋ด‡ ๋งŒ๋“ค๊ธฐ> ํŠœํ† ๋ฆฌ์–ผ ์˜์ƒ๊ณผ ๋ฌธ์„œ๋ฅผ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ์ œ๊ฐ€ ๋งŒ๋“  django-pyhub-ai ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋น ๋ฅด๊ฒŒ LLM ์ƒํ™ฉ๊ทน ์ฑ—๋ด‡๊ณผ ๋ฐ์ดํ„ฐ๋ถ„์„ ์—์ด์ „ํŠธ ์ฑ—๋ด‡์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์žฅ๊ณ ์˜ ํ•ต์‹ฌ ์ฒ ํ•™ ์ค‘ DRY(Donโ€™t Repeat Yourself) ์ฒ ํ•™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ˜๋ณต์ ์ด๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์„ ์ œ๊ฑฐํ•˜๊ณ , ํšจ์œจ์ ์ธ ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์ฑ„ํŒ… ์„œ๋น„์Šค๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์›น ํ”„๋ก ํŠธ์—”๋“œ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์—†์ด ์„ค์ •์— ๊ฐ€๊นŒ์šด ์ฝ”๋“œ๋กœ ์—์ด์ „ํŠธ ์ฑ—๋ด‡์„ ๊ตฌํ˜„ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ณ  ์ฑ„๋„์Šค์™€ HTMX ๊ธฐ๋ฐ˜์ด๋ฉฐ, LLM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์œ ๋ช…ํ•œ ๋žญ์ฒด์ธ์„ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    image.png

    ์ฑ—๋ด‡ ๋™์ž‘ ํ™”๋ฉด

    image.png

    django์˜ ๋ชจ๋ธ/์บ์‹œ/ํ…œํ”Œ๋ฆฟ/์Šคํ† ๋ฆฌ์ง€/API/์ธ์ฆ ๋“ฑ์„ ํ™œ์šฉํ•˜๋ฉด, ์ƒ์‚ฐ์„ฑ ๋†’๊ฒŒ ๋”์šฑ ๊ฐ€์น˜์žˆ๋Š” ์ธ๊ณต์ง€๋Šฅ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๋‹ค์–‘ํ•œ ์žฅ๊ณ  ์†Œ์‹ ์ „ํ•ด๋“œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋„๋ฆฌ ๊ณต์œ  ๋ถ€ํƒ๋“œ๋ฆฌ๊ตฌ์š”.
    ์—ฌ๋Ÿฌ๋ถ„์˜ ํŒŒ์ด์ฌ/์žฅ๊ณ  ํŽ˜์ด์Šค๋ฉ”์ด์ปค๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ํŒŒ์ด์ฌ์‚ฌ๋ž‘๋ฐฉ, ์ด์ง„์„ ๋“œ๋ฆผ

    0
  • ์ธํ”„๋Ÿฐ <์žฅ๊ณ  ์„ค๊ณ„์ฒ ํ•™์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ด์ฌ ์žฅ๊ณ  ์ž…๋ฌธ ๊ฐ•์˜>๋ฅผ ์˜ค๋Š˜ ๋ถ€๋กœ ๋ฌด๋ฃŒ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    https://inf.run/RDjT

    ์ฃผ๋ณ€์— ์žฅ๊ณ ์— ๊ด€์‹ฌ์žˆ์œผ์‹  ๋ถ„๋“ค์ด ์žˆ๋‹ค๋ฉด ๋„๋ฆฌ ๊ณต์œ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›น๊ฐœ๋ฐœ์ด ์ฒ˜์Œ์ด์‹  ๋ถ„๋“ค์—๊ฒŒ๋Š” ์–ด๋ ค์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น๊ฐœ๋ฐœ์ด ์ฒ˜์Œ์ด์‹  ๋ถ„๋“ค๊ป˜์„œ๋Š” ์ƒํ™œ์ฝ”๋”ฉ์˜ <Python Django Web Framework> ์œ ํŠœ๋ธŒ ๊ฐ•์ขŒ๋ฅผ ๋จผ์ € ํ•™์Šตํ•˜์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    https://www.youtube.com/playlist?list=PLuHgQVnccGMDLp4GH-rgQhVKqqZawlNwG

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :-)

    1
  • ์กฐ๊ธˆ ์ „์— ํ…Œ๋””๋…ธํŠธ ์œ ํŠœ๋ธŒ์— 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

    0
  • ๏ฝฅ

    ์ˆ˜์ •๋จ

    "์žฅ๊ณ ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•œ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ" ์ฃผ์ œ๋กœ ๋ชจ๋‘์˜ ์—ฐ๊ตฌ์†Œ ๊ฐ•๋‚จ์ ์—์„œ ํŠน๊ฐ•์„ ๊ณง 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


    ์˜์ƒ์œผ๋กœ๋Š” ๋”ฐ๋กœ ์ดฌ์˜ํ•ด์„œ, ๊ณต์œ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. :-)

    1
  • ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด์ง„์„์ž…๋‹ˆ๋‹ค.

    ์ง€๋‚œ ์ƒˆ๋ฒฝ์— ๋ชจ๋“  ์˜์ƒ์„ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์˜ค๋žœ ์‹œ๊ฐ„ ๊ธฐ๋‹ค๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ž˜ ๋งˆ์น  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋ฐฐํฌ ๋งˆ์ง€๋ง‰ ์˜์ƒ์—์„œ HTTPS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ํ•˜๊ธฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ์š”. HTTPS ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„๋ฉ”์ธ์ด ํ•„์š”ํ•˜๊ฑฐ๋“ ์š”. ๋„๋ฉ”์ธ์ด ์—†์œผ์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด, ๋ณธ ๊ฐ•์˜ ์ˆ˜๊ฐ•์ƒ ํ˜œํƒ์œผ๋กœ 1ํšŒ์— ํ•œํ•ด pyhub-django.com ์„œ๋ธŒ ๋„๋ฉ”์ธ์„ ์—ฐ์Šต ๋ชฉ์ ์œผ๋กœ ๋ฐœ๊ธ‰ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ด€๋ จ ๊ณต์ง€๋ฅผ ํ†ตํ•ด ๋‚ด์šฉ์„ ํ™•์ธํ•˜์‹œ๊ณ  ์‹ ์ฒญํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ณธ ๊ฐ•์˜ ์ œ์ž‘์ด ์—ฌ๊ธฐ์—์„œ ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ง€์†์ ์œผ๋กœ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ณด๋‹ค ์ข‹์€ ๊ฐ•์˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์•ž์œผ๋กœ๋„ ๋งŽ์€ ๊ด€์‹ฌ๊ณผ ์„ฑ์›์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ์—ฌ๋Ÿฌ๋ถ„์˜ ํŒŒ์ด์ฌ/์žฅ๊ณ  ํŽ˜์ด์Šค๋ฉ”์ด์ปค๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ํŒŒ์ด์ฌ ์‚ฌ๋ž‘๋ฐฉ, ์ด์ง„์„ ๋“œ๋ฆผ

    5
  • ๏ฝฅ

    ์ˆ˜์ •๋จ

    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

    image

    HTMX๋Š” ํ”„๋ก ํŠธ์—”ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐ€๋ฆฌ์ง„ ์•Š์ง€๋งŒ, ์žฅ๊ณ ์™€ ๋”์šฑ ์ข‹์€ ๊ถํ•ฉ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๊ตฌ์š”. js์ฝ”๋“œ๋ฅผ ๊ฑฐ์˜ ์“ฐ์ง€ ์•Š๊ณ  html ๋งˆํฌ์—… ๋งŒ์œผ๋กœ ๋งŽ์€ UI ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  js๋ฅผ ์“ธ ์ค„ ์•Œ๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ .

    ๋ณธ ๊ฐ•์˜์—์„œ๋„ "์„น์…˜ 10: ์žฅ๊ณ  ์ฃผ๋„์˜ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ๊ณผ ์›น ์ปดํฌ๋„ŒํŠธ" ์—์„œ HTMX์— ๋Œ€ํ•ด 15๊ฐœ ์˜์ƒ์— ๊ฑธ์ณ ๊นŠ๊ฒŒ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ;-)

    https://www.inflearn.com/course/lecture?courseSlug=%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%A5%EA%B3%A0-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4-with%EB%A6%AC%EC%95%A1%ED%8A%B8&unitId=204268

    ์—ฌ๋Ÿฌ๋ถ„. HTMX ๊ฐ•๋ ฅ ์ถ”์ฒœ์ž…๋‹ˆ๋‹ค~!!!

    0

์›” โ‚ฉ44,000

5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

โ‚ฉ220,000