HTML에서 특수 문자(괄호, 따옴표) 사용 방법

도키도키·2023년 5월 16일

엔티티(entity)

: HTML에는 미리 약속된 문자가 몇몇 있는데 이러한 약속된 문자들을 그대로 사용하기 위해 별도로 만든 문자셋을 entity 라고 합니다.

어째서 엔티티를 사용해 특정 문자를 사용해야 하나요 ?

설명하기보단 예제를 보며 확인하는게 쉽게 이해될듯 합니다.

예를들어 HTML에서의 “<” 괄호는 태그의 시작을 나타내는 기호로 해석됩니다

그렇기에 우리가 문자열로 < 표시를 표현하고 싶어도 HTML 파일에서는 태그의 시작으로 해석하기 때문이죠

그래서 우리는 "<" 문자를 사용하고 싶을때 $lt; 라는 엔티티 즉 예약어를 사용하기로 약속했습니다.

그렇다면 엔티티는 단순하게 HTML이 특정 문자를 html 문법으로 해석하기 때문에 엔티티를 사용하는것인가요 ?

네니오. 맞긴합니다만 여러 이유로 사용됩니다.

  1. 안전성
    • 위에서 설명한 HTML에서 특정 문자를 다른 의미로 받아들이기 때문
  2. 크로스 브라우징 호환성
    • 지금은 많은 브라우저들이 크로미움 기반의 엔진을 대부분 사용하고 있지만 과거에는 파이어폭스, IE 등등.. 각자의 OS를 사용했기에 특정 브라우저에서 예기치 않은 결과를 초래할 수 있었습니다. 그렇기에 엔티티를 사용해 일관된 문자 표현을 가능하게 해줍니다
  3. 데이터 유효성 및 보안
    • 가령 사용자의 입력한 값을 HTML element에 포함시킬때 악의적이든 악의적이지 않던 HTML에 영향을 미칠 수 있습니다. 이러한 경우를 대비해 특수 문자를 이스케이프해 유효성과 보안을 강화할 수 있습니다.

엔티티에는 어떤 종류들이 있나요 ?

: 많은 종류가 있지만 자주 사용되는것 위주로 정리해봅시다.

  • &lt; - < (작은 부등호)
  • &gt; - > (큰 부등호)
  • &quot; - " (큰따옴표)
  • &apos; - ' (작은따옴표)
  • &amp; - & (ampersand)
  • &nbsp; - 공백 (non-breaking space)
  • &copy; - © (저작권 기호)
  • &reg; - ® (등록 상표 기호)
  • &euro; - € (유로 기호)
  • &pound; - £ (파운드 기호)

0개의 댓글