๐Ÿ“– React.js

์–ธ์ง€ยท2024๋…„ 10์›” 21์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
1/13
post-thumbnail

React๋ž€?

  • ๋ฉ”ํƒ€(๊ตฌ ํŽ˜์ด์Šค๋ถ)์ด ๊ฐœ๋ฐœํ•œ ํ”„๋ก ํŠธ์—๋“œ๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ๋Œ€๊ทœ๋ชจ ์›น ์„œ๋น„์Šค UI๋ฅผ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ 
  • React.js๋กœ ๋งŒ๋“ค์–ด์ง„ ์„œ๋น„์Šค๋“ค : ๋„ทํ”Œ๋ฆญ์Šค, ํŽ˜์ด์Šค๋ถ, ์ธ์Šคํƒ€๊ทธ๋žจ, ๋…ธ์…˜ ๋“ฑ๋“ฑ

๐Ÿ“ React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  1. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ UI๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

    • ์ปดํฌ๋„ŒํŠธ(Component) : ํ™”๋ฉด, UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ
    • Header โ†’ header.js
      Main โ†’ Main.js
      Footer โ†’ Footer.js
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— component ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™”ํ•ด์„œ ๋ณด๊ด€ โžก๏ธ ์ค‘๋ณต ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค.
  2. ํ™”๋ฉด ์—…๋ฐ์ดํŠธ ๊ตฌํ˜„์ด ์‰ฝ๋‹ค.
    โœ… ์—…๋ฐ์ดํŠธ : ์‚ฌ์šฉ์ž์˜ ํ–‰๋™(ํด๋ฆญ, ๋“œ๋ž˜๊ทธ)์— ๋”ฐ๋ผ ์›นํŽ˜์ด์ง€๊ฐ€ ์Šค์Šค๋กœ ๋ชจ์Šต์„ ๋ฐ”๊ฟ” ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ

    • React๋Š” ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ โžก๏ธ ๋ชฉ์ ๋งŒ ๊น”๋”ํ•˜๊ฒŒ ๋ช…์‹œ, ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•จ
    • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ UI๋ฅผ ๋žœ๋”๋งํ•  ์ˆ˜ ์žˆ๋‹ค.
      (์ฆ‰, ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ํ™”๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋Šฅ)
  3. ํ™”๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •(Critical Rendering Path)

    • Render Tree : ์›น ํŽ˜์ด์ง€์˜ ์„ค๊ณ„๋„ ์—ญํ•  โ†’ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.
    • Layout : ์š”์†Œ์˜ ๋ฐฐ์น˜๋ฅผ ์žก๋Š” ์ž‘์—…
    • Painting : ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ ค๋‚ด๋Š” ๊ณผ์ •
  • ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ณผ์ •

    JavaScript โžก๏ธ DOM โžก๏ธ Render Tree โžก๏ธ Layout(Reflow) โžก๏ธ Painting(Repaint)

    • ๋ฌธ์ œ์ 
      ์ˆ˜์ •ํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ DOM๋„ ์ˆ˜์ •ํ•œ ํšŸ์ˆ˜๋งŒํผ ์—…๋ฐ์ดํŠธํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค.
  • React๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ
    : ๋™์‹œ์— ๋ฐœ์ƒํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ์•„์„œ DOM ํšŸ์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…์„ React์—์„œ ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค.

    Virtual DOM
    โžก๏ธ ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง ํ•˜๋Š” DOM์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋ณต์‚ฌํ•ด๋†“์€ ๊ฒƒ
    โžก๏ธ React๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹ค์ œ DOM์„ ์ˆ˜์ •ํ•˜๊ธฐ ์ „์— ์ด ๊ฐ€์ƒ์˜ ๋ณต์ œํŒ DOM์— ๋จผ์ € ๋ฐ˜์˜ํ•ด๋ณธ๋‹ค. โ†’ ๋ชจ์ธ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•œ๋ฒˆ์— ๋ฐ˜์˜ํ•œ๋‹ค (DOM 1ํšŒ ์ˆ˜์ •)

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