๐์ค๋ ๋ฐฐ์ด ๊ฒ
DOM(Document Object Model)
DOM์ด๋?
:๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ์ HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ interface์ด๋ค. DOM์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ทธ๋ค์ด ๋ฌธ์ ๊ตฌ์กฐ, ์คํ์ผ, ๋ด์ฉ ๋ฑ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋๋ค.
DOM ํน์ง
-DOM์ html ๋ฌธ์๋ก๋ถํฐ ์์ฑ๋์ง๋ง ๋์ผํ ๊ฒ์ ์๋๋ค.
> ์๋ณธ html์ด ์ ํจํ์ง ์์๋ ์์ฑ๋ DOM ํธ๋ฆฌ์๋ ๊ต์ ๋์ด ๋ํ๋๋ค.
> ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด DOM์ ์์ ํ๋ ๊ฒฝ์ฐ DOM์๋ ์ ๋ฐ์ดํธ๋์ง๋ง HTML ๋ฌธ์์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์๋๋ค.
-DOM์ key ์ value๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ์ด๊ฒ์ ์น UI์ ์ํ, ๊ธฐ๋ฅ, ์์ฑ์ ๊ฐ์ฒด๋ก ๋ง๋ ๊ฒ์ด๋ค.
DOM Tree
:DOM์ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ์๋๋ฐ ๋ฌธ์ ๋ ธ๋, ์์ ๋ ธ๋, ์์ฑ ๋ ธ๋, ํ ์คํธ ๋ ธ๋๋ก ๊ตฌ์ฑ๋์ด์๋ค.
-๋ฌธ์ ๋ ธ๋(document)
:์ต์์ ๋ ธ๋๋ก ๋ชจ๋ ๋ ธ๋์ ์ ๊ทผํ๋ ค๋ฉด ๋ฌธ์ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค.
-์์ ๋ ธ๋
:html์ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ฉฐ ์์ฑ ๋ ธ๋๋ ํ ์คํธ ๋ ธ๋์ ์ ๊ทผํ๋ ค๋ฉด ์์ ๋ ธ๋์ ์ ๊ทผํด์ผ ํ๋ค.
-์์ฑ ๋ ธ๋
:์์ ๋ ธ๋์ ๋ถ์ด์๋ ๋ ธ๋๋ก ์์์ด ์๋๋ค.
- ํ ์คํธ ๋ ธ๋
: ์์์ ํ ์คํธ๋ฅผ ํํํ๋ ๋ ธ๋๋ก ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
DOM Tree์์ <li> ํ๊ทธ๋ฅผ ์ฐพ๋ ๊ณผ์
: DOM Tree ์ํ๋ PreOrder(์ ์ ์ํ)๋ก ์ด๋ฃจ์ด์ง๋ค.
DOM์ด ๋์๋๋ ๊ณผ์
1. HTML์ ํ์ฑํ์ฌ DOM Tree๋ฅผ ๋ง๋ ๋ค.
2. style Sheets๋ฅผ ํ์ฑํ์ฌ Style Rules๋ฅผ ๋ง๋ ๋ค
3. ๋ง๋ Style Rules๋ฅผ DOM Tree์ ์ ํ๋ค. - Attachment
4. ๋ ๋ ํธ๋ฆฌ๊ฐ ์์ฑ๋๊ณ ๋ ์ด์์ ๊ณผ์ ์ ํตํด DOM์ ์์น๋ฅผ ์ ํ๊ณ ์ดํ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ค.
Virtual DOM
virtual DOM์ด๋?
: ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํ ํ ์์ ์ ์ DOM๊ณผ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง DOM์๊ฒ ์ ๋ฌํ์ฌ ํ๋ฒ๋ง ๋ ๋๋ง์ด ์ผ์ด๋๋๋ก ํ๋ ๊ฒ์ด๋ค.
๋ณ๊ฒฝ์ฌํญ์ด ์ผ์ด๋ ๋๋ง๋ค DOM Tree๊ฐ ๋ค์ ์์ฑ๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ๋ฆฌ์กํธ, vue ๋ฑ์์ virtual DOM์ ์ฌ์ฉํ๋ค.
๐ญ๋ฐฐ์ด ์
DOM๊ณผ virtual DOM์ ๋ํด ์ ๋๋ก ๋ฐฐ์ธ ์ ์์ด์ ์ข์๊ณ ๋ฐ๋ธ์ฝ์ค ๊ฐ์์์ DOM์ ๋ค๋ฃจ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์ด ์ข์๋ค. ์จ๋ณธ ๊ฒ๋ ์์ง๋ง ์ ์จ๋ณธ ๊ฒ๋ ๋ง์์ ํ ๋ฒ์ฉ ์จ๋ณด๋ฉด์ ์ฐ์ตํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์ฐธ๊ณ ์๋ฃ
ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์
-https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction
-https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%84%9C_%EA%B0%9D%EC%B2%B4_%EB%AA%A8%EB%8D%B8
'์ผ์ > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ๋ธ์ฝ์ค] ํ ๋ฌ ์ฐจ ํ๊ณ (0) | 2022.11.18 |
---|---|
[๋ฐ๋ธ์ฝ์ค] 2์ฃผ์ฐจ & 3์ฃผ์ฐจ ํ๊ณ (2) | 2022.11.05 |
[๋ฐ๋ธ์ฝ์ค Day6] 2022.10.14 (0) | 2022.10.24 |
[๋ฐ๋ธ์ฝ์ค] 1์ฃผ์ฐจ ํ๊ณ (0) | 2022.10.24 |
[๋ฐ๋ธ์ฝ์ค Day5] 2022.10.21 (7) | 2022.10.21 |