[React] React.js์˜ ๊ธฐ๋ณธ ๐Ÿ˜˜

์ฝ”ํƒ€๋‹˜ยท2025๋…„ 7์›” 7์ผ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ React.js์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

1. React.js๋ž€?

ReactJS๋ž€ Meta(Facebook)์ด ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค Javascript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.
๋Œ€๊ทœ๋ชจ ์›น ์„œ๋น„์Šค์˜ UI๋ฅผ ๋” ํŽธํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ ์ด๋‹ค.
๋ณต์žกํ•œ ๋Œ€๊ทœ๋ชจ ์›น ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

1) React.js ์–ผ๋งˆ๋‚˜ ์ธ๊ธฐ ์žˆ๊ธธ๋ž˜?

๊ตญ๋‚ด์—์„œ๋Š” ๊ฑฐ์˜ 185๊ฐœ์˜ ๊ธฐ์—…์ด React.js๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ,
2์œ„์ธ Vue.js์™€๋Š” 2๋ฐฐ์˜ ๊ฒฉ์ฐจ๋ฅผ ๋ฒŒ๋ฆฌ๊ณ  ์žˆ์„ ์ •๋„๋กœ ๊ทธ ์ธ๊ธฐ๊ฐ€ ๋งค์šฐ ๋Œ€๋‹จํ•˜๋‹ค.

2) React.js์˜ ๊ธฐ์ˆ ์  ํŠน์ง•

1. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ UI ํ‘œํ˜„

๐Ÿ“Œ ์ปดํฌ๋„ŒํŠธ : ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ, UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ

๐Ÿ“Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ ๋ชจ๋“ˆํ™”ํ•œ๋‹ค.

๐Ÿ“Œ ๋งŒ์•ฝ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด?

  • ๋ชจ๋“ˆํ™”ํ•  ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • ์ผ์ผํžˆ, ๊ณตํ†ต ์˜์—ญ ๋ถ€๋ถ„์„ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ์–ด ์ค˜์•ผ ํ•œ๋‹ค.

  • ์ค‘๋ณต ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ, ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํž˜๋“ค์–ด์ง„๋‹ค.

2. ํ™”๋ฉด ์—…๋ฐ์ดํŠธ ๊ตฌํ˜„์ด ์‰ฝ๋‹ค.

๐Ÿ“Œ ํ™”๋ฉด ์—…๋ฐ์ดํŠธ

  • ์‚ฌ์šฉ์ž์˜ ํ–‰๋™(ํด๋ฆญ, ๋“œ๋ž˜๊ทธ)์— ๋”ฐ๋ผ ์›น ํŽ˜์ด์ง€๊ฐ€ ์Šค์Šค๋กœ ๋™์ž‘์„ ๋ฐ”๊ฟ” ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ž‘์—…

๐Ÿ“Œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ๋ถˆํ•„์š”ํ•œ ๊ณผ์ •์„ ์ƒ๋žตํ•˜๊ณ , ๋ชฉ์ ๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ช…์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

cf) ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๋ชฉ์ ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ผ๋ จ์˜ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•จ.

๐Ÿ“Œ React.js๋Š” ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ณต์žกํ•œ ๋™์ž‘์„ ์ง์ ‘ ์ •์˜ํ•˜์ง€ ์•Š๊ณ , ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ํ™”๋ฉด ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅ

๐Ÿ“Œ React.js์—์„œ๋Š” State ๋ณ€์ˆ˜๋ฅผ ์ฃผ๋กœ ์ด์šฉํ•œ๋‹ค

  • ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ์—๋Š” ํ˜„์žฌ์˜ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌ

  • State์— ๋”ฐ๋ผ ๋‹ค๋ฅธ UI๋ฅผ ๋žœ๋”๋งํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ํ™”๋ฉด ์—…๋ฐ์ดํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ

๐Ÿ“Œ ๋ธŒ๋ผ์šฐ์ €์˜ ๋žœ๋”๋ง ๊ณผ์ •

  • HTML๊ณผ CSS๋กœ ์ž‘์„ฑํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋‹จ๊ณ„์— ๊ฑฐ์ณ์„œ ํ™”๋ฉด์— ๋žœ๋”๋ง (Critical Rendering Path)

  • ์ฒซ๋ฒˆ์งธ, HTML,CSS๋ฅผ DOM๊ณผ CSSOM์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

DOM(Document Object Model)

CSSOM(CSS Object Model)

  • ๋‘๋ฒˆ์งธ, DOM๊ณผ CSSOM์„ ํ•ฉ์ณ Render Tree ์ƒ์„ฑ

  • ์„ธ๋ฒˆ์งธ, ์š”์†Œ์˜ ๋ฐฐ์น˜๋ฅผ ์žก๋Š” ์ž‘์—…(Layout) ์ˆ˜ํ–‰

  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์š”์†Œ๋ฅผ ํ™”๋ฉด์— ๊ทธ๋ฆฐ๋‹ค.

๐Ÿ“Œ ํ™”๋ฉด์˜ ์—…๋ฐ์ดํŠธ

  • Javascript๊ฐ€ DOM์„ ์ˆ˜์ •ํ•˜๋ฉด ํ™”๋ฉด์— ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • Critical Rendering Path ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹คํ–‰

  • ์ฃผ์˜ํ•  ์ ์€ Layout, Painting์€ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๋ผ๋Š” ์ ์ด๋‹ค.

  • ๋”ฐ๋ผ์„œ ๋™์‹œ์— ๋ฐœ์ƒํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ์œผ๊ณ  ๋ชจ์•„, ํ•œ๋ฒˆ์— DOM ์—…๋ฐ์ดํŠธ ์ž‘์—….

  • React๋Š” Virtual DOM์„ ํ†ตํ•ด ์ด ๊ณผ์ •์„ ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค.

3) Virtual DOM

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

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