DOM Tree
Last updated
Last updated
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ (Document Object Model)์ ๋ฐ๋ฅด๋ฉด, ๋ชจ๋ HTML ํ๊ทธ๋ ๊ฐ์ฒด๋ค. ํ๊ทธ ํ๋๊ฐ ๊ฐ์ธ๊ณ ์๋ ์์ํ๊ทธ๋ ์ค์ฒฉํ๊ทธ(nested tag)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ๊ทธ ๋ด ๋ฌธ์ ์ญ์ ๊ฐ์ฒด๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ ๊ทผํ ์ ์๊ณ , ํ์ด์ง๋ฅผ ์กฐ์ํ ๋ ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
ํธ๋ฆฌ ์์ ๋
ธ๋๋ ๋ชจ๋ ๊ฐ์ฒด๋ค. ํ๊ทธ๋ ์์๋
ธ๋(element node)์ด๋ฉฐ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ค. <html>
์ ๋ฃจํธ ๋
ธ๋๊ฐ ๋๊ณ , <head>
์ <body>
๋ ๋ฃจํธ ๋
ธ๋์ ์์์ด ๋๋ ๊ฒ์ด๋ค.
์์ ๋ด ๋ฌธ์๋ ํ ์คํธ ๋ ธ๋ (text node)๊ฐ ๋๋ค. ์ ๊ทธ๋ฆผ์์ #text๋ ๋ฌธ์์ด๋ง ๋ด์ผ๋ฉฐ, ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๊ณ , ํธ๋ฆฌ ๋์์ ์ ๋ ธ๋(leaf node)๊ฐ ๋๋ค.
ํ ์คํธ ๋ ธ๋์ ์๋ ํน์๋ฌธ์๋ ํญ์ ์ ํจํ ๋ฌธ์์ฒ๋ผ ์ทจ๊ธ๋๋ฏ๋ก, ์๋ ๋ ํน์๋ฌธ์๋ ํ ์คํธ ๋ ธ๋๊ฐ ๋๊ณ , DOM์ ์ผ๋ถ๊ฐ ๋๋ค.
์ ์ค(newline): โต (์๋ฐ์คํฌ๋ฆฝํธ์์๋ \n๋ก ํ์)
๊ณต๋ฐฑ(space): โฃ
ํ์ง๋ง ํ ์คํธ ๋ ธ๋ ์์ฑ์๋ ๋ ๊ฐ์ง ์์ธ๊ฐ ์๋ค.
์ญ์ฌ์ ์ธ ์ด์ ๋ก, <head>
์ด์ ์ ๊ณต๋ฐฑ๊ณผ ์ ์ค์ ๋ฌด์๋๋ค.
HTML ๋ช
์ธ์์์ ๋ชจ๋ ์ปจํ
์ธ ๋ body ์์ชฝ์ ์์ด์ผ ํ๋ฏ๋ก, </body>
๋ค์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฃ๋๋ผ๋ ๊ทธ ์ปจํ
์ธ ๋ ์๋์ผ๋ก body ์์ชฝ์ผ๋ก ์ฎ๊ฒจ์ง๋ค. ๋ฐ๋ผ์ </body>
๋ค์๋ ๊ณต๋ฐฑ์ด ์์ ์ ์๋ค.
๊ธฐํ์ ์ธ HTML์ ๋ง๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ DOM ์์ฑ ๊ณผ์ ์์ HTML์ ์๋์ผ๋ก ๊ต์ ํ๋ค. (e.g.์ต์์ ํ๊ทธ๋ ํญ์ <html>
์ด์ด์ผ ํ๋๋ฐ ์๋ค๋ ๊ฐ, ๋ซ๋ ํ๊ทธ๊ฐ ์๋ค๋ ๊ฐ)
cf. ํ
์ด๋ธ ์ฌ์ฉ์, DOM์์๋ <tbody>
๊ฐ ์์ด์ผ ํ๋ค๊ณ ํ์ง๋ง, HTML์์๋ ์ด๋ฅผ ์๋ตํ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก DOM์ <tbody>
๋ฅผ ์์ฑํ๋ค.
์ฃผ์๋ ๋ ธ๋๊ฐ ๋๋ค. ์๋์ ๊ฐ์ด ์ฃผ์ ๋ ธ๋ (comment node) ํ์ ์ ํ๋ฉด ์ถ๋ ฅ๋ฌผ์ ์ํฅ์ ์ฃผ์ง ์๋๋ผ๋ DOM์ ์ถ๊ฐ๋๋ค. HTML ์์ ๋ชจ๋ ๊ฒ์ ์ฃผ์์ด๋๋ผ๋ DOM์ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋น์ทํ๊ฒ HTML ๋ฌธ์ ์ต์๋จ์ ๋ DOM ๋ ธ๋๋ก ๋๋ค. ๋ฌธ์ ์ ์ฒด๋ฅผ ๋ํ๋ด๋ document ๊ฐ์ฒด ๋ํ DOM ๋ ธ๋๋ค.
๊ฐ๋ฐ์๋๊ตฌ console ์ฐฝ์ document.body๋ฅผ ์ ๋ ฅํด DOM ๋ ธ๋๋ฅผ ํ์ํด ๋ณผ ์๋ ์์ผ๋ฉฐ, ์ด๋ ๋๋ฒ๊น ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.