HTML `<script>` 태그의 이상한 파싱 규칙과 JSON 이스케이핑
2025-08-09
이 글에서는 종종 직관적이지 않은 HTML의 `` 태그 파싱 규칙을 자세히 살펴보고, 이 규칙이 놀라운 방식으로 웹페이지를 망가뜨릴 수 있는 이유를 설명합니다. 브라우저가 `<script>` 태그 내부의 콘텐츠를 파싱할 때 스크립트 데이터, 이스케이프된 스크립트 데이터, 이중으로 이스케이프된 스크립트 데이터와 같은 여러 상태로 전환되는 과정을 설명합니다. '이중으로 이스케이프된 스크립트 데이터' 상태가 되면 닫는 `` 태그가 제대로 작동하지 않아 페이지 렌더링이 깨집니다. 이 글에서는 JSON 문자열에서 `<`와 `>`를 이스케이핑하기 위해 `json_encode($data, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES)` (또는 유사한 방법)을 사용하여 '이중으로 이스케이프된 스크립트 데이터' 상태를 피하고 올바른 페이지 렌더링을 보장할 것을 권장합니다.
(sirre.al)
개발