์น ๋ธ๋ผ์ฐ์ ๊ตฌ์ฑ ์์๋ค์ ํ๋ํ๋ ๊ฐ์ฒดํ ๋์ด ์์ผ๋ฉฐ, ๊ฐ์ฒด๋ค์ ์๋ก ๊ณ์ธต์ ์ธ ๊ด๊ณ๋ก ๊ตฌ์กฐํ๋์ด ์๋ค.
BOM๊ณผ DOM์ ์ด ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ ๊ฐ์ฅ ํฐ ํ์ ๋ถ๋ฅ์ด๋ค.

BOM (Browser Object Model, ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ)
- ์น ๋ธ๋ผ์ฐ์ ์ ๋ํ ๋ชจ๋ ๋ด์ฉ์ ๋ด๊ณ ์๋ ๊ฐ์ฒด๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฐ์ง ์ ๋ณด๋ฅผ ๋ฐ๋ก ๊ฐ์ฒดํํ์ฌ ๊ด๋ฆฌ
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฆฌ๋ฉด ์ต์์ ๊ฐ์ฒด์ธ Window๊ฐ ๊ฐ์ฅ ๋จผ์ ์์ฑ๋ ํ, ํ์ ์์์ ํด๋นํ๋ ๊ฐ์ฒด ์์ฑ
- ๋ธ๋ผ์ฐ์ ์ ์ ๋ณด๋ฅผ ๋ณํํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์กฐ์ํ ์ ์๋๋ก ํจ
// BOM ํ์ฉ ์์
console.log(navigator.userAgent);
location.href = 'www.naver.com';
history.back();
window.close();
- navigator: ๋ธ๋ผ์ฐ์ ๋ฐ ๋ธ๋ผ์ฐ์ ์ ํ๊ฒฝ ์ ๋ณด๋ฅผ ์ ๊ณต
- window: ์ต์์ ๊ฐ์ฒด๋ก, ๋ธ๋ผ์ฐ์ ์ฐฝ์ด ์ด๋ฆด๋๋ง๋ค ์์ฑ
- document: ํ์ฌ ๋ฌธ์์ ๋ํ ์ ๋ณด ์ ๊ณต
- location: ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ํ์๋ Html ๋ฌธ์์ ์ฃผ์๋ฅผ ์ป๊ฑฐ๋ ์ ๋ฌธ์๋ฅผ ๋ถ๋ฌ์ฌ ๋ ์ฌ์ฉ
- history: ๋ธ๋ผ์ฐ์ ์ ํ์คํ ๋ฆฌ ์ ๋ณด์ ๋ฌธ์ ์ํ ๋ชฉ๋ก ์ ๊ณต
- screen: ํ๋ฉด์ ๋ํ ์ ๋ณด ์ ๊ณต
DOM (Document Object Model, ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ)
- ๋ฌธ์ ๊ฐ์ฒด: Html ๋ฌธ์์ ํ๊ทธ๋ค์ JavaScript๊ฐ ์ด์ฉํ ์ ์๋ Object๋ก ๋ง๋ ๊ฒ
- Document์ ๊ด๋ จ๋ ๊ฐ์ฒด์ ์งํฉ์ผ๋ก, ์น ๋ธ๋ผ์ฐ์ ๊ฐ Html ํ์ด์ง๋ฅผ ์ธ์ํ๋ ๋ฐฉ๋ฒ
- Tree ํ์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, Html ํ๊ทธ๋ฅผ ๋์ ์ผ๋ก ์ ์ดํ ์ ์์
// DOM ํ์ฉ ์์
var test = document.getElementsByTagName("test");
document.body.style.background = 'red';
// (1) ์์ฑ
document.createElement('tag');
// (2) ์ ํ
document.getElementsById('test');
// (3) ์์
element.innerText = 'update';
element.style.background = 'black';
// (4) ์ญ์
document.removeChild('element');
- ๋ฌธ์๋ ธ๋ (Document Node): ํธ๋ฆฌ์ ์ต์์์ ์กด์ฌ, Html ๋ฌธ์ ์ ์ฒด๋ฅผ ์๋ฏธ
- ์์๋ ธ๋ (Element Node): ์์ฑ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ ์ ์ผํ ๋ ธ๋๋ก, ํ๊ทธ๋ฅผ ์๋ฏธ (ex) <p>, <div>)
- ์์ฑ๋ ธ๋ (Attribute Node): ํ๊ทธ ์์ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋ฏธ (ex) name, value)
- ํ ์คํธ๋ ธํธ (Text Node): ํ๊ทธ ๋ด ํ ์คํธ๋ฅผ ์๋ฏธ (ex) <span>test</span>)
DOM๊ณผ BOM์ ์ฐจ์ด
DOM์ Document, ์ฆ ๋์ผ๋ก ๋ณด์ด๋ ์น ๋ธ๋ผ์ฐ์ ์ ๋ํ ์ ์ด ๋ณ๊ฒฝ
BOM์ Document๊ฐ ์๋ Window ์ ์ด ๋ณ๊ฒฝ
'๐ป ๊ณต๋ถ (IT) > ๐ฉ๐ผโ๐ป ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] Array์ ArrayList (0) | 2021.04.01 |
---|---|
[Java] ์ปฌ๋ ์ (Collection) (0) | 2021.03.30 |
[Java] ํฅ์๋ FOR ๋ฌธ (0) | 2021.03.29 |