Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

스크립트 태그에서 CDATA 섹션이 필요한 경우는 언제일까?

CDATA 섹션이란 무엇인가?

CDATA(Character Data) 섹션은 XML 문서에서 특수 문자를 이스케이프(escape) 처리하지 않고 그대로 사용할 수 있게 해주는 기능입니다. 일반적으로 XML 파서는 <, >, & 같은 기호를 마크업으로 해석하지만, CDATA 섹션으로 감싼 텍스트는 순수한 문자 데이터로 취급됩니다.

스크립트 태그에서의 CDATA 사용 예시

과거 XHTML 문서에서 인라인 자바스크립트를 작성할 때는 코드 안의 <& 기호가 XML 파서에 의해 잘못 해석되는 것을 막기 위해 CDATA 섹션을 사용했습니다. 사용 방식은 다음과 같습니다.

<script>
    //<![CDATA[
        document.write(">");
    //]]>
</script>

여기서 한 줄 주석(//)을 함께 붙이는 이유는, 문서가 HTML로 처리될 때 CDATA 구문 자체가 자바스크립트 문법 오류를 일으키지 않도록 하기 위함입니다.

HTML에서는 CDATA가 필요 없다

HTML은 XML이 아니므로 <script>...</script> 내부의 내용을 이미 문자 데이터처럼 취급합니다. 따라서 일반적인 HTML 문서에서는 스크립트 코드에 <&가 포함되어 있어도 별도의 CDATA 처리를 할 필요가 없습니다.

참고: CDATA는 현재 더 이상 권장되지 않는(deprecated) 기능입니다. 새로 작성하는 코드에서는 사용하지 않는 것이 좋습니다.

XML에서의 CDATA 섹션 활용

CDATA 섹션 인터페이스는 원래 XML에서 비교적 긴 텍스트 구간을 포함할 때 사용됩니다. 이 텍스트는 이스케이프되지 않은(unescaped) 텍스트로, <& 같은 기호를 엔티티(&lt;, &amp;)로 변환하지 않고 그대로 담을 수 있습니다.

기본 문법은 다음과 같습니다.

<![CDATA[ ... ]]>