Hypermedia On Whatever you'd Like

Carson Gross

MPA์˜ (๋‚จ์•„ ์žˆ๋Š”) ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” (์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ์–ธ์–ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋ฏธ ๋ฐ˜(ๅ) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ €ํ•ญ๊ตฐ์˜ ์ผ์›์ด๋ผ๋ฉด, ์ด ๋ฐœํ‘œ์˜ ๋‚˜๋จธ์ง€ ๋‚ด์šฉ์€ ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์„ ๊ฒ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ด ๋ถ€๋ถ„์€ ๋‚˜์ค‘์— ๋‹ค๋ฃฐ ๊ฑด๋ฐ, ๊ทธ ๋ฐฐ๋Š” ์ด๋ฏธ ๋– ๋‚œ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ

Rich Harris - SPAs๊ฐ€ ์›น์„ ๋ง์ณค๋Š”๊ฐ€?

์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋Š” โ€œHOWL ์Šคํƒโ€œ์ž…๋‹ˆ๋‹ค. HOWL์€ _Hypermedia On Whatever youโ€™d Like_์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๋†๋‹ด ๊ฐ™์ง€๋งŒ ๊ฒฐ์ฝ” ๋†๋‹ด์ด ์•„๋‹Œ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ž˜ ์•Œ๋ ค์ง„ LAMP ์Šคํƒ์ด๋‚˜ MEAN ์Šคํƒ์„ ์ฐธ์กฐํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

HOWL ์Šคํƒ์˜ ์š”์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ํ•˜์ดํผ๋ฏธ๋””์–ด ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•  ๋•Œ, ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ์ž์‹ ์˜ ๊ธฐ์ˆ ์  ์ทจํ–ฅ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ธฐ์ˆ ์„ ๋ฌด์—‡์ด๋“  ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

#์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์••๋ฐ•๊ฐ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— SPA ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด, ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํฐ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ƒํ™ฉ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์ด ํ•„์—ฐ์ ์œผ๋กœ ๋– ์˜ค๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

โ€œ๊ทธ๋ ‡๋‹ค๋ฉด, ์™œ ๋ฐฑ์—”๋“œ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•˜์ง€ ์•Š์ฃ ?โ€

์ด ์งˆ๋ฌธ์€ ํ•ฉ๋ฆฌ์ ์ด๋ฉฐ, ์–‘์ธก์—์„œ ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๋ฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

ํ”„๋ก ํŠธ์—”๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ํˆฌ์ž๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด๋Ÿฌํ•œ _์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์••๋ฐ•๊ฐ_์€ ์ ์  ๋” ์ปค์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ง€๋‚œ 5๋…„ ๋™์•ˆ ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉฐ, ์ด์ œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ํ›Œ๋ฅญํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด์˜ ๋ณต์žก์„ฑ์— ๋Œ€ํ•œ ์ด์ „์˜ ๋น„ํŒ์€ ์ด์ œ ๋ฆฐํŒ…, ๊ฐœ๋ฐœ์ž์˜ ๊ทœ์œจ ๋“ฑ์„ ํ†ตํ•ด ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น ๊ฐœ๋ฐœ์˜ ์‚ฌ์ƒ ๋ฆฌ๋”๋“ค ์‚ฌ์ด์—์„œ ์ง€๋ฐฐ์ ์ธ ์–ธ์–ด์ด๋ฉฐ, ์ˆ˜๋งŽ์€ ํŠœํ† ๋ฆฌ์–ผ, ์ฝ”๋“œ ์บ ํ”„ ๋“ฑ์ด ์ด ์–ธ์–ด๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๊ฐ•์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ด ์„ฑ๊ณต์„ ๋ถ€๋ฅธ๋‹ค๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(์™€ React)๋Š” ์„ฑ๊ณต์„ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ _์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์••๋ฐ•๊ฐ_์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๊ฑฐ์˜ ๋ชจ๋“  ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋Š ์ •๋„๋Š” ์ด ์••๋ฐ•๊ฐ์„ ๋Š๋‚€๋‹ค๊ณ  ์ธ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

#ํ•˜์ดํผ๋ฏธ๋””์–ด: ์šฐ๋ฆฌ์˜ ์œ ์ผํ•œ ํฌ๋ง

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ฐœ์ž๋“ค์ด ์›น ๊ฐœ๋ฐœ์—์„œ ์–ด๋–ค ํฌ๋ง์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„๊นŒ์š”?

์Œ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋‚˜๋ž€ํžˆ ๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ํ•˜๋‚˜์˜ ์˜ค๋ž˜๋œ ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค: _ํ•˜์ดํผ๋ฏธ๋””์–ด_์ž…๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋Š” ํ›Œ๋ฅญํ•œ HTML ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(๊ด€๋ จ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ, ๋˜๋Š” DOM๋„ ํฌํ•จ). ์‚ฌ์‹ค, SPA ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„, JSX ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” UI๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ˜•ํƒœ๋กœ๋“  ํ•˜์ดํผ๋ฏธ๋””์–ด ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ HTML ๋˜๋Š” ๊ด€๋ จ DOM API๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด HTML์„ ๋” ๊ฐ•๋ ฅํ•œ ํ•˜์ดํผ๋ฏธ๋””์–ด๋กœ ๋งŒ๋“ค๋ฉด ์–ด๋–จ๊นŒ์š”?

์ด๊ฒƒ์ด ๋ฐ”๋กœ htmx์˜ ์•„์ด๋””์–ด๋กœ, ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ„ด์„ ํ•˜์ดํผ๋ฏธ๋””์–ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ „ํ†ต์ ์ธ MPA์™€ SPA ๊ฐ„์˜ UX ๊ฒฉ์ฐจ๊ฐ€ ์ข์•„์ง€๋ฉด์„œ, ํ•˜์ดํผ๋ฏธ๋””์–ด ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๋” ๋„“์€ ๋ฒ”์œ„์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ํ˜„์‹ค์ ์œผ๋กœ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

ํ•˜์ดํผ๋ฏธ๋””์–ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜๋ฉด(๊ธฐ์–ตํ•˜์„ธ์š”, ์–ด์จŒ๋“  ํ•˜์ดํผ๋ฏธ๋””์–ด ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค), ๋†€๋ผ์šด ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค:

Harris๊ฐ€ MPA์— ๊ท€์†์‹œ์ผฐ๋˜ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์–ธ์–ด ์„ ํƒ์˜ ์ด์ ์ด ๋‹ค์‹œ ํ…Œ์ด๋ธ” ์œ„๋กœ ์˜ฌ๋ผ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์ฃผ๋กœ HTML๋กœ ์ž‘์„ฑ๋˜๊ณ , ์•ฝ๊ฐ„์˜ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŒ…์ด ํฌํ•จ๋˜๋ฉฐ, ๋Œ€๊ทœ๋ชจ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ๋ฐฑ์—”๋“œ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์••๋ฐ•๊ฐ์„ ๊ทน์ ์œผ๋กœ ์ค„์ด๊ฑฐ๋‚˜ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์–ธ์–ด(๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ)๋ฅผ ์„ ํƒํ•  ๋•Œ ๊ธฐ์ˆ ์ , ๋ฏธํ•™์  ๋˜๋Š” ๊ธฐํƒ€ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์€ ๋ชจ๋‘ ์™„์ „ํžˆ ํ•ฉ๋ฆฌ์ ์ธ ๊ธฐ์ˆ ์ , ์ฒ ํ•™์ , ๋ฏธํ•™์  ๊ด€์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•˜์ดํผ๋ฏธ๋””์–ด๋ฅผ ์ฃผ๋œ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ๋กœ ์ฑ„ํƒํ•˜๋ฉด, ์ด ๋ชฉํ‘œ๋“ค์„ ์ด์ค‘ ์ฝ”๋“œ๋ฒ ์ด์Šค ์—†์ด ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ดํผ๋ฏธ๋””์–ด๋Š” ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋“ ์ง€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ๋ฌด์—‡์ด๋“  ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์ดํผ๋ฏธ๋””์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#๋ชจ๋‘๋ฅผ ์œ„ํ•œ ์—ด๋ฆฐ ์›น

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ โ€œ๋ฌด์—‡์ด๋“ โ€œ์ด๋ผ๊ณ  ๋งํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” ์ •๋ง๋กœ ๊ทธ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ตœ๊ทผ htmx ๋””์Šค์ฝ”๋“œ ์„œ๋ฒ„์˜ HOWL ํ•˜์œ„ ์„น์…˜ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ™œ์„ฑํ™”๋œ ์ฑ„๋„๋“ค๋งŒ ๋‚˜์™€ ์žˆ์ง€๋งŒ, ๋” ๋งŽ์€ ์ฑ„๋„์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ง„ํ–‰ ์ค‘์ธ ๋Œ€ํ™”๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: Java, Go, .NET, Rust, Clojure, PHP, Ruby, Python, Ocaml. ์‹ฌ์ง€์–ด htmx๋ฅผ Bash์™€ Cobol๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค!

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

#๊ทธ๋Ÿฌ๋‚˜, ์ด๊ฒƒ์ด ๋ฐ˜(ๅ)-์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ €ํ•ญ์ธ๊ฐ€์š”?

์ด ์—์„ธ์ด๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ ์ „์—, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋””์—๋‚˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ €ํ•ญ์ด ๊ผญ ๋ฐ˜(ๅ)-์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ธ์ง€๋Š” ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ ๋งํ•ด์„œ, ์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๋†๋‹ด์„ ๋งŽ์ด ์›ƒ์–ด ๋„˜๊ฒผ๊ณ , ์‹ฌ์ง€์–ด ์›น์„ ์œ„ํ•œ ๋Œ€์•ˆ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ธ hyperscript๋ฅผ ๋งŒ๋“ค๊ธฐ๊นŒ์ง€ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ˜๋Œ€ํ•˜๋Š” ์ง„์˜์— ์†ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊นŠ์ด ๊ฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ, htmx์™€ hyperscript ๋ชจ๋‘ _์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌ์ถ•_๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด๋Š” ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š”, ๋ฌด์—‡์ด๋“  ๋งํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ๊ทธ ์ž๋ฆฌ์— ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋ผ๋Š” ํฐ ๋ฏธ๋•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ํ•˜์ดํผ๋ฏธ๋””์–ด ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ ์Šคํฌ๋ฆฝํŒ…์— _์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ถ”์ฒœ_ํ•˜๊ธฐ๊นŒ์ง€ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ํ•˜์ดํผ๋ฏธ๋””์–ด ์นœํ™”์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ํ•˜์ดํผ๋ฏธ๋””์–ด ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ _์„œ๋ฒ„ ์‚ฌ์ด๋“œ_์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(๋˜๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ง๋ฆฌ์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ์—ฌ๋Ÿฌ ํ›Œ๋ฅญํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„๊ณผ ๋งŽ์€ ํ›Œ๋ฅญํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹น์‹ ๊ณผ ๋‹น์‹ ์˜ ํŒ€์—๊ฒŒ ๊ฐ€์žฅ ์ข‹์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.

Hypermedia On Whatever youโ€™d Like๋ž€ ์ •๋ง๋กœ โ€™์›ํ•˜๋Š” ๋Œ€๋กœโ€™๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹น์‹ ์˜ ํŒ€์„ ์œ„ํ•œ ์œ ์ผํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์˜ต์…˜์ด ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

#๋ฐฉํ–ฅ์„ ์ „ํ™˜ํ•˜๊ธฐ

ํ•˜์ดํผ๋ฏธ๋””์–ด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋‹ค์‹œ ์ผ์–ด๋‚˜๊ณ  (๊ทธ๋ฆฌ๊ณ  ํ•˜์ดํผ๋ฏธ๋””์–ด๊ฐ€ ๊ฐœ์„ ๋˜๋ฉด์„œ), ์›น์˜ ์—ด๋ฆฐ ๋‹ค์–‘์„ฑ ์žˆ๋Š” ๋ฏธ๋ž˜๋Š” ์ด์ œ ํ˜„์‹ค ๊ฐ€๋Šฅ์„ฑ, ์•„๋‹ˆ๋ฉด ์ด๋ฏธ ํ˜„์‹ค์ด ๋˜์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์›น์€ ์›๋ž˜ ๊ฐœ๋ฐฉ์ ์ด๊ณ , ๋‹ค์–ธ์–ด์ ์ด๋ฉฐ ์ฐธ์—ฌ์ ์ธ ํ•˜์ดํผ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฟˆ์ด ์™„์ „ํžˆ ์‚ฌ๋ผ์ง„ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค, ์ ์–ด๋„ ์•„์ง์€ ์•„๋‹™๋‹ˆ๋‹ค!

์šฐ๋ฆฌ๋Š” ์›น์˜ ๊ธฐ์ดˆ ๊ธฐ์ˆ ์ธ ํ•˜์ดํผ๋ฏธ๋””์–ด๋ฅผ ๋‹ค์‹œ ๋ฐฐ์šฐ๊ณ  ๋ฐ›์•„๋“ค์ž„์œผ๋กœ์จ ๊ทธ ๊ฟˆ์„ ๊ณ„์† ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

htmx ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ข‹์•„์š” ์ˆ˜์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์„œ๋กœ ๋•๋Š” ๋นŒ๋”๋“ค๋กœ ๋ณ€์งˆ๋œ ๊ฒƒ์ด ์‹ซ์Šต๋‹ˆ๋‹ค. ํ•˜์ดํ”„์— ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๊ต๋ฅ˜ํ•˜๊ณ , ๊ฐ„๋‹จํ•œ ๋ฌธ๊ตฌ๋ฅผ ํ’๋ถ€ํ•œ ์˜๋ฏธ๋กœ ํ™•์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ธ๊ตฌ๋ ค ์†Œ์…œ ๋ฏธ๋””์–ด ํฌ์ธํŠธ๋ฅผ ์–ป์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ, ๊ฑด๊ฐ•ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›น์€ ์˜ˆ์ „๋ณด๋‹ค ๋‚˜์•„์กŒ์Šต๋‹ˆ๋‹ค.

@teej_dv

</>