๐ŸŽ'๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ' 1์žฅ, ๋ฆฌ์•กํŠธ์˜ ์‹œ์ž‘

Jake_Youngยท2020๋…„ 8์›” 18์ผ
1
post-thumbnail

๐ŸŽˆ ์™œ ๋ฆฌ์•กํŠธ์ธ๊ฐ€?

์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•  ๋•Œ๋งˆ๋‹ค
์–ด๋–ค ๋ณ€ํ™”๋ฅผ ์ค„์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
๊ทธ๋ƒฅ ๊ธฐ์กด์˜ ๋ทฐ๋ฅผ ๋‚ ๋ ค ๋ฒ„๋ฆฌ๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹

๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ ๋ฐฉ์‹์ด ๊ฐ€๋Šฅ ํ• ๊นŒ? DOM์€ ๋Š๋ฆฐ๋ฐ..

๋ฆฌ์•กํŠธ ์ดํ•ด

  • ์ปดํฌ๋„ŒํŠธ: ๋ฆฌ์•กํŠธ์—์„œ ํŠน์ • ๋ถ€๋ถ„์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ธธ์ง€ ์ •ํ•˜๋Š” ์„ ์–ธ์ฒด
  • ๋ฆฌ์•กํŠธ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ: '์ดˆ๊ธฐ ๋ Œ๋”๋ง'๊ณผ '๋ฆฌ๋ Œ๋”๋ง'

1. ์ดˆ๊ธฐ ๋ Œ๋”๋ง

  • Render ํ•จ์ˆ˜๋Š” ๊ทธ ๋‚ด๋ถ€์— ์žˆ๋Š” ์ปดํฌ๋„Œ๋“œ๋“ค์„ ์žฌ๊ท€์ ์œผ๋กœ Rendering
  • ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ์ž‘์—…์ด ๋๋‚˜๋ฉด HTML ๋งˆํฌ์—…(๋ฌธ์ž์—ด)์„ ๋งŒ๋“ค๊ณ  DOM์— ์ฃผ์ž…

2. ์กฐํ™” ๊ณผ์ •

  • ์—…๋ฐ์ดํŠธ ๊ณผ์ •์ด ์•„๋‹Œ "์กฐํ™”(reconcilation) ๊ณผ์ •"
  • ๋ทฐ๊ฐ€ ๋ณ€ํ˜•๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ์š”์†Œ๋กœ ๊ฐˆ์•„ ๋ผ์šฐ๋Š” ๊ณผ์ •
  • ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—…ํ…Œ์ด๋“œ ํ–ˆ์„ ๋•Œ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  render ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœ
  • ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“  ๊ฒฐ๊ณผ๋ฅผ ๊ณง ๋ฐ”๋กœ DOM์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š๊ณ , ์ด์ „์— ๋งŒ๋“  ๊ฒฐ๊ณผ์™€ ๋น„๊ตํ•˜์—ฌ ๋‘˜์˜ ์ฐจ์ด๋ฅผ ๊ฐ€์ง€๊ณ  ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์š”์†Œ๋งŒ DOM ํŠธ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ

๐ŸŽ ๋ฆฌ์•กํŠธ ํŠน์ง•

Virtual DOM

1. DOM์ด๋ž€?

  • DOM = Document Object Model (XML or HTML)
  • ๋™์  UI์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.
  • DOM ์ž์ฒด๋Š” ๋น ๋ฅด๋‹ค
  • JS๊ฐ€ ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์„ฑ๋Šฅ๊ณผ ๊ฑฐ์˜ ๋˜‘๊ฐ™๋‹ค.
  • ๋‹ค๋งŒ DOM์— ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” CSS๋ฅผ ๋‹ค์‹œ ์—ฐ์‚ฐํ•˜๊ณ , ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๊ณ , ํŽ˜์ด์ง€๋ฅผ ๋ฆฌํŽ˜์ธํŠธ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ด ํ—ˆ๋น„๋˜๋Š” ๊ฒƒ.

๋ฆฌ์•กํŠธ๋Š” Virtual DOM ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ DOM ์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”์ƒํ™”ํ•จ์œผ๋กœ์จ DOM ์ฒ˜๋ฆฌ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ง„ํ–‰ํ•จ

2. Virtual DOM

  • ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ „์ฒด UI๋ฅผ Virtual DOM์— ๋ฆฌ๋ Œ๋”๋งํ•œ๋‹ค,
  • ์ด์ „ Virtual DOM์— ์žˆ๋˜ ๋‚ด์šฉ๊ณผ ํ˜„์žฌ ๋‚ด์šฉ์„ ๋น„๊ตํ•œ๋‹ค.
  • ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ DOM์— ์ ์šฉํ•œ๋‹ค.

๐Ÿงถ ์ž‘์—… ํ™˜๊ฒฝ์„ค์ •

  1. Nodejs์™€ Yarn ์„ค์น˜ํ•˜๊ธฐ
  2. ๊ธฐ๋ณธ ์„ธํŒ…ํ•˜๊ธฐ: ์•„๋ž˜ ๋‘˜ ์ค‘ ํ•˜๋‚˜ ์„ ํƒ
    • yarn create react-app "ํ”„๋กœ์ ํŠธ ์ด๋ฆ„"
    • npm init react-app "ํ”„๋กœ์ ํŠธ ์ด๋ฆ„"
profile
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํŒŒ์ด์ฌ ๊ทธ๋ฆฌ๊ณ  ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ

0๊ฐœ์˜ ๋Œ“๊ธ€