TIL) innerHTML ๋ฉ์๋์ textContent ๋ฉ์๋์ ์ฐจ์ด์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
innerHTML ์ textContent ๋ฉ์๋ ๋ชจ๋ ํ ์คํธ ๊ฐ์ ์ฝ์ด์ค๊ณ , ์ค์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ํฉ๋๋ค.
ํ์ง๋ง ์ด ๋์ ์ฐจ์ด์ ์ ๋ถ๋ช ํฉ๋๋ค.
๋จผ์ innerHTML ๋ฉ์๋๋ ํด๋น ์์์ ํฌํจ๋ HTML*, XML**์ ์ ์ฒด ๋ด์ฉ์ ์ฝ์ด์ค๊ฑฐ๋ ์ค์ ํ ์ ์์ต๋๋ค.
๊ทธ๋์ ํ๊ทธ๋ ๋ฌผ๋ก ์ด๊ณ , HTML ์ฝ๋ ๋ด์ ๊ณต๋ฐฑ๊น์ง๋ ์ถ๋ ฅ๋ฉ๋๋ค. ํ์ง๋ง XSS*** ๊ณต๊ฒฉ ์ํ์ ์ทจ์ฝํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์ด์ ๋ฐํด, textContent ๋ฉ์๋๋ ํด๋น ์์์ ๊ทธ ์์์ ํ ์คํธ ์ฝํ ์ธ ๋ฅผ ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ innerHTML ๋ฉ์๋์๋ ๋ฌ๋ฆฌ HTML๋ก ๋ถ์ํ ํ์๊ฐ ์๋ค๋ ์ ์์ textContent์ ์ฑ๋ฅ์ด ๋ ์ข๊ณ XSS*** ๊ณต๊ฒฉ ์ํ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฒฐ๋ก ์ ์ผ๋ก ๊ฐ๊ธ์ textContent๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. textContent๋ ์ฑ๋ฅ๊ณผ ๋ณด์์ ๊ฐ์ ์ด ์๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋น ๋ ธ๋์ raw text๋ฅผ ์ป๊ฒ ๋จ์ผ๋ก์จ ์ดํ ์๋ํ ๋๋ก ๊ฐ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
*HTML์ HyperText Markup Language์ ์ฝ์์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ฉํ๋ ์นํ์ด์ง ๊ตฌ์กฐ๋ฅผ ๋ด๋นํ๋ ๋งํฌ์ ์ธ์ด์ด์ tag๋ค์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
**XML์ HTML๊ณผ ๋งค์ฐ ๋น์ทํ ๋ฌธ์ ๊ธฐ๋ฐ์ ๋งํฌ์ ์ธ์ด(text-based markup language)์ ๋๋ค.
XML์ HTML์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ชฉ์ ์ด ์๋, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ๋ฌํ ๋ชฉ์ ์ผ๋ก๋ง ๋ง๋ค์ด์ก์ต๋๋ค.
***XSS์ Cross-site scripting์ ์ฝ์์ด๊ณ , ๊ณต๊ฒฉ์๊ฐ ์น ์ฌ์ดํธ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ์ฌ ๊ณต๊ฒฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
innerHTML ์ฐธ๊ณ
https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML
textContent ์ฐธ๊ณ
https://developer.mozilla.org/ko/docs/Web/API/Node/textContent
XML ์ฐธ๊ณ
http://www.tcpschool.com/xml/xml_intro_basic
XSS ์ฐธ๊ณ
https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting