๊ฐœ๋ฐœ.log/database

[Mybatis][Mysql] <[![CDATA[…]]> ์‚ฌ์šฉ๋ฒ•/CDATA ๊ผญ ์จ์•ผํ•˜๋‚˜?/XML Parser ๋ฌธ์ž์—ด์ธ์‹

๊ฐœ๋ฐœํ•˜๋Š” ์ฃผ๋””์”จ 2023. 9. 20. 10:21

 

๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Back logic์„ ์ž‘์„ฑํ•  ์ผ์ด ๋งŽ์•„์ง€๋Š”๋ฐ ๊ทธ๋•Œ, SQL Mapper๋กœ MyBatis๋ฅผ ์“ฐ๋ฉด์„œ mapper.xml ํŒŒ์ผ์— <! [CDATA [ ์ฟผ๋ฆฌ๋ฌธ ]]>๋ผ๊ณ  ์“ฐ์ธ ๊ฒƒ์„ ์ž์ฃผ ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค.

 

[๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋œฌ๊ธˆ์—†๋Š” ํ˜ธ๊ธฐ์‹ฌ 1ํƒ„]
Mybatis ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ์— ๊ผญ CDATA๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?

 

 

CDATA ๋ž€?

์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ '<', '>', '&'๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ xml์—์„œ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด mapper์— ์ž‘์„ฑ๋œ <select>, <update>์™€ ๊ฐ™์€ ํƒœ๊ทธ๋กœ ์ธ์‹ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด mapper.xml์— ์ž‘์„ฑ๋œ <select> ํƒœ๊ทธ ๊ด„ํ˜ธ์™€ ๋‹ฌ๋ฆฌ ์ด ๋“ฑํ˜ธ๋Š” '์ฟผ๋ฆฌ์— ํ•„์š”ํ•œ ์ฝ”๋“œ'๋ผ๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด <! [CDATA [...]]>์ด๋‹ค.

 

์‚ฌ์šฉ๋ฒ•

 

<![CDATA[

์ฟผ๋ฆฌ ๋‚ด์šฉ

]]>

 

XML์—์„œ ํŒŒ์‹ฑ ํ•  ๋Œ€์ƒ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ํ•˜์ง€ ์•Š๋„๋ก ๊ทธ ๊ตฌ์—ญ์„ ์ง€์ •ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด CDATA์ด๋‹ค. XML๋กœ ํŒŒ์‹ฑ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘์— <! [CDATA [ ๋ฅผ ๋ถ™์—ฌ์ฃผ๊ณ  ๊ตฌ๊ฐ„์˜ ๋์— ]]>๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๋‹น ๊ตฌ์—ญ์ด ํŒŒ์‹ฑ ๋˜์ง€ ์•Š๋„๋ก "๋ฌธ์ž์—ด"๋กœ ์„ค์ •๋œ๋‹ค.

 

์ž‘์„ฑ์˜ˆ์‹œ

<select id="test" resultType="sampleDTO">
	<![CDATA[
		select * from test where id < 5;
	]]>
</select>

 

 


 

๊ทธ๋ ‡๋‹ค๋ฉด, ๋ชจ๋“  ์ฟผ๋ฆฌ์—์„œ CDATA๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?...? <! [CDATA [...]]> ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋™์  ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ๋ฌธ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ์ฝ”๋“œ์—๋งŒ <![CDATA[...]]> ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.แŸ.แŸ 

๋ญ๋“  ๋„˜์น˜์ง€ ์•Š๊ณ , ์ ๋‹นํžˆ ์ ์žฌ์ ์†Œ์— ๋งž๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด BESTโœจ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ ๋„ˆ๋ฌด ์–ด๋ ต๋‹คใ…Žใ…Ž.. 

 

๋.