TIL

20220504 ๋ฐฐ์šธ ๊ฒƒ์€ ๋งŽ๊ณ  ์‹œ๊ฐ„์€ ํ•œ์ •์ ์ด๋‹ค.

B.Rabtle 2022. 5. 5.

๐Ÿ’ญ ํšŒ๊ณ 

์‹œ๊ฐ„ ๋ถ„๋ฐฐ๋ฅผ ์ž˜๋ชปํ•จ

๋งค์ผ๋งค์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด๋ฅผ ํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน๊ณ  ๊ณ„ํš์„ ํ–ˆ์ง€๋งŒ ๊ธฐ์ดˆ์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ์›น ์ˆ˜์—…์˜ ํ•˜๋ฃจ ๋ชฉํ‘œ์น˜๋ฅผ ๋‹ฌ์„ฑํ•˜์ง€ ๋ชปํ•ด์„œ ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ค„์ง„๋‹ค. ๋‚˜ ์Šค์Šค๋กœ์— ๋Œ€ํ•œ ๊ฐ๊ด€ํ™”๊ฐ€ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•ด๋‹น ์ˆ˜์—…์˜ ๋ชฉ์ฐจ๋ฅผ ์ œ๋Œ€๋กœ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์„ธ์›Œ์„œ ์—‰ํ„ฐ๋ฆฌ ๊ณ„ํš์ด ์„ธ์›Œ์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์Šค์Šค๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„๋Ÿ‰์— ์กฐ๊ธˆ ๋” ํž˜๋“  ์ •๋„๋กœ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ ์ง„์ ์œผ๋กœ ๋Š˜๋ฆฌ๋Š” ๊ฒŒ ๋งž๋Š” ๋ฐฉ๋ฒ•์ธ ๊ฑธ ์•Œ์ง€๋งŒ ์Šค์Šค๋กœ ์ ์šฉ์„ ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋˜๋‹ค์‹œ ์ธ์ง€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์Šค์Šค๋กœ๋ฅผ ๊ฐ๊ด€์ ์œผ๋กœ ๋ฐ”๋ผ๋ณด๊ณ  ์ƒ๊ฐํ•œ ๊ฒƒ์„ ์ ์šฉํ•  ํ•„์š”์„ฑ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๋นจ๋ฆฌ ๋ฐฐ์šด ๊ฒƒ์„ ์จ๋ณด๊ณ  ์‹ถ๋‹ค.

์˜ค๋Š˜์€ ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๊ฐ•์˜ ๋ฐ˜๊นŒ์ง€ ์ง„๋„๊ฐ€ ๋‚˜๊ฐ”๋‹ค.

์ •์ ์ธ ์›น ํŽ˜์ด์ง€์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•ด ๋™์ ์œผ๋กœ ์›นํŽ˜์ด์ง€์˜ ์š”์†Œ๋“ค์„ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ์™€ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋‹ˆ ์žฌ๋ฏธ์žˆ๊ณ  ๋นจ๋ฆฌ ๋งŒ๋“ค์–ด ๋ณด๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ๋“ค์—ˆ๋‹ค. ์ ๋‹นํžˆ 2์ฃผ ๋’ค์— ๊ธฐ์ดˆ๋ฅผ ๋๋‚ด๊ณ  ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ ค๋‚˜?

๐Ÿ™„Problem & ๐ŸงSolution

P - ๊ธˆ์ผ ํ•ด์•ผ ๋  ์ผ์— ๋Œ€ํ•œ ์‹œ๊ฐ„ ๊ด€๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ์•ˆ๋œ๋‹ค.

S - ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐธ๋Ÿฐ์Šค ์žˆ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ๊ฐ์˜ ํ•  ์ผ์— ์ตœ์†Œ ๋งˆ์ง€๋…ธ์„ ์ธ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋‹ค์Œ ๊ณต๋ถ€๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ํ•ด๊ฒฐํ•˜๊ณ  ๋‚จ์€ ์‹œ๊ฐ„์— ๋‹ฌ์„ฑํ•˜์ง€ ๋ชปํ•œ ๋ชฉํ‘œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜์ž.

๐Ÿ”ป์˜ค๋Š˜ ํ•œ ์ผ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹ฌํ™”[์ฝ”๋“œ์ž‡]
    • ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(0%-52%) 8์‹œ๊ฐ„ 35๋ถ„
  • ๊ฐœ๋ฐœ๊ด€๋ จ ์ปค๋ฎค๋‹ˆํ‹ฐ 2์‹œ๊ฐ„
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋ฐฑ์ค€ ๊ธฐ์ดˆ 1๋‹จ๊ณ„ ?1์‹œ๊ฐ„
  • ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ deep dive ์ •๋…
    • ๋ฐ์ดํ„ฐ ํƒ€์ž…

๋ฐฐ์šด ๊ฒƒ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํƒœ๊ทธ ๋‹ค๋ฃจ๊ธฐโ—
    • ์™œ getElementById ๋ฉ”์„œ๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” id ๊ฐ’์œผ๋กœ ์ž…๋ ฅ์‹œ null์ด๋ผ๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  getElementsByClassName ๋ฉ”์„œ๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” class ๊ฐ’์„ ์ž…๋ ฅ์‹œ undefined๋ฅผ ์ถœ๋ ฅ ํ• ๊นŒ? id๋Š” const๋‚˜ let ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ๊ณ  class๋Š” var ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ๋Š” ๊ฑด๊ฐ€?
    • ์œ ์‚ฌ๋ฐฐ์—ด(Arry-Like Object)
      • ํ˜•ํƒœ๋Š” ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ƒ๊ฒผ์ง€๋งŒ ๋ฐฐ์—ด์˜ ๋งค์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋Š” ๋ฐฐ์—ด
      • ์‚ฌ์šฉ์ด์œ ?
        • ๋ฐฐ์—ด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ง‰๊ณ  ์‹ถ๊ฑฐ๋‚˜ ํŠน์ •ํ•œ ๋ฐฐ์—ด์˜ ๋งค์†Œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ํ™œ์šฉ
        • ํŠน์ง• 4๊ฐ€์ง€
          • ๋ฐฐ์—ด ๋งค์†Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€, indexing ๊ฐ€๋Šฅ, length ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅ, Array.isArray(’์œ ์‚ฌ๋ฐฐ์—ด’) ์€ false
      •  
    • CSS ์„ ํƒ์ž ์‚ฌ์šฉ๋ฒ•
      • id ์‚ฌ์šฉ์‹œ
        • querySelector(#~)
      • class ์‚ฌ์šฉ์‹œ
        • querySelectorAll(.~)
    • getElemnt vs querySelector
      • ํ•œ ๋ฉ”์„œ๋“œ๋กœ id์™€ class ๋‘˜ ๋‹ค ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” querySelector๊ฐ€ ๋” ๊ฐ„ํŽธํ•  ๋“ฏ ํ•˜๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    • ์œˆ๋„์šฐ ๊ฐ์ฒดโ—
      • console๊ณผ document๊ฐ์ฒด๊ฐ€ ์‚ฌ์‹ค์€ ์œˆ๋„์šฐ์˜ ๋‚ด์žฅ ๊ฐ์ฒด๋ผ๋‹ˆ!!!
      • ์œ„๋„์šฐ ๊ฐ์ฒด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด์™€ ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋А๊ณณ์—์„œ๋‚˜ ์œˆ๋„์šฐ ๊ฐ์ฒด์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
      • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•ˆ์— ์œˆ๋„์šฐ ๊ฐ์ฒด๊ฐ€ ์žˆ๊ณ  ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์™€ ๋‚ด์žฅํ•จ์ˆ˜๋Š” ์œˆ๋„์šฐ ๊ฐ์ฒด์— ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ > ์œˆ๋„์šฐ ๊ฐ์ฒด> ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ๊ฐ์ฒด ํ•จ์ˆ˜ ์ด๋ ‡๊ฒŒ ๋˜๋‚˜?
    • DOM(Document Object Model)
      • HTML ๋ฌธ์„œ๋ฅผ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์›น ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€ ์ฃผ๋Š” ๊ฐ์ฒด)
    • log ์™€ dir
      • log๋Š” htmlํ˜•์‹์˜ ๊ฐ’์„ dir์€ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ถœ๋ ฅํ•จ
    • ๋‚ด๋ถ€ HTML ์ฝ”๋“œ ์ ‘๊ทผ๋ฒ•
      • element.innerHTML
      • element.outerHTML
      • elemnt.textContent
    • ๋…ธ๋“œ ์‚ญ์ œ์™€ ์ด๋™ ๋ฉ”์„œ๋“œ
      • remove()
      • prepend()
      • append()
      • before()
      • after()

๋Œ“๊ธ€