BOM vs DOM
Last updated
Last updated
์ ์ญ ๊ฐ์ฒด์ ์ด๊ธฐ ์ํ์๋ DOM, BOM, ๋นํธ์ธ ๊ฐ์ฒด๊ฐ ์ค์ ๋์ด์๋ค. ์ฌ๊ธฐ์ DOM๊ณผ BOM์ด ๋ฌด์์ธ์ง ์์๋ณด์.
DOM์ HTML๊ณผ XML ๋ํ๋จผํธ์ ์ ๊ทผํ๊ณ ์กฐ์ํ ์ ์๋ API๋ผ๊ณ ํ ์ ์๋ค.
DOM์ ๋ํ๋จผํธ์ ๊ตฌ์กฐ๋ฅผ ๋ ธ๋์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ก ์ ์ํ๊ณ ์๋ค.
DOM์ XML ํ์ผ์ด๋ HTML์ ๋ ธ๋์ ๊ณ์ธต์ ๊ตฌ์กฐ์ธ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํ๋ค.
์ด ํธ๋ฆฌ๋ ๋ํ๋จผํธ์ ๋ด์ฉ๊ณผ ๋ ธ๋ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.
DOM์ ์ฌ๋ฌ ํ์ ์ ์ ์ํ์ฌ, ๊ฐ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑํ์๋ค.
Document : ๋ชจ๋ ๋ํ๋จผํธ์ ๋ฃจํธ๋ ธ๋์ด๋ค.
DocumentType : doctype ํ๊ทธ๋ก ๋ํ๋ธ document type definition์ ๋ํ๋ธ๋ค.
Element : ํ๊ทธ๋ฅผ ๋ํ๋ธ๋ค.
Attribute : tag์ attribute๋ฅผ ๋ํ๋ด๋ key-value ์์ด๋ค.
Text: ๋ ธ๋์ ๋ด์ฉ์ ๋ํ๋ธ๋ค.
Comment : ๋ํ๋จผํธ์ ์ฃผ์์ด๋ค.
๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ ๊ทผํ๊ณ , ์กฐ์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด BOM์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ BOM์ ํตํด ๋ธ๋ผ์ฐ์ ์ ์ํธ์์ฉํ ์ ์๋ค. ๊ณต์์ ์ธ standard๋ ์์ง๋ง, ๋ธ๋ผ์ฐ์ ๋ ๊ฑฐ์ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ก ๊ตฌํ๋์๋ค.
window
๊ฐ์ฒด๋ root element์ด๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์์ window ๊ฐ์ฒด์ ์ง๊ฐ์ ์ ์ผ๋ก ๋ถ์ด์๋ค.
๋ธ๋ผ์ฐ์ ์ ๊ฐ ํญ๋ง๋ค ๊ณ ์ ์ window๊ฐ์ฒด๊ฐ ์๋ค. ์ฆ, ๊ฐ์ ์๋์ฐ์ฌ๋ ํญ๋ผ๋ฆฌ window ๊ฐ์ฒด๋ ๊ณต์ ๋์ง ์๋๋ค.
์ ์ญ ์ค์ฝํ์์ ์ ์ธ๋ ๋ชจ๋ ๋ณ์์ ํจ์๋ ์ ์ญ ๊ฐ์ฒด์ ์ํ๊ฒ ๋๋ค(let, const ์ ์ธ). ์ฆ, ์ ์ญ ๋ณ์๋ window ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ ๋๋ฉฐ, ์ ์ญ ํจ์๋ window ๊ฐ์ฒด์ ๋ฉ์๋๊ฐ ๋๋ค.
์ ์ญ ๊ฐ์ฒด์ ๋ฉ์๋์ ํ๋กํผํฐ๋ MDN์์ ํ์ธํ ์ ์๋ค.
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ์๋ URL์ ์ฝ๊ณ ์กฐ์ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ฒด์ด๋ค.
location์ ์ฃผ์ ๋ฉ์๋์ ํ๋กํผํฐ๋ MDN์์ ์์ธํ ์ดํด๋ณผ ์ ์๋ค.
location.href
location.host
location.port
location.replace(url)
location.assign(url)
๋ธ๋ผ์ฐ์ ์ ์ธ์ ํ์คํ ๋ฆฌ๋ฅผ ์กฐ์ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ฒด์ด๋ค. ์ฆ, ํญ์์ ๋ฐฉ๋ฌธํ๋ ํ์ด์ง๋, ํ์ฌ ํ์ด์ง์ ๊ธฐ๋ก์ ์กฐ์ํ ์ ์๊ฒ ํ๋ค.
history.length
history.go(integer)
history.back(interger)
history.forward(integer)
์ ์ ๊ฐ ์ฌ์ฉํ๊ณ ์๋ ๋ธ๋ผ์ฐ์ ๋ OS ์ฆ, user agent์ ๋ํ ์ํ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด์ด๋ค.
navigator.userAgent
navigator.languages
navigator.onLine
navigator.getBattery()