도구상자FREE ONLINE TOOLS
← 가이드 목록

HTML 엔티티란 — 부등호·앰퍼샌드 안전하게 쓰기

HTML 문서 안에 부등호나 앰퍼샌드를 그대로 적으면, 브라우저가 그것을 태그의 일부나 특수 기호로 오해해 글자가 사라지거나 깨집니다. 이런 충돌을 막으려고 약속된 코드로 바꿔 적는 것이 HTML 엔티티입니다. 개념과 대표 코드, 그리고 언제 바꿔야 하는지를 정리했습니다.

엔티티가 무엇인가

HTML에서 어떤 문자들은 평범한 글자가 아니라 문법 기호로 쓰입니다. 여는 부등호는 태그의 시작을, 닫는 부등호는 태그의 끝을 뜻하고, 앰퍼샌드는 엔티티의 시작을 알립니다. 그래서 이 기호들을 화면에 글자 그대로 보여주고 싶다면, 문법 기호와 구분되도록 정해진 코드로 바꿔 적어야 합니다.

엔티티는 모두 앰퍼샌드로 시작해 세미콜론으로 끝납니다. 이 형태를 만나면 브라우저는 그 사이의 이름이나 번호를 보고 해당 글자 하나로 바꿔 화면에 그립니다. 이렇게 특수문자를 안전한 코드로 바꾸는 일을 이스케이프(escape)라고 부릅니다.

대표 엔티티 표

가장 자주 만나는 다섯 가지입니다. 왼쪽이 실제 보이는 글자, 가운데가 이름 엔티티 코드입니다.

글자이름 엔티티쓰임
<&lt;여는 부등호 (less than)
>&gt;닫는 부등호 (greater than)
&&amp;앰퍼샌드 — 엔티티의 시작 문자
"&quot;큰따옴표 (속성값 안에서 충돌 방지)
공백&nbsp;줄바꿈되지 않는 공백 (non-breaking space)

이 표를 한 줄 텍스트로 빠르게 바꾸거나 되돌리고 싶다면 HTML 엔티티 변환기에 붙여넣으면 됩니다.

이름 엔티티 vs 숫자 엔티티

같은 글자를 적는 방법은 두 가지입니다. 하나는 사람이 외우기 쉬운 이름 엔티티이고, 다른 하나는 문자의 코드 포인트 번호를 그대로 쓰는 숫자 엔티티입니다. 예를 들어 여는 부등호는 이름으로는 lt, 숫자로는 60번이며, 숫자 엔티티는 샵 기호 뒤에 그 번호를 붙여 적습니다(60번 → 숫자 엔티티 표기).

핵심: 두 방식의 출력 결과는 똑같습니다. 사람이 읽기엔 이름 엔티티가 편하지만, 이름이 정해지지 않은 특수문자나 이모지는 숫자 엔티티로만 표현할 수 있습니다. 그래서 실무에서는 둘을 상황에 맞게 섞어 씁니다.

언제 이스케이프할까

  • 본문에 코드를 보여줄 때 — 태그나 부등호를 글자 그대로 노출하려면 반드시 엔티티로 바꿔야 화면에서 사라지지 않습니다.
  • 사용자 입력을 화면에 다시 표시할 때 — 입력값을 이스케이프 없이 그대로 페이지에 넣으면, 입력에 섞인 태그가 실행될 수 있습니다(XSS). 출력 시 이스케이프가 기본 방어선입니다.
  • 속성값 안에 따옴표가 들어갈 때 — 속성을 감싼 따옴표와 충돌하지 않도록 안쪽 따옴표를 엔티티로 바꿉니다.
  • 되돌릴 때 — 누가 인코딩해 보낸 텍스트는 같은 변환으로 원래 글자로 풀 수 있습니다.
HTML 엔티티 변환기특수문자 ↔ 엔티티 코드 양방향 변환 변환하기 →
자주 묻는 질문
Q. 앰퍼샌드(&) 하나만 쓰면 안 되나요?

권장하지 않습니다. 앰퍼샌드는 HTML에서 엔티티의 시작을 알리는 특별한 문자라서, 뒤에 오는 글자에 따라 의도치 않은 엔티티로 해석될 수 있습니다. 예를 들어 회사 이름을 그냥 적었을 때 일부가 다른 기호로 바뀌어 보이는 사고가 생깁니다. 본문에서 앰퍼샌드 자체를 보여주려면 항상 엔티티 코드로 적는 것이 안전합니다.

Q. 이름 엔티티와 숫자 엔티티 중 무엇을 써야 하나요?

둘 다 같은 글자를 출력하므로 결과는 동일합니다. 사람이 읽고 쓰기에는 이름 엔티티가 직관적이라 자주 쓰입니다. 다만 이름 엔티티는 모든 문자에 이름이 정해져 있는 것은 아니므로, 이름이 없는 특수문자나 이모지 같은 경우에는 코드 포인트를 그대로 쓰는 숫자 엔티티가 필요합니다. 상황에 맞춰 섞어 쓰면 됩니다.

Q. 글에 코드 예시를 보여줄 때마다 일일이 바꿔야 하나요?

본문 안에서 태그나 부등호를 그대로 보여주려면 해당 문자를 엔티티로 바꿔 적어야 합니다. 양이 많을 때 한 글자씩 손으로 고치면 빠뜨리기 쉬우므로, 변환 도구에 텍스트를 붙여넣어 한 번에 이스케이프하는 편이 안전합니다. 반대로 누가 엔티티로 인코딩한 텍스트를 받았다면 같은 도구로 원래 문자로 되돌릴 수 있습니다.

함께 보면 좋은 가이드