본문 바로가기
Spring

[Spring] ibatis - CDATA

by 희구리 2021. 11. 13.

Spring을 전혀 사용해보지 않고 단순히 레거시 코드만 참고하여 코드를 작성하다보니 오류가 났었다.

원인은 spring에서 지원하는 ibatis에 작성한 부등호('<')였다...!!!

 

💡 iBATIS(아이바티스)란?

SQL에 기반한 데이터베이스와 Java, Ruby 등을 연결시켜 주는 역할을 하는 영속성 프레임워크(Persistence Framework)이다. 이러한 연결은 프로그램의 소스코드에서 SQL 문장을 분리하여 별도의 XML 파일로 저장하고 이 둘을 서로 연결시켜주는 방식으로 작동한다.

(출처 : https://ko.wikipedia.org/wiki/IBATIS)

 

즉, xml 파일 형식으로 코드가 작성되기 때문에 일부 문자열(특수문자 등)이나 부등호는 제한된다.

※ 특히, xml에서는 태그(tag)를 사용하기 때문에 부등호를 그대로 사용하면 컴퓨터가 해석을 못함...

 

이 때 사용하는 것이 바로 CDATA다.

 

사용하려는 부등호를 <![CDATA[ {사용할 부등호} ]> 형식으로 입력하여 작성하면 기존에 작성했던 SQL의 부등호로 컴퓨터가 해석할 수 있다.

 

📌사용예시

Before After
<select>
SELECT COLUMN
  FROM TABLE_NAME
WHERE CONDITION < 100
</select>
<select>
SELECT COLUMN
  FROM TABLE_NAME
WHERE CONDITION <![CDATA[ < ]> 100
</select>

 

댓글