-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #1 DOM [DOM ์ด๋?]TIL 2022. 5. 25. 10:46
์ฉ์ด ์ ๋ฆฌ
- ํ์ฑ(parsing) : ๋ฌธ์ฅ์ด๋, ๋ฐ์ดํฐ ๋ฌธ์์ด์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด๋ ๊ธฐ์
์๋ฅผ ๋ค์ด JSON.parse(json) ๋ฉ์๋๋ ์ธ์๋ก ๋ฐ์ json์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ๊ฐ์ฒด๋ก ๋ณํํ๋ค.
const json = `{"string" : "json ๋ณํ", "result" : "true"}`; const result = JSON.parse(json); console.log(result);//{string: 'json ๋ณํ', result: 'true'} console.log(result.string); //json ๋ณํ console.log(result.result); //true
-API(Application Programming Interface) : ๋ฆฌ๋ชจ์ปจ ์ญํ
tv๋ฅผ ์์ฒญํ๊ณ ์ถ์ ๋ ์ฐ๋ฆฌ๋ ๋ฆฌ๋ชจ์ปจ์ ํตํด ๋ชจ๋ํฐ์ ๋ํํ๋ค. ๋ฆฌ๋ชจ์ปจ์ tv์ ๋์ ์ํธ์์ฉ์ ๋์์ฃผ๋ ๋งค๊ฐ์ฒด์ด๋ค. ์ค๊ฐ์์ ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก๊ทธ๋จ์ด ์์ฌ์ํตํ๋ ๊ฒ์ ๋์์ฃผ๋ ๋งค๊ฐ์ฒด๋ฅผ api ๋ผ๊ณ ํ๋ค. ๋ฆฌ๋ชจ์ปจ์ api๋ผ๊ณ ํ ์ ์๋ค.
-๋ค์ดํฐ๋ธ / ํธ์คํธ / ์ฌ์ฉ์์ ์ ๊ฐ์ฒด
javascript ๊ฐ์ฒด๋ ๋ค์ดํฐ๋ธ ๊ฐ์ฒด, ํธ์คํธ ๊ฐ์ฒด, ์ฌ์ฉ์์ ์ ๊ฐ์ฒด๋ก ๊ตฌ๋ถํ ์ ์๋ค.
1. ๋ค์ดํฐ๋ธ ๊ฐ์ฒด๋ ECMAScript์์ ์ ์๋์ด์ง ๊ฐ์ฒด๋ก ํ๊ฒฝ์ ๊ด๊ณ์์ด ์ด๋์๋ ์ฌ์ฉํ ์ ์๋ค. ๋นํธ์ธ ๊ฐ์ฒด๋ผ๊ณ ๋ ํ๋ค. String(), Number(), Boolean(), Array() ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค.
2. ํธ์คํธ ๊ฐ์ฒด๋ ๋ฐํ์(์คํ ํ๊ฒฝ)์์ ์ ๊ณต๋๋ ๊ฐ์ฒด์ด๋ค. window, fetch, dom ๋ ธ๋ ๊ฐ์ฒด ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค.
3. ์ฌ์ฉ์์ ์ ๊ฐ์ฒด๋ ์ง์ ์ฌ์ฉ์๊ฐ ์ ์ํ ๊ฐ์ฒด์ด๋ค.
let myObj = { "name" : "geze", "age" : 22 }
DOM(Document Object Model)
dom ์ html ๋ฌธ์์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์ ์ดํ ์ ์๋ API, ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๐ dom์ html ๋ฌธ์์ ์์๋ค์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ํตํด ์ ์ดํ ์ ์๋ ๋ฆฌ๋ชจ์ฝ์ด๋ค.
๋ธ๋ผ์ฐ์ ์์ html ๋ฌธ์๋ฅผ ์ด๋ป๊ฒ ๋ ๋๋งํ ๊น?
๋ธ๋ผ์ฐ์ ๋ ๋๋ง ์์ง์ด html ๋ฌธ์๋ฅผ ํ์ฑํ์ฌ DOM ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์์ฑํ๋ค. JSON.parse์ ๊ฒฐ๊ณผ๋ฌผ์ด ๊ฐ์ฒด์๋ค๋ฉด, ๋ ๋๋ง ์์ง์ ๊ฒฐ๊ณผ๋ฌผ์ DOM ๋ ธ๋ ๊ฐ์ฒด์ด๋ค.
ํ๋์ html ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
1 : ์์ ํ๊ทธ
2 : ์์ฑ ์ด๋ฆ
3 : ์์ฑ ๊ฐ
4 : ์ฝํ ์ธ
5 : ์ข ๋ฃ ํ๊ทธ
๊ทธ๋ฆฌ๊ณ ์์ html ์์๋ ํ์ฑ๋์ด ๋ ธ๋ ๊ฐ์ฒด๋ก ๋ณํ๋๋ค.
1 : ์์ ํ๊ทธ → ์์ ๋ ธ๋
2 : ์์ฑ ์ด๋ฆ → ์ดํธ๋ฆฌ๋ทฐํธ ๋ ธ๋
3 : ์์ฑ ๊ฐ → ์ดํธ๋ฆฌ๋ทฐํธ ๋ ธ๋
4 : ์ฝํ ์ธ → ํ ์คํธ ๋ ธ๋
5 : ์ข ๋ฃ ํ๊ทธ → ์์ ๋ ธ๋
- ๋ ธ๋ํ์
1. ๋ฌธ์ ๋ ธ๋(document node) : DOM ํธ๋ฆฌ์ ์ต์์ ๋ฃจํธ ๋ ธ๋. document ๊ฐ์ฒด. ๋ฌธ์๋น document ๊ฐ์ฒด๋ ๋ฑ ํ ๊ฐ์ด๋ค.
2. ์์ ๋ ธ๋(element node) : html ํ๊ทธ๋ค์ด ํด๋น๋๋ค.
3. ์ดํธ๋ฆฌ๋ทฐํธ ๋ ธ๋(attribute node) : ์์์ ์์ฑ์ ๊ฐ๋ฆฌํค๋ ๋ ธ๋. ์ดํธ๋ฆฌ๋ทฐํธ ๋ ธ๋๋ ์์ ๋ ธ๋์ ๋ฌ๋ฆฌ ๋ถ๋ชจ ๋ ธ๋์ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค. → div ํ๊ทธ๋ body ํ๊ทธ์ ์ฐ๊ฒฐ๋์ด์์ผ๋, class="greeting" ์ ์์ ๋ ธ๋๋๋ง ์ฐ๊ฒฐ๋์ด ์๋ค.
4. ํ ์คํธ ๋ ธ๋(text node) : html ์์์ ํ ์คํธ, ์ฝํ ์ธ ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ธ๋. dom ํธ๋ฆฌ์ ์ต์ข ๋จ(๋ฆฌํ๋ ธ๋: ์์ x)์ด๋ค.
์ด ์ธ์๋ ๊ณต๋ฐฑ ํ ์คํธ ๋ ธ๋, comment ๋ ธ๋, document type ๋ ธ๋ ๋ฑ ์ด 12๊ฐ์ ๋ ธ๋ ํ์ ์ด ์๋ค.
๊ฐ ๋ ธ๋๋ค์ ๋ถ๋ชจ์์์๊ฒ ๋ค์ํ ๊ธฐ๋ฅ์ ์์์ ๋ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ๊ธฐ๋ฅ๋ค(DOM API)์ ํตํด html ์์๋ค์ ์กฐ์ํ ์ ์๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | ์ด๋ฒคํธ [์ด๋ฒคํธ ํธ๋ค๋ฌ] (0) 2022.05.26 ๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #2 DOM [์์ ๋ ธ๋ ์ ํํ๊ธฐ] (0) 2022.05.25 20.09.15_TIL (0) 2020.09.15 20.09.13_TIL (1) 2020.09.13 20.09.08_TIL (0) 2020.09.12