DOM

DOM(Document Object Model)

DOM์€ ๋ฌธ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„์„ ์ œ๊ณตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ DOM ๊ตฌ์กฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ ๊ตฌ์กฐ, ์Šคํƒ€์ผ, ๋‚ด์šฉ ๋“ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š”๋‹ค.

  • ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ

  • HTML, XML ๋ฌธ์„œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค

  • ์›๋ณธ HTML ๋ฌธ์„œ์˜ ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํ‘œํ˜„ ๋ฐฉ์‹

  • ๊ตฌ์กฐํ™”๋œ nodes์™€ property ์™€ method ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” objects๋กœ ๋ฌธ์„œ๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ

  • ์›น ํŽ˜์ด์ง€๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐ ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. (๋™์  ์ž์›)

DOM์ธ ๊ฒƒ๊ณผ ์•„๋‹Œ ๊ฒƒ

1. ์›๋ณธ HTML๋ฌธ์„œ๋Š” DOM์ด ์•„๋‹ˆ๋‹ค.

์ž‘์„ฑํ•œ HTML๋ฌธ์„œ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ํŒŒ์‹ฑ ๋˜์–ด ์ƒ์„ฑ๋œ ๊ฒƒ์ด DOM์ด๋‹ค.

2. DOM์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณด์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด๋Š” ๊ฒƒ์€ ๋ Œ๋” ํŠธ๋ฆฌ๋กœ DOM๊ณผ CSSOM์˜ ์กฐํ•ฉ์ด๋ฉฐ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ์š”์†Œ๋“ค์€ ์ œ์™ธ๋˜๊ธฐ ๋•Œ๋ฌธ์— DOM๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค.

<html>
<head>
  <title>Understanding the Critical Rendering Path</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
      <h1>Understanding the Critical Rendering Path</h1>
  </header>
  <main>
      <h2>Introduction</h2>
      <p>Lorem ipsum dolor sit amet</p>
  </main>
  <footer>
      <small>Copyright 2017</small>
  </footer>
</body>
</html>
body { font-size: 18px; }

header { color: plum; }
h1 { font-size: 28px; }

main { color: firebrick; }
h2 { font-size: 20px; }

footer { display: none; }

3. DOM์€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ๋ณด์ด๋Š” ๊ฒƒ์ด๋‹ค?

๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ์š”์†Œ ๊ฒ€์‚ฌ๊ธฐ๋Š” DOM๊ณผ ์œ ์‚ฌํ•˜๋‚˜ ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ์š”์†Œ ๊ฒ€์‚ฌ๊ธฐ๋Š” DOM ๋‹จ์ˆœํ™”์‹œ์ผœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋ฉฐ DOM์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ CSS ๊ฐ€์ƒ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ธฐ์— ์™„์ „ํžˆ DOM์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†๋‹ค.

์ฐธ์กฐ

Last updated