DOM, ๋์ ์นํ์ด์ง์ ์ปจํ
์ธ ๋ฅผ ์์ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ก ๋ํ๋ด์ค๋ค.
์ด๋ ๋ชจ๋ธ์ ๊ฐ์ฒด์ ํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋๋๋ฐ ์ด๋ฅผ DOM tree ๋ผ๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์์ ๊ฐ๋ฅํ ๊ฐ์ฒด(๋)๊ฐ ์์ ๋๋ฉด ์ฌ์ฉ์๊ฐ ๋ณด๋ ๋ด์ฉ๋ ์์ ๋๋ฉฐ ์ด๋ ๋์ ์์ ํ๋ ํ๋กํผํฐ, ๋ฉ์๋๋ค์ DOM API๋ผ๊ณ ํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์์ฑ๋ ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์งํ๋ ๊ณผ์ ์์ <script>
๋ฅผ ๋ง๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง์ ๋ฉ์ถ๊ณ <script>
์์๋ฅผ ์คํํ๋ค.
์ด๋ <script>
์์๋ ๋ฑ์ฅ๊ณผ ๋์์ ์คํ๋๊ธฐ์ <head>
ํ๊ทธ ์์ ์์๋์ <body>
ํ๊ทธ ์์ ์์๋ ์ฝ๋์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฌ๋ผ์ง๋ค.
BOM์ ๋ฌธ์ ์ด์ธ์ ๋ชจ๋ ๊ฒ์ ์ ์ดํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๊ณตํ๋ ์ถ๊ฐ ๊ฐ์ฒด์ด๋ค.
์ฃผ๋ก ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ navigator
์ location
์ด ์๋ค.
navigator
๋ ๋ธ๋ผ์ฐ์ ์ ์ด์์ฒด์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด์ด๋ฉฐ ์ ๋ช
ํ ํ๋กํผํฐ๋ ํ์ฌ ์ ์์ค์ธ ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ navigator.userAgent
์ ๋ธ๋ผ์ฐ์ ๊ฐ ์คํ์ค์ธ ์ด์์ฒด์ ๋ฅผ ์๋ ค์ฃผ๋ navigator.platform
๋ฑ์ด ์๋ค.
location
์ location.href = 'http://link.likethis'
์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์นํ์ด์ง๋ฅผ ์ด๋ํ ๋ ์ฌ์ฉํ๋ค.
๋์์ ์์, ์์ฑ, ํ ์คํธ๋ฅผ ํฌํจํ ๋ชจ๋ HTML ์์๋ ๊ฐ์ฒด์ด๊ณ HTML ํ๊ทธ ์ค ๋ค๋ฅธ ํ๊ทธ๊ฐ ๊ฐ์ธ๊ณ ์๋ ์์ ํ๊ทธ๋ฅผ ์ค์ฒฉํ๊ทธ๋ผ๊ณ ํ๋ค.
๋ ํธ๋ฆฌ๋ 4์ข ๋ฅ ์ฃผ์ ๋ ธ๋(Node)๋ก ๊ตฌ์ฑ๋๋ค.
๋ฌธ์ ๋
ธ๋ ( Document Node )
ํธ๋ฆฌ ์ต์์์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋
ธ๋๋ค์ ์ ๊ทผํ๋ ค๋ฉด ๋ฌธ์ ๋
ธ๋๋ฅผ ํตํด์ผํ๋, ๋ ํธ๋ฆฌ ์ ๊ทผ์ ์์์ (entry point)์ด๋ค.
์์ ๋
ธ๋ ( Element Node )
์์ ๋
ธ๋๋ HTML ์์๋ฅผ ํํํ๋ค.
HTML ์์๋ ์ค์ฒฉ์ผ๋ก ๋ถ์๊ด๊ณ๋ฅผ ๊ฐ์ง๋๋ฐ ์ด๋ฅผ ํตํด ์ ๋ณด๋ฅผ ๊ตฌ์กฐํํ๋ค.
ํ์ ํ ์์ฑ ๋
ธ๋์ ํ
์คํธ ๋
ธ๋์ ์ ๊ทผํ๋ ค๋ฉด ํด๋น ๋
ธ๋๋ค์ ์์์ธ ์์ ๋
ธ๋๋ฅผ ์ฐพ์์ผํ๋ค.
์์ฑ ๋
ธ๋ ( Attribute Node )
์์ฑ ๋
ธ๋๋ HTML ์์์ ์์ฑ์ ํํํ๋ค.
์์ฑ ๋
ธ๋๋ ์์์ธ ์์ ๋
ธ๋์ ์์์ด ์๋ '์ผ๋ถ'๋ก ํํ๋๋ฉฐ ์์ ๋
ธ๋๋ฅผ ์ฐพ์ผ๋ฉด ์์ฑ ๋
ธ๋๋ฅผ ์์ ํ ์ ์๋ค.
ํ
์คํธ ๋
ธ๋ ( Text Node )
ํ
์คํธ ๋
ธ๋๋ HTML ์์์ ๋ฌธ์๋ฅผ ํํํ๋ฉฐ ์์ ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ฆ, ๋ ํธ๋ฆฌ์ ์ตํ๋จ์ ํ
์คํธ ๋
ธ๋์ด๋ค.
ํ
์คํธ ๋
ธ๋๋ ์ค์ ๋ฐ๊ฟ๋๋ ๋ ํธ๋ฆฌ ์์ ํํ๋๋ฉฐ โต(\n)๊ณผ โฃโฃ ๋์ด์ฐ๊ธฐ ํน์๋ฌธ์๋ก ํํ๋๋ค.
๋ค๋ง ์ด ์์ฑ์ ๋๊ฐ์ง ์์ธ๊ฐ ์๋ค.
๋๊ณผ ๋์ ์ด์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ๋ก HTML ๋ฌธ์๋ฅผ ์์ ํ๋ ๋ฒ์ ์ตํ๋ค.
๊ฒํฅ๊ธฐ๋ก ๋ฐฐ์ ์๋ จ์ด ๋ง์ด ํ์ํ๋ค.
์ ๋ง ์ฌ๋์ด ๊ฐ์ฌํ ๊ฒ ๊ฐ๋ค.
ํ์ผ์ ์๊ฐ์ ์ซ๊ธฐ๋ฉฐ ๊ณต๋ถํ๊ธฐ์ ์ฃผ๋ง์ ๊ผญ ๋ณต์ต์ด ์๋ ์์ต ์์ฃผ๋ก ํ์ตํด์ผ๊ฒ ๋ค ๋ค์งํ๋๋ฐ, ์ฃผ๋ง์ด๋ผ๊ณ ํผ์ ธ์ ๋น๊ตด๋น๊ตด ํด๋ฒ๋ฆฌ๋ค๋..
๊ทธ๋๋ง ์ ์ฌ๊ฐ ํ์ผ์ด ์๋๋ผ ์ฃผ๋ง์ด๋ผ ํ์ผ์ ์ ๋ ๋ ธ๋ค๋๊ฒ ์กฐ๊ทธ๋งํ ์์์ผ๊น.
10์ผ ํ๋ฉด HA์ธ๋ฐ ๊ธด์ฅ์ด ํ์ํ ๋ฏ ํ๋คใ
์์ผ๋ก ํ๋ฃจ์ ํ์๊ฐ์ ๋ฆฌ์กํธ ๊ฒ์ ํฅ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.