๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge (167)

Daehyunii's Dev-blog

39์žฅ DOM(๋…ธ๋“œ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ)

๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์—”์ง„์€ HTML ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ DOM์„ ์ƒ์„ฑํ•œ๋‹ค. DOM์€ HTML ๋ฌธ์„œ์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ์™€ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ ์ด๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” API, ์ฆ‰ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. 39.1 ๋…ธ๋“œ 39.1.1 HTML ์š”์†Œ์™€ ๋…ธ๋“œ ๊ฐ์ฒด HTML ์š”์†Œ๋Š” HTML ๋ฌธ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋ณ„์ ์ธ ์š”์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. HTML ์š”์†Œ๋Š” ๋ Œ๋”๋ง ์—”์ง„์— ์˜ํ•ด ํŒŒ์‹ฑ๋˜์–ด DOM์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ ๋…ธ๋“œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ์ด๋•Œ HTML ์š”์†Œ์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋…ธ๋“œ๋กœ, HTML ์š”์†Œ์˜ ํ…์ŠคํŠธ ์ปจํ…์ธ ๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. Hello(์ฝ˜ํ…์ธ )(์ข…๋ฃŒํƒœ๊ทธ) HTML ๋ฌธ์„œ๋Š” HTML ์š”์†Œ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ด๋ค„์ง€๋ฉฐ, HTML ์š”์†Œ๋Š” ์ค‘์ฒฉ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ฆ‰, HTML ์š”์†Œ์˜ ์ฝ˜..

38์žฅ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML, CSS์™€ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•  ๋•Œ ๋” ํšจ์œจ์ ์ธ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋œ ํ…์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ํŒŒ์‹ฑ(ํ•ด์„)ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์— ๋ Œ๋”๋งํ•˜๋Š”์ง€ ์‚ดํŽด ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. 1. ํŒŒ์‹ฑ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์— ๋งž๊ฒŒ ์ž‘์„ฑ๋œ ํ…์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด ๋“ค์—ฌ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ…์ŠคํŠธ ๋ฌธ์„œ์˜ ๋ฌธ์ž์—ด์„ ํ† ํฐ์œผ๋กœ ๋ถ„ํ•ดํ•˜๊ณ , ํ† ํฐ์˜ ๋ฌธ๋ฒ•์  ์˜๋ฏธ์™€ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ • 2. ๋ Œ๋”๋ง : HTML, CSS, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์— ์‹œ๊ฐ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ ๋ธŒ๋ผ์šฐ์ €๋Š” HTML, CSS, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ ๋ Œ๋”..

37์žฅ Set๊ณผ Map

37.1 Set Set ๊ฐ์ฒด๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. Set ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ๊ตฌ๋ถ„ ๋ฐฐ์—ด Set ๊ฐ์ฒด ๋™์ผํ•œ ๊ฐ’์„ ์ค‘๋ณตํ•˜์—ฌ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค. o x ์š”์†Œ ์ˆœ์„œ์— ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. o x ์ธ๋ฑ์Šค๋กœ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. o x ์ด๋Ÿฌํ•œ Set ๊ฐ์ฒด์˜ ํŠน์„ฑ์€ ์ˆ˜ํ•™์  ์ง‘ํ•ฉ์˜ ํŠน์„ฑ๊ณผ ์ผ์น˜ํ•œ๋‹ค. Set์€ ์ˆ˜ํ•™์  ์ง‘ํ•ฉ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. ๋”ฐ๋ผ์„œ Set์„ ํ†ตํ•ด ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ, ์—ฌ์ง‘ํ•ฉ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 37.1.1 Set ๊ฐ์ฒด์˜ ์ƒ์„ฑ Set ๊ฐ์ฒด๋Š” Set ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ์ƒ์„ฑํ•œ๋‹ค. Set ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋นˆ Set ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. const set = new Set(); console.log(set); // Set(0) {} Set..

36์žฅ ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น

๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๊ตฌ์กฐํ™”๋œ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ ํŒŒ๊ดดํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ๊ฐœ๋ณ„์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์—์„œ ํ•„์š”ํ•œ ๊ฐ’๋งŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. 36.1 ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น ES5์—์„œ ๊ตฌ์กฐํ™”๋œ ๋ฐฐ์—ด์„ ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋งํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. //ES5์—์„œ ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋งํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹น var arr = [1, 2, 3]; var one = arr[0]; var two = arr[1]; var three = arr[2]; console.log(one, two, three); // 1 2 3 ES6์—์„œ์˜ ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ๋ถ€ํ„ฐ ์ถ”์ถœํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค. ์ด๋•Œ ๋ฐฐ..

35์žฅ ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•

ES6์—์„œ ๋„์ž…๋œ ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•(์ „๊ฐœ ๋ฌธ๋ฒ•) ...์€ ํ•˜๋‚˜๋กœ ๋ญ‰์ณ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ํŽผ์ณ์„œ ๊ฐœ๋ณ„์ ์ธ ๊ฐ’๋“ค์˜ ๋ชฉ๋ก์œผ๋กœ ๋งŒ๋“ ๋‹ค. ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ์€ for...of ๋ฌธ์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”์— ํ•œ์ •๋œ๋‹ค. // ...[1,2,3]์€ [1,2,3]์„ ๊ฐœ๋ณ„ ์š”์†Œ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค. console.log(...[1,2,3]); // 1 2 3 // ๋ฌธ์ž์—ด์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๋‹ค console.log(...'hello'); // h e l l o // ์ดํ„ฐ๋Ÿฌ๋ธ”์ด ์•„๋‹Œ ์ผ๋ฐ˜ ๊ฐ์ฒด๋Š” ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์—†๋‹ค. console.log(...{a : 1}) // TypeError ๋ฐœ์ƒ ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ฐ’๋“ค์˜ ๋ชฉ๋ก์ด๋‹ค. ์ด๋Š” ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ• ...์ด ํ”ผ์—ฐ์‚ฐ์ž..

34์žฅ ์ดํ„ฐ๋Ÿฌ๋ธ”

34.1 ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ ES6์—์„œ ๋„์ž…๋œ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์€ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜ ์ฆ‰ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ECMAscript ์‚ฌ์–‘์— ์ •์˜ํ•˜์—ฌ ๋ฏธ๋ฆฌ ์•ฝ์†ํ•œ ๊ทœ์น™์ด๋‹ค. ES6 ์ด์ „์˜ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜, ์ฆ‰ ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด, DOM ์ปฌ๋ ‰์…˜ ๋“ฑ์€ ํ†ต์ผ๋œ ๊ทœ์•ฝ ์—†์ด ๊ฐ์ž ๋‚˜๋ฆ„์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  for๋ฌธ, for...in๋ฌธ, forEach ๋ฉ”์„œ๋“œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ๋Š” ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์„ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ํ†ต์ผํ•˜์—ฌ for...of ๋ฌธ, ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•, ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์›ํ™”ํ–ˆ๋‹ค. ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์—๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ” ํ”„๋กœํ† ์ฝœ๊ณผ ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํ”„๋กœํ† ์ฝœ์ด ์žˆ๋‹ค. 34.1.1 ์ดํ„ฐ๋Ÿฌ๋ธ” ์ดํ„ฐ๋Ÿฌ๋ธ”..

32์žฅ String

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ String์€ ์›์‹œ ํƒ€์ž…์ธ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 32.1 String ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ String ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๊ฐ์ฒด๋‹ค. ๋”ฐ๋ผ์„œ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ String ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. String ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[StringData]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— ๋นˆ ๋ฌธ์ž์—ด์„ ํ• ๋‹นํ•œ String ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. const strObj = new String(); console.log(strObj); // String length: 0 String ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ๋ฌธ์ž์—ด์„ ์ „๋‹ฌํ•˜๋ฉด์„œ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[StringData]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ๋ฌธ์ž..

28์žฅ Number

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ Number๋Š” ์›์‹œ ํƒ€์ž…์ธ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค 28.1 Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ Number ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๊ฐ์ฒด๋‹ค. ๋”ฐ๋ผ์„œ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ Number ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[Numberdata]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— 0์„ ํ• ๋‹นํ•œ Number ๋ž˜ํผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. const numObj = new Number(); console.log(numObj); //Number {0} Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์ˆซ์ž๋ฅผ ์ „๋‹ฌํ•˜๋ฉด์„œ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[Numberdata]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•œ Numbe..