htmxμ λͺλͺ κΈ°μ¬μλ€λ‘λΆν° λ°λ³΅μ μΌλ‘ μ κΈ°λλ μ§λ¬Έ μ€ νλλ htmxκ° μ TypeScriptλ‘ μμ±λμ§ μμλμ§, μλλ©΄ μ htmxμ λΉλ λ¨κ³κ° μ ν μλμ§μ κ΄ν κ²μ
λλ€.
htmxμ μ 체 μμ€ μ½λλ λ¨μΌ 3,500μ€μ JavaScript νμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€. htmxμ κΈ°μ¬νλ €λ©΄ htmx.js
νμΌμ μμ νλ©΄ λλ©°,
μ΄λ λ―Έλνμ΄(minification) λ° μμΆμ κ±°μΉ ν νλ‘λμ
νκ²½μμ λΈλΌμ°μ μ μ μ‘λλ νμΌκ³Ό λμΌν©λλ€.
μ λ htmx νλ‘μ νΈλ₯Ό λννμ§λ μμ§λ§, λͺ κ°μ§ μ€μν κΈ°μ¬λ₯Ό νμΌλ©°, μ΄ λ¬Έμ κ° μ κΈ°λ λλ§λ€ λΉλ λ¨κ³κ° μλ μ€μ μ μ μ§νλ κ²μ μ κ·Ήμ μΌλ‘ μΉνΈν΄μμ΅λλ€. μ κ΄μ μμ, htmxμ λΉλ λ¨κ³κ° μλ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ JavaScriptλ‘ μμ±νλ κ°μ₯ ν° μ΄μ λ κ·Έκ²μ΄ μμν μ§μλ μ μκΈ° λλ¬Έμ λλ€. μ΄λ μλ§λ JavaScriptμ κ°μ₯ κ³Όμνκ°λ κΈ°λ₯μΌ κ²μ λλ€. νΉμ μμΈκ° μμ μ μμ§λ§, 1999λ μ μμ±λ JavaScriptλ νλμ μ½λμ ν¨κ» μ΅μ Google Chromeμμλ μμ μμ΄ μ€νλ©λλ€. μ΄λ λ§€μ° μ μ νλ‘κ·Έλλ° νκ²½μμ κ°λ₯ν μΌμ λλ€. Python, Java, Cμ κ°μ μΈμ΄λ€μ μλ‘μ΄ μΈμ΄ κΈ°λ₯μ μ ννλ©΄ νΈνλμ§ μλ APIλ‘λΆν° λ²μ΄λκ² λλ λ²μ κ΄λ¦¬ λ©μ»€λμ¦μ κ°μ§κ³ μκΈ°μ μ΄λ¬ν νΉμ±μ κ°μ§κ³ μμ§ μμ΅λλ€.
λ¬Όλ‘ , λλΆλΆμ μ¬λλ€μ΄ κ²½νν JavaScriptλ μκ°μ΄ μ§λ¨μ λ°λΌ λ¬Έμ κ° λλ κ²½μ°κ° λ§μ΅λλ€. 3κ°μ νμ node μ μ₯μλ₯Ό λ€μ μ΄μ΄λ³΄λ©΄, νλ‘μ νΈκ° 보μ κ²½κ³ , νΈνλμ§ μλ λΌμ΄λΈλ¬λ¦¬ βμ κ·Έλ μ΄λβ, κ·Έλ¦¬κ³ νλ‘μ νΈλ₯Ό μμν λΉμμλ μ΅κ³ λ‘ μ¬κ²¨μ‘λ νλ‘ νΈμλ νλ μμν¬κ° μ΄μ λ κΈ°μ λΆμ±λ‘ μ¬κ²¨μ§κ³ μλ μν©μ λΉ μ Έ μλ κ²μ λ°κ²¬νκ² λ κ²μ λλ€. μ΄ μν©μ λν μ± μμ΄ λꡬμκ² μλμ§λ λ Όμνμ§ μκ² μ§λ§, μ΄μ¨λ JavaScript λ°νμ μΈμ μμ‘΄μ±μ μμ λ©΄ μ΄λ¬ν λ¬Έμ μ 체λ₯Ό μ κ±°ν μ μμ΅λλ€.
μ€λλ JavaScriptλ₯Ό μμ±νλ μΈκΈ° μλ λ°©λ² μ€ νλλ TypeScriptμμ μ»΄νμΌνλ κ²μ λλ€(μ΄ κΈμμλ TypeScriptλ₯Ό μλ‘ λ§μ΄ μ¬μ©νκ² μ΅λλ€. TypeScriptκ° μλ§ λΉλ μμ€ν μ μ¬μ©νλ κ°μ₯ μ’μ μ΄μ μΌ κ²μ λλ€). TypeScriptλ μΉ λΈλΌμ°μ μμ λ€μ΄ν°λΈλ‘ μ€νλμ§ μκΈ° λλ¬Έμ, TypeScript μ½λλ ECMAμ μ격ν νμ νΈνμ±μ λν μ§μ°©μΌλ‘λΆν° 보νΈλμ§ μμ΅λλ€. λ€λ₯Έ λͺ¨λ μμ‘΄μ±κ³Ό λ§μ°¬κ°μ§λ‘, μλ‘μ΄ μ£Όμ TypeScript λ²μ μ΄ μ΄μ λ²μ κ³Ό νμ νΈνμ±μ 보μ₯νμ§ μμ μλ μμ΅λλ€. λ§μ½ κ·Έλ μ§ μλ€λ©΄, μ΅μ κ°λ° λꡬ 체μΈμ μ¬μ©νλ €λ©΄ μ μ§ λ³΄μλ₯Ό ν΄μΌ ν κ²μ λλ€.
μ μ§ λ³΄μλ λ ΈλμΌλ‘ μ§λΆνλ λΉμ©μ΄λ©°, μ€ν μμ€ μ½λλ² μ΄μ€λ κ°μ₯ μ μ§ λ³΄μλ₯Ό κ°λΉνκΈ° μ΄λ €μ΄ νλ‘μ νΈλ€μ λλ€. λΉλ λ¨κ³λ₯Ό μ¬μ©νμ§ μμμΌλ‘μ¨ htmxλ₯Ό μ΅μ μνλ‘ μ μ§νλ λ° νμν λ Έλμ ν¬κ² μ€μΌ μ μμ΅λλ€. μ΄ κ²½νμ htmxμ μ μ μΈ intercooler.jsμμλ νμΈλμμ΅λλ€. intercooler.jsλ (μ κ° μ΄ν΄νκΈ°λ‘λ) λ§€μ° μ μ λ Έλ ₯μΌλ‘ 무기ν μ μ§ κ΄λ¦¬λκ³ μμ΅λλ€. htmx 1.0μ΄ μΆμλμμ λ TypeScriptλ 4.1 λ²μ μ΄μκ³ , intercooler.jsκ° μΆμλμμ λ TypeScriptλ 1.0 λ²μ μ΄μ μ΄μμ΅λλ€. κ·Έ λΉμ TypeScript λ²μ μΌλ‘ μμ±λ μ½λκ° μ€λλ μ TypeScript μ»΄νμΌλ¬(μ΄ κΈμ μμ±ν λΉμ 5.1 λ²μ )μμ μμ μμ΄ μ»΄νμΌλ μ μμκΉμ? κ·Έλ΄ μλ μκ³ , μλ μλ μμ΅λλ€.
κ·Έλ¬λ htmxλ JavaScriptλ‘ μμ±λμκ³ , μμ‘΄μ±μ΄ μκΈ° λλ¬Έμ μΉ λΈλΌμ°μ κ° μ ν¨ν ν μμ μμ΄ μ€νλ κ²μ λλ€. λΈλΌμ°μ 곡κΈμ 체λ€μ΄ μ΄λ €μ΄ μμ μ λμ νκ² νμμμ€.
TypeScriptμ κ°λ°μ κ²½ν(DX)μ΄ λ§μ λ©΄μμ JavaScriptλ³΄λ€ μ°μνλ€λ κ²μ μ¬μ€μ λλ€. κ·Έλ¬λ TypeScript DXκ° λͺ¨λ λ©΄μμ μ°μνλ€λ κ²μ μ¬μ€μ΄ μλλ©°, μννΈμ¨μ΄ μμ§λμ΄λ€μ΄ μ§λ³΄λ₯Ό κΈ°λ₯μ μμ μ±μΌλ‘ 보λ κ²½ν₯μ΄ κ°λμ© κ·Έλ€μ΄ μ’μνλ DX μΈ‘λ©΄μμ λκ°λ‘ μ§λΆν λΉμ©μ κ°κ³Όνκ² λ§λλλ€. μλ₯Ό λ€μ΄, TypeScriptλ₯Ό μ¬μ©νλ μμ λκ°λ μ»΄νμΌνλ λ° μκ°μ΄ κ±Έλ¦¬κ³ , λ³κ²½ μ¬νμ ν μ€νΈνλ €λ©΄ μ¬μ»΄νμΌμ κΈ°λ€λ €μΌ νλ€λ κ²μ λλ€. λ³΄ν΅ μ΄ λΉμ©μ 무μν μ μμ μ λλ‘ μ κ³ μΆ©λΆν μ§λΆν κ°μΉκ° μμ§λ§, μ΄μ¨λ λΉμ©μ λλ€.
TypeScriptλ₯Ό μ¬μ©ν λ λ μ€μν λΉμ©μ λΈλΌμ°μ μμ μ€νλλ μ½λκ° μ¬λ¬λΆμ΄ μμ±ν μ½λκ° μλλΌλ μ μ λλ€. μ΄λ λΈλΌμ°μ μ κ°λ°μ λꡬλ₯Ό μ¬μ©νκΈ° μ΄λ ΅κ² λ§λλλ€. TypeScript μ½λμμ μμΈκ° λ°μνλ©΄, ν΄λΉ μμΈμ μ€ν νΈλ μ΄μ€(μλ°μ€ν¬λ¦½νΈ μ€ λ²νΈ, μλ°μ€ν¬λ¦½νΈ ν¨μ μκ·Έλμ² λ±)κ° μ¬λ¬λΆμ΄ μμ±ν TypeScript μ½λμ μ΄λ»κ² μΌμΉνλμ§ νμ ν΄μΌ ν©λλ€. λ°λ©΄, JavaScript μ½λμμ μμΈκ° λ°μνλ©΄, λ°λ‘ μμ€ μ½λλ‘ μ΄λνμ¬ μμ±ν λ΄μ©μ μ½κ³ λλ²κ±°μμ μ€λ¨μ μ μ€μ ν μ μμ΅λλ€. μ΄λ μμ²λ DXμ λλ€. μ΄λ¬ν λ°©μμΌλ‘ μμ ν΄ λ³Έ μ μ΄ μλ μ μ μΉ κ°λ°μλ€μκ²λ κ³μμ κ°μ κ²½νμ΄ λ μ μμ΅λλ€.
λΉλ λ¨κ³ μΉνΈμλ€μ TypeScriptκ° μμ€ λ§΅μ μμ±ν μ μλ€κ³ μ§μ ν©λλ€. μ΄λ λΈλΌμ°μ μ TypeScriptμ JavaScriptκ° μ΄λ»κ² μ°κ²°λμ΄ μλμ§ μλ €μ€λλ€. λ§μ΅λλ€! κ·Έλ¬λ μ΄μ λ TypeScriptλ‘ μμ±ν μ½λ, μμ±λ JavaScript μ½λ, μ΄ λμ μ°κ²°νλ μμ€ λ§΅μ΄λΌλ λ λ€λ₯Έ κ²μ κ΄λ¦¬ν΄μΌ ν©λλ€. μ΄μ λ ν« λ¦¬λ‘λ© κ°λ° μλ²μ μμ‘΄νκ² λμμΌλ©°, μ΄ μλ²κ° λ‘컬νΈμ€νΈμμ μ΄λ€μ μ΅μ μνλ‘ μ μ§ν΄ μ€ κ²μ λλ€. κ·Έλ¬λ μ€ν μ΄μ§ μλ²μμλ μ΄λ»κ² λ κΉμ? νλ‘λμ νκ²½μμλμ? μ΄λ¬ν νκ²½μμ λ°μνλ λ²κ·Έλ₯Ό μΆμ νκΈ°κ° λ μ΄λ €μμ§ κ²μ λλ€. μ΄λ ν΄κ²°ν μ μλ λ¬Έμ μ΄μ§λ§, μ¬λ¬λΆμ΄ λ§λ λ¬Έμ μ΄λ©°, μ΄λ λκ°μ λλ€.
htmxμ DXλ λ§€μ° κ°λ¨ν©λλ€. λΈλΌμ°μ λ λ¨μΌ νμΌμ λ‘λνλ©°, μ΄ νμΌμ λͺ¨λ νκ²½μμ μ¬λ¬λΆμ΄ μμ±ν κ²κ³Ό λμΌν νμΌμ λλ€. μ΄λ¬ν κ²½νμ μ μ§νκΈ° μν΄ νμν λκ°λ μ‘΄μ¬νμ§λ§, μ΄ νλ‘μ νΈμ μ ν©ν μ νμ λλ€.
λͺ¨λνλ μννΈμ¨μ΄μ νλ₯ν μμ΄λμ΄ μ€ νλμ λλ€. λͺ¨λμ μ½λλ₯Ό λ μμ λ¬Έμ λ₯Ό ν΄κ²°νλ μ μ μλ νμ κ΅¬μ‘°λ‘ λλμΌλ‘μ¨ λ§€μ° λ³΅μ‘ν λ¬Έμ λ₯Ό ν΄κ²°ν μ μκ² ν΄μ€λλ€. λͺ¨λμ λ§€μ° μ μ©ν©λλ€.
κ·Έλ¬λ λλλ‘ μ¬λ¬λΆμ΄ λ¨μν λ¬Έμ λ₯Ό ν΄κ²°νκ³ μ ν λ, λλ μλμ μΌλ‘ λ¨μν λ¬Έμ λ₯Ό ν΄κ²°νκ³ μ ν λ, λ 볡μ‘ν μννΈμ¨μ΄μ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μλ κ²μ΄ λμμ΄ λ μ μμ΅λλ€. κ·Έλ μ§ μμΌλ©΄ μ΄λ€μ 볡μ‘μ±μ νλ΄ λ΄λ©΄μ λλ±ν κ°μΉλ₯Ό μ°½μΆνμ§ λͺ»ν μ μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ htmxλ μλμ μΌλ‘ λ¨μν λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. μ¦, μ μΈμ μΈ νμ΄νΌν μ€νΈ νΉμ±μ μ¬μ©νμ¬ DOM μμλ₯Ό λ μ½κ² λ체ν μ μλλ‘ HTMLμ λͺ κ°μ§ μμ±μ μΆκ°νλ κ²μ λλ€. htmxλ₯Ό λ¨μΌ νμΌλ‘ μ μ§νλ κ²(νμ¬ μ½ 3,500μ€)μ λΌμ΄λΈλ¬λ¦¬μ μλμ±μ λΆμ¬νλ©°, μλ‘μ΄ μ½λλ₯Ό μΆκ°ν λ μ€μ§μ μΈ μλ°κ°μ μ€λλ€. μ΄λ μλμ μΌλ‘ λ¨μν¨μ μ μ§νλ κ· νμ μ μ§νλ λ° λμμ΄ λ©λλ€.
DX λΉμ©μ λͺ ννμ§λ§, λλΌμ΄ DX μ΄μ λ μμ΅λλ€. μμ€ νμΌμμ ν¨μ μ΄λ¦μ κ²μνλ©΄ ν΄λΉ ν¨μμ λͺ¨λ νΈμΆμ μ¦μ μ°Ύμ μ μμ΅λλ€(μ΄κ²μ λ κ³ κΈ μ½λ νμμ νμμ±μ μ€μ λλ€). κΈ°λ₯μ΄ μ¨κ²¨μ§ μ μλ κ³³μ΄ μκΈ° λλ¬Έμ htmx μμ μ΄ ν¨μ¬ λ μ κ·ΌνκΈ° μ¬μμ§λλ€. ν¨μ¬ λ 볡μ‘ν νλ‘μ νΈμμλ μ΄ μ κ·Ό λ°©μμ λΆλΆμ μΌλ‘ μ¬μ©ν©λλ€. μλ₯Ό λ€μ΄, SQLite3λ λ¨μΌ νμΌ μμ€ ν©λ³μμ μ»΄νμΌλλ©°(λ¬Όλ‘ κ°λ°μ μν΄ λ³λμ νμΌμ μ¬μ©νμ§λ§, κ·Έλ€λ λ―Έμ³€μ§λ μμμ΅λλ€), μ΄λ₯Ό ν΅ν΄ ν΄νΉνκΈ°κ° ν¨μ¬ μ¬μμ§λλ€. 리λ μ€ μ»€λμ μ΄λ¬ν λ°©μμΌλ‘ ꡬμΆν μλ μκ² μ§λ§, htmxλ 리λ μ€ μ»€λμ΄ μλλλ€.
λͺ¨λ κΈ°μ μ νμλ μ₯μ κ³Ό λ¨μ μ΄ μμ΅λλ€. λΉλ λ¨κ³λ₯Ό μλ΅νλ μ ν μμ λ§μ°¬κ°μ§μ λλ€. μ΄λ¬ν μ νμ μ₯λ¨μ μ μΈμνμ¬ μ 보μ μ κ°ν κ²°μ μ λ΄λ¦΄ μ μμ΄μΌ νλ©°, μ΄λ€ μ₯μ μ΄λ λ¨μ μ΄ λ μ΄μ μ μ©λμ§ μμ λ κ·Έ κ²°μ μ μ¬κ²ν ν μ μμ΄μΌ ν©λλ€. μμ JavaScriptλ‘ μ½λλ₯Ό μμ±νλ μ₯μ μ μΌλμ λκ³ , μ΄λ‘ μΈν΄ λ°μνλ λ¬Έμ μ λ€μ λν΄ μ΄ν΄λ³΄κ² μ΅λλ€.
TypeScriptλ JavaScriptμ μ격ν μμ μ§ν©μ΄λ©°, TypeScriptκ° μ 곡νλ λͺ κ°μ§ κΈ°λ₯μ λ§€μ° μ μ©ν©λλ€.
TypeScriptλβ¦ νμ
μ μ 곡νλ©°, μ΄λ IDEκ° μ½λλ₯Ό μ μνλ λ₯λ ₯μ ν₯μμν€κ³ , λ©μλλ₯Ό μλͺ» μ¬μ©νμ κ°λ₯μ±μ΄ μλ λΆλΆμ μ§μ ν΄ μ€λλ€.
TypeScriptμμλ μ½λμ μ΄λ¦ λ³κ²½ λ° λ¦¬ν©ν°λ§ λκ΅¬κ° JavaScriptλ³΄λ€ ν¨μ¬ λ μ λ’°ν μ μμ΅λλ€. νμ§λ§ htmx μ½λλ JavaScriptλ‘ μμ±λμ΄μΌ ν©λλ€.
μ΄λ λΈλΌμ°μ κ° JavaScriptλ₯Ό μ€ννκΈ° λλ¬Έμ
λλ€. κ·Έλ¦¬κ³ JavaScriptκ° λμ νμ
μ μ μ§νλ ν,
htmx μμ€ μ½λμμ μ§μ ν μ μ νμ
μ μ»κΈ° μν νΈλ μ΄λμ€νλ κ°μΉκ° μμ΅λλ€(νμ§λ§ htmx μ¬μ©μλ μ¬μ ν .d.ts
νμΌλ‘ μ μΈλ νμ
APIλ₯Ό νμ©ν μ μμ΅λλ€).
λ―Έλμ htmx λ²μ μμλ JSDocμ μ¬μ©νμ¬ λΉλ λ¨κ³ μμ΄λ μΌλΆ 보μ₯μ μ 곡ν μ μμ κ²μ λλ€. λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬λ€, μλ₯Ό λ€μ΄ Svelte, μμ λλ²κΉ λ§μ°°λ‘ μΈν΄ μ΄ λ°©ν₯μΌλ‘ λμκ°κ³ μμ΅λλ€.
htmxλ Internet Explorer 11μ μ§μνκ³ μμΌλ©°, λΉλ λ¨κ³κ° μκΈ° λλ¬Έμ htmxμ λͺ¨λ μ½λλ IE11κ³Ό νΈνλλ JavaScriptλ‘ μμ±λμ΄μΌ ν©λλ€.
μ΄λ ES6λ₯Ό μ¬μ©ν μ μμμ μλ―Έν©λλ€.
μ¬λλ€μ΄ JavaScriptκ° κ½€ μ’μμ‘λ€κ³ λ§ν λ, κ·Έλ€μ μΌλ°μ μΌλ‘ ES6μμ λμ
λ async/await
, μ΅λͺ
ν¨μ, ν¨μν λ°°μ΄ λ©μλ(.map
, .forEach
)μ κ°μ μΈμ΄ κΈ°λ₯μ λ§νλλ°, μ΄λ¬ν κΈ°λ₯λ€μ htmx μμ€ μ½λμμ μ¬μ©ν μ μμ΅λλ€.
μ΄κ²μ λ§€μ° μ§μ¦λλ μΌμ΄μ§λ§, μ€μ λ‘λ ν° μ₯μ λ¬Όμ΄ λμ§λ μμ΅λλ€. λͺ κ°μ§ λ©μ§ μΈμ΄ κΈ°λ₯μ΄ λΆμ‘±νλ€κ³ ν΄μ ν¨μν ν¨λ¬λ€μμΌλ‘ μ½λλ₯Ό μμ±ν μ μκ² λλ κ²μ μλλλ€. forEach λ©μλλ₯Ό 컀μ€ν μΌλ‘ μμ±ν νμκ° μμΌλ©΄ μ’κ² μ£ ? λ¬Όλ‘ μ λλ€. νμ§λ§ htmxκ° λͺ©νλ‘ νλ λͺ¨λ λΈλΌμ°μ κ° ES6λ₯Ό μ§μν λκΉμ§ ES5μ λͺ κ°μ§ ν¬νΌ ν¨μλ₯Ό μΆκ°νλ κ²μ μ΄λ ΅μ§ μμ΅λλ€. ES6μ μ΅μνλ€λ©΄ λ λμ ES5 μ½λλ₯Ό μλμΌλ‘ μμ±ν μ μμ κ²μ λλ€.
htmx 2.0μμλ IE11 μ§μμ΄ μ€λ¨λλ©°, κ·ΈλλΆν°λ μμ€ μ½λμ ES6 μ¬μ©μ΄ νμ©λ κ²μ λλ€.
μ΄ μ μ λΆλͺ νμ§λ§, λ€μ ν λ² μΈκΈν κ°μΉκ° μμ΅λλ€. htmx μμ€λ λͺ¨λλ‘ λΆλ¦¬ν μ μλ€λ©΄ ν¨μ¬ λ κΉλν κ²μ λλ€. μ²κ²°ν¨ μΈμλ μ½λ νμ§μ μν₯μ λ―ΈμΉλ λ€λ₯Έ μμλ€μ΄ μμ§λ§, htmx μμ€κ° λμ νμ§μ μ μ§νλ μ΄μ λ κΉλν¨ λλ¬Έμ΄ μλλλ€.
μ΄λ‘ μΈν΄ htmxλ‘ νΉμ μμ μ μννλ κ²μ΄ λ§€μ° μ΄λ €μμ§λλ€. idiomorph μκ³ λ¦¬μ¦μ΄ htmx 2.0 ν΅μ¬μ ν¬ν¨λ μ μμ§λ§, μ¬λλ€μ΄ htmx μμ΄ DOM λ³ν μκ³ λ¦¬μ¦μ μ¬μ©ν μ μλλ‘ λ³λμ ν¨ν€μ§λ‘ μ μ§λκ³ μμ΅λλ€. ν΅μ¬μ μ¬λ¬ νμΌμ ν¬ν¨ν μ μλ€λ©΄, git μλΈλͺ¨λκ³Ό κ°μ λ―Έλ¬λ§ μ€ν΄μΌλ‘ μ½κ² μ΄λ₯Ό ν΄κ²°ν μ μμμ κ²μ λλ€. νμ§λ§ ν΅μ¬μ΄ λ¨μΌ νμΌλ‘ ꡬμ±λμ΄ μμΌλ―λ‘ idiomorph μ½λλ κ·Έ μμ ν¬ν¨λμ΄μΌ ν κ²μ λλ€.
μ΄ μμΈμ΄λ βμ htmxκ° μ§κΈ λΉμ₯ λΉλ λ¨κ³κ° μλκ°βλΌλ μ λͺ©μ΄ λ μ μ ν κ²μ
λλ€. μμ μΈκΈνλ―μ΄, μν©μ λ³νλ©° μ΄λ¬ν νΈλ μ΄λμ€νλ μΈμ λ μ§ μ¬κ²ν λ μ μμ΅λλ€!
νμ¬ μ°λ¦¬κ° νꡬ μ€μΈ λ¬Έμ μ€ νλλ 릴리μ€μ κ΄λ ¨μ΄ μμ΅λλ€.
htmxκ° λ¦΄λ¦¬μ€λ₯Ό ν λ, λͺ κ°μ§ μ
Έ λͺ
λ Ήμ΄λ₯Ό μ¬μ©νμ¬ dist
λλ ν 리μ λ―Έλνμ΄λκ³ μμΆλ htmx.js
λ²μ μ μ±μλλ€(μλ°ν λ§νμλ©΄, μ΄κ²μ μ΄λ€ μλ―Έμμλ λΉλ λ¨κ³λΌκ³ ν μ μμ΅λλ€).
μμΌλ‘λ μ΄ μ€ν¬λ¦½νΈλ₯Ό νμ₯νμ¬ μ λλ²μ€ λͺ¨λ μ μ(UMD)λ₯Ό μλμΌλ‘ μμ±ν μ μμ΅λλ€. λλ μλ‘μ΄ λ°°ν¬ μꡬ μ¬νμ΄ μ겨 λ 볡μ‘ν μ€μ μ΄ νμν μλ μμ΅λλ€.
λκ° μκ² μ΅λκΉ!
htmxμ ν΅μ¬ κ°μΉλ μ§λ 10λ λμ μ μ λ 볡μ‘ν΄μ§ JavaScript μ€νμ΄ μ§λ°°ν΄ μ¨ μΉ κ°λ° μνκ³μμ μ νμ μ 곡νλ κ²μ λλ€. νλ‘ νΈμλ JavaScript μ½λλ² μ΄μ€κ° κ±°λνμ§ μμΌλ©΄ λ°±μλμ JavaScriptλ₯Ό μ±νν΄μΌ νλ€λ μλ°μ΄ ν¨μ¬ μ μ΄μ§λλ€. Python, Go, μ¬μ§μ΄ NodeJSλ‘ λ°±μλλ₯Ό μμ±ν΄λ μκ΄μμ΅λλ€. htmxμλ μ€μνμ§ μκΈ° λλ¬Έμ λλ€. μ£Όμ μΈμ΄λ§λ€ HTMLμ ν¬λ§·ν νκΈ° μν μ±μν μ루μ μ΄ μκΈ° λ§λ ¨μ λλ€. μ΄λ HOWL(Hypermedia On Whatever youβd Like) μμΉμ λλ€.
λΉλ νλ‘μΈμ€ μμ΄ JavaScriptλ₯Ό μμ±νλ κ²μ λ μ΄μ NextJSλ SvelteKitμ΄ νμνμ§ μμ μνμμ SPA νλ μμν¬μ 볡μ‘μ±μ κ΄λ¦¬νκΈ° μν μ ν μ€ νλμ λλ€. μ΄ μ νμ μ€λλ htmx κ°λ°μ μ ν©νλ©°, μ¬λ¬λΆμ μ±μλ μ ν©ν μ μμ΅λλ€.