Dom

DOM ์ด๋ž€?

DOM์€ ๋„“์€ ์˜๋ฏธ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŽ˜์ด์ง€๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ์ข์€ ์˜๋ฏธ๋กœ ๋ณธ๋‹ค๋ฉด document ๊ฐ์ฒด์™€ ๊ด€๋ จ๋œ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•จ.

Tree ๊ตฌ์กฐ์˜ Dom

DOM์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” tree๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. DOM์ด tree ํ˜•์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ root node์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋ฌด๋Š” ๋•…์—์„œ ์†Ÿ์•„์„œ ์ ์  ์œ„๋กœ ๋ป—์–ด๋‚˜๊ฐ€์ง€๋งŒ treeํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ”ํžˆ ์œ„์˜ root node์—์„œ ์•„๋ž˜๋กœ ํผ์ ธ๋‚˜๊ฐ€๋Š” ํ˜•ํƒœ๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

tree์—์„œ๋Š” ์œ„์ชฝ์˜ node๋ฅผ ๋ถ€๋ชจ(parent) ๋…ธ๋“œ ์•„๋žซ์ชฝ ๋…ธ๋“œ๋ฅผ ์ž์‹(child)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. root node๋Š” ๊ฐ€์žฅ ์œ„์—์„œ ์‹œ์ž‘๋˜๋Š” node์ด๋‹ˆ๊นŒ parent๊ฐ€ ์—†๋Š” node๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  children(์ž์‹)์ด ์—†๋Š” node๋ฅผ leaf node๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฟŒ๋ฆฌ(root)์—์„œ ์‹œ์ž‘ํ•ด์„œ ์žŽ(leaf)์—์„œ ๋๋‚˜๋Š” ๊ฒƒ์ด์ฃ .

Node๋ž€?

๐Ÿ‘‰ tree ๊ตฌ์กฐ์—์„œ root ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฐœ๊ฐœ์˜ ๊ฐœ์ฒด๋ฅผ node๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

head, body, title, script, h1 ๋“ฑ์˜ ํƒœ๊ทธ๋ฟ ์•„๋‹ˆ๋ผ ํƒœ๊ทธ ์•ˆ์˜ ํ…์ŠคํŠธ๋‚˜ ์†์„ฑ ๋“ฑ๋„ ๋ชจ๋‘ node์— ์†ํ•ฉ๋‹ˆ๋‹ค.

์ด์ค‘ HTML ํƒœ๊ทธ๋ฅผ ์š”์†Œ๋…ธ๋“œ(Element Node)๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์š”์†Œ ๋…ธ๋“œ ์•ˆ์— ์žˆ๋Š” ๊ธ€์ž๋ฅผ Text ๋…ธ๋“œ(Text Node)๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

JavaScript๋กœ ๋ฌธ์„œ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ์˜๋ฏธ

๋ฌธ์„œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์€ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŽ˜์ด์ง€์— ์ ํ˜€ ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ์ฝ์œผ๋ฉด ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ณผ์ •์„ ์ •์ ์œผ๋กœ ๋ฌธ์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ ํ˜€์ ธ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ฌธ์„œ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์›๋ž˜ HTML ํŽ˜์ด์ง€์— ์—†๋˜ ๋ฌธ์„œ๊ฐ์ฒด๋ฅผ JavaScript๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ณผ์ •์„ ๋™์ ์œผ๋กœ ๋ฌธ์„œ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ JavaScript๋กœ ๋ฌธ์„œ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฒ˜์Œ์—๋Š” HTML ํŽ˜์ด์ง€์— ์—†๋˜ ๋ฌธ์„œ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: AIdev ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

Last updated