Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

스크립트 태그의 CDATA 사용에 대해서

예전에 만들어진 페이지들을 보면 스크립트부분을

//<!--
//-->


로 묶어 놓은 것을 볼 수 있다. 솔직히 이게 필요하게 느껴본적은 전혀 없지만(그땐 개발도 안했긴 하지만..) 이건 오작동을 막는다는 개념으로 알고 있다. 스크립트가 안먹는 곳에서 스크립트 때문에 오작동을 막기 위해서 html태그로 묶어 놓은 것이다. 하지만 실제로 저게 필요한 경우가 이제는 거의 없는 것 같고 안해도 되기 때문에 요즘은 거의 쓰지 않는 것 같다.

대신 요즘에는

//<![CDATA[
     스크립트.....
//]]>


로 묶어준다. 먼가 있어 보여서 쓰긴 했는데 이것에 대해서 정확한 이해를 한지는 얼마 되지 않았다. 이건 DOCTYPE를 XHTML로 사용할 때 써주는 것이다. (내가 HTML 4.01 Tranditional을 거의 쓰지 않아서 그쪽은 잘 모르겠다.) CDATA... XML을 해본 사람은 많이 보던 거란걸 느낄것이다.

XHTML은 기본적으로 형식이다. 스크립트 부분을 CDATA 속성으로 넣어줌으로써 XHTML 파서가 스크립트 부분에 들어간 html부분을 파싱하지 않도록 막아주는 것이다. 물론 대개의 경우 없어도 되지만 이렇게 함으로써 완전히 차단하는 것이다.

유효성검사를 통과하려면 반드시 CDATA로 스크립트를 묶어 주어야 한다. 저 형식은 왠지 잘 외워지지가 않아서... ㅋㅋ CDATA로 묶어 주는데 이부분은 스크립트 문법에 맞지 않지 때문에 //로 주석표시를 해준 것이다.


ps. //<![CDATA[를 제목에 썼더니 리스트에서 깨져버려서 별수없이 제목을 수정 2008.7.28

ps2. 앞쪽에 //<!-- //-->에 대해서 약간은 추측형으로 작성했었는데 이건 쓸 필요가 없다. 이것은 자바스크립트가 생긴지 얼마되지 않았을 때 웹브라우저가 <script>태그를 이해하지 못했기 때문에 화면에 자바스크립트 코드 자체를 화면에 출력해 주기 때문에 이걸 막기위해서 스크립트 부분은 html주석인 <!-- -->로 가려준 것인데 이젠 쓸 필요가 없다.

2008/04/17 11:47 2008/04/17 11:47