CDATA 란?

Jakezo·2021년 10월 10일
0

xml을 파싱하기 위해 사용되는 것입니다.

간혹 xml에 보면 <![CDATA[내용]] 이런 코드가 있습니다.이는 파싱되지 않은 문자라는 의미로 (Unparsed) Character Data 입니다.보오~~통 쿼리에서 사용을 많이 하게 되는데요. (저희 회사에서는 주로..)주로, 마이바티스나 쿼리 매핑 툴에서 <, > 이 두가지 때문에 자주 썼습니다.이게 일반적으로 쿼리 자체에서는 이상이 없지만 xml에서 지원이 되지않습니다.저런 특수한 문자들을 이스케이프 문자라고 하며, 기존 xml에서 <와 같은 특수문자는태그로 인식하기 때문에 본연의 기능을 벗어낫다고 하여 이스케이프 문자라고 합니다.아래 쿼리 예시를 보면 이해가 되실겁니다.물론 저 상황에서만 쓰는 것은 아니고 말 그래돌 파싱하고 싶지 않는 문자 데이터가 있을 때 사용할 수 있습니다.

🔍 쿼리 예제

에러!! 태그로 인식.
select *
  from test_table
 where col1 > col2
정상!!
select *
  from test_table
 where col1 <![CDATA[>]] col2
정상!! 이와 같이 할 수도 있습니다. 이스케이프 처리
select *
  from test_table
 where col1 &gt; col2

🔍 html 코드로 예를 들어보겠습니다.

아래와 같은 xml에 html 소스를 넣고 내부에 있는 <h1>..</h1>은 문자 그대로 사용하고 싶다면 파싱해서 해석을 하면 안되기 때문에<![CDATA[<h1>...</h1>]]으로 해주어야 그대로 파싱할 수 있습니다.

<h1>Bold <h1>으로 굵은 글씨 만들기</h1> </h1>

생각보다 잘모르고 사용하시는 분들이 많습니다. 저는 필요없는 코드는 제거해야 버그도 줄고,해석도 쉽다고 생각하여 필요없으면 사용하지 않습니다.그대로 복붙을 하다보니 의미를 모르기 때문에 그냥 사용하는 것이죠.

저도 정확하다고 할 순 없지만, 이정도만 알고 있어도 필요한지 필요없는지는 알 수 있기 때문에알고 있으면 참 좋을 것 같습니다

profile
탐험가

0개의 댓글