๐Ÿ”ฎ React ์ •๋ฆฌ

๊ถŒ๊ทœ๋ฆฌยท2023๋…„ 5์›” 17์ผ
0

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปFrontEnd

๋ชฉ๋ก ๋ณด๊ธฐ
20/29
post-thumbnail

01. React


01. ๋ฆฌ์•กํŠธ์˜ ์‚ฌ์šฉ ์ด์œ 

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ƒํƒœ์— ๋”ฐ๋ผ ๋งค๋ฒˆ DOM์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๊ฐ€ ๋‚œ์žกํ•ด์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ๋‹ค.

์–ด๋Š๋‚ , " ์ƒํƒœ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ DOM์„ ์—…๋ฐ์ดํŠธ ํ•˜์ง€๋ง๊ณ , ์•„์˜ˆ ๋‹ค ๋‚ ๋ ค๋ฒ„๋ฆฌ๊ณ  ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ณด์—ฌ์ฃผ๋Š”๊ฑด ์–ด๋–จ๊นŒ? " ํ•˜๋Š” ๋ฐœ์ƒ๊ณผ ํ•จ๊ป˜ ๋ฆฌ์•กํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค.

๋ฆฌ์•กํŠธ์—๋Š” ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ์กด์žฌํ•˜๋Š” Virtual DOM์„ ์‚ฌ์šฉํ•˜์—ฌ, ์†๋„ ํ–ฅ์ƒ๊นŒ์ง€ ๋”ํ–ˆ๋‹ค.


02. Virtual DOM

๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ƒ์œผ๋กœ ์กด์žฌํ•˜๋Š” DOM์œผ๋กœ์„œ JS์˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ ์„ฑ๋Šฅ์ด ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €์—์„œ DOM์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๋ณด๋‹ค ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๊ณ , ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๋ฐ ์ตœ์ ํ™” ๋˜์–ด์žˆ๋‹ค.


03. Node.js ์™€ React

Node.js๋ž€?

  • Node.js๋Š” ์ž‘์„ฑ๋œ JS ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ค€๋‹ค.
  • ์ฆ‰, ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” JS๋ฅผ ์–ด๋””์„œ๋‚˜ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“  ๊ฒƒ !

๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋ž€?

  • ์ปดํ“จํ„ฐ๊ฐ€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ OS( ์šด์˜์ฒด์ œ )์™€ ๋ณ„๊ฐœ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒ๋จธ์‹ ์ด๋‹ค.

  • ๊ฐ€์ƒ๋จธ์‹ ์€ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ OS๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด, ์šฐ๋ฆฌ๋Š” ์™œ React๋ฅผ Node.js์—์„œ ์‹คํ–‰์‹œ์ผœ์•ผ ํ•˜๋Š”๊ฐ€?

Node.js๋ฅผ ์„ค์น˜ํ•  ๋•Œ npm( node package manager) ์ด๋ผ๋Š” ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ™์ด ์„ค์น˜๋œ๋‹ค. npm์€ ์•„์ดํฐ์˜ "App Store"์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž๋“ค์˜ "npm"์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. npm์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

๋”ฐ๋ผ์„œ, ์ด๋Ÿฌํ•œ npm์€ ๋ฆฌ์•กํŠธ ํ”„๋กœ๊ทธ๋žจ์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์›นํŒฉ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋ฉฐ Node.js ๋Ÿฐํƒ€์ž„์—์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— React๋ฅผ Node.js์—์„œ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.


04. ์ปดํฌ๋„ŒํŠธ

  • ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“ค์–ด์ง„ ์•ฑ์„ ์ด๋ฃจ๋Š” ์ตœ์†Œํ•œ์˜ ๋‹จ์œ„
  • ๋ฆฌ์•กํŠธ๋Š” ํŽ˜์ด์ง€ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ปดํฌ๋„ŒํŠธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ => ์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ์ 

์ปดํฌ๋„ŒํŠธ๋Š” ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•จ์ˆ˜ํ˜•ํƒœ๋กœ ์ž‘์„ฑ ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํด๋ž˜์Šคํ˜•ํƒœ๋กœ๋„ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•จ์ˆ˜ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ(props)๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ View์ƒํƒœ์— ๋”ฐ๋ผ DOM Node๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


profile
๊ธฐ๋ก์žฅ ๐Ÿ“

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