μ΄λͺ¨μ§ μ½λν¬μΈνΈΒ·μ΄μ€μΌμ΄ν λ³νκΈ° μ¬μ©λ²
μ΄λͺ¨μ§λ κΈμλ₯Ό λΆμ¬λ£μΌλ©΄ μ½λν¬μΈνΈ, HTML 10μ§Β·16μ§ μν°ν°, JS μ΄μ€μΌμ΄νμ μλ¬κ²μ΄νΈ μ, CSS μ΄μ€μΌμ΄ν, percent-encoding μΌκ³± κ°μ§λ‘ ν λ²μ λ³νν©λλ€. μλ νμμλ κΈμλ§λ€ ZWJ κ²°ν©Β·λ³μ΄μ νμΒ·μ€ν¨ν€Β·μ§μνμμκ° λͺ κ° λΆμλμ§ λΆν΄ν΄ 보μ¬μ€λλ€. λλ리기 μΉΈμ ννμ λ£μΌλ©΄ μλ κΈμλ‘ λλμμ΅λλ€.
λ³ν λ°©μκ³Ό κΈ°μ€
μΌκ³± κ°μ§ λͺ¨λ κ·κ²©μ μ μλ κ²°μ λ‘ μ λ³νμ λλ€. μ½λν¬μΈνΈλ μ λμ½λ νμ€, μν°ν°λ HTML νμ€, μλ¬κ²μ΄νΈ μμ UTF-16 κ·μΉ, percent-encoding μ UTF-8 λ°μ΄νΈλ₯Ό RFC 3986 λ°©μμΌλ‘ μ μ΅λλ€. κ·Έλνμ ECMA-402 μ Intl.Segmenter λ‘ λλλλ€. 2026λ 10μ κΈ°μ€μ λλ€.
νκ³μ μ£Όμμ¬ν
μΌνΈμ½λλ 곡μΈλ λ¨μΌ νκ° μμ΄ μ 곡νμ§ μμ΅λλ€. μ΄λͺ¨μ§μ μ λμ½λ μ΄λ¦ μ‘°νλ νλ«νΌλ³ μ§μ μ¬λΆ νμ λ νμ§ μμ΅λλ€. Intl.Segmenter κ° μλ ꡬν λΈλΌμ°μ μμλ μ½λν¬μΈνΈ λ¨μλ‘ λλκ³ κ·Έ μ¬μ€μ νλ©΄μ μ μ΅λλ€. μ§μνμμκ° μ§μ΄ λ§μ§ μμΌλ©΄ κ΅κΈ°λ‘ ν©μ³μ§μ§ μλλ€λ μ λ νμν©λλ€.
μμ£Ό 묻λ μ§λ¬Έ
GitHubΒ·SlackΒ·Discord κ° κ°μ μ΄λͺ¨μ§μ μλ‘ λ€λ₯Έ μ΄λ¦μ μ°κ³ λͺ©λ‘λ μμλ‘ λ°λλλ€. 곡μΈλ λ¨μΌ λ³ννκ° μμ΄ μ΄λ€ νλ₯Ό λ£μ΄λ νλ¦° νλ«νΌμ΄ μκΈ°λ―λ‘, κ·κ²©μ μ μλ ννλ§ λ€λ£Ήλλ€.
π¨βπ©βπ§ λ μ¬λ μ΄λͺ¨μ§ 3κ°λ₯Ό ZWJ(U+200D) 2κ°λ‘ μ΄μ΄ λΆμΈ μ°μ체μ λλ€. λμλ ν κΈμμ§λ§ μ½λν¬μΈνΈλ 5κ°, UTF-8 λ‘λ 18λ°μ΄νΈμ λλ€. κ΅¬μ± μ΄μμ κ²°ν© λ°©μμ νμΈν μ μμ΅λλ€.
μ΄λͺ¨μ§μ μ λμ½λ μ΄λ¦μ μ°Ύμ μ£Όκ±°λ νλ«νΌλ³ μ§μ μ¬λΆλ₯Ό μλ € μ£Όμ§ μμ΅λλ€. νν λ³νκ³Ό κ΅¬μ± λΆν΄κΉμ§λ§ ν©λλ€.