๐Ÿคท๐Ÿปโ€โ™€๏ธ ์—„๋งˆ ๊ฐ€์ง€ - 1์›” 06์ผ์— ์ž‘์„ฑํ•œโ€™(React) ๋ Œ๋”๋ง์„ ์–ธ์ œ ํ•˜๊ธธ๋ž˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์•ˆ๋ผ?โ€™ ํฌ์ŠคํŒ…์—์„œ
๋ Œ๋”๋ง์˜ ๋œป์„ ์ •์˜ํ•˜์˜€๋‹ค. ๋ Œ๋”๋ง์ด๋ž€ โ€˜๋ฆฌ์•กํŠธ ์•จ๋ฆฌ๋จผํŠธ๋ฅผ html ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๋Š” ๊ฒƒ.โ€™ ์ •ํ™•ํžˆ ์•จ๋ฆฌ๋จผํŠธ๋ผ๋Š” ๊ฒŒ ๋ญ˜๊นŒ?ํ•˜๋ฉด์„œ ์•Œ์•„๋ณด๋Š” ๊ธ€


์† ์‹œ์›ํ•˜๊ฒŒ ๋จผ์ € ์•จ๋ฆฌ๋จผํŠธ๊ฐ€ ๋ญ๋ƒ๋ฉด,

Element์™€ React Element

Element๋ž€ html์—์„œ ํƒœ๊ทธ๋กœ ์ ์€ ๋…ธ๋“œ๋“ค์„ ์ง€์นญํ•œ๋‹ค.
React Element๋Š” React๋‚ด์—์„œ html์—์„œ ํƒœ๊ทธ๋กœ ์ ์€ ๋…ธ๋“œ๋ฅผ ์ง€์นญํ•œ๋‹ค.

๊ถ๊ธˆ์ฆ ํ•ด๊ฒฐ

์ด๋ ‡๊ฒŒ๋˜๋ฉด ๋ Œ๋”๋ง์˜ ์ •์˜๊ฐ€ ํ‹€๋ฆฐ ๊ฒƒ์ด๋‹ค.
์‹ ๋ขฐ์„ฑ์„ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ด์•ผํ•˜๋Š” ์ด์œ ์ด๋‹ค.
๋‹ค์‹œ ๋ Œ๋”๋ง์„ ๋‹ค์‹œ ์ •์˜ํ•˜๋ฉด โ€˜HTMLํŒŒ์ผ์„ ์ฝ์–ด ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•˜๋Š” ๊ณผ์ •โ€™์ด๋‹ค.

โ“ ์ถ”๊ฐ€ ๊ถ๊ธˆ์ฆ - HtmlํŒŒ์ผ์„ ์ฝ์–ด์™€์„œ ํ™”๋ฉด์— ๋„์›Œ์ฃผ๋Š” ๊ณผ์ •

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๊ณผ CSS๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ํ™”๋ฉด์— ์–ด๋–ค ๊ฒƒ์ด ๋ณด์—ฌ์ง€๊ฒŒ ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •
  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง์„ ํ•˜๋Š” ๊ณผ์ •

rendering.png

  • 1๋ฒˆ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ๋ Œ๋”ํŠธ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค.
  • ๋ Œ๋”ํŠธ๋ฆฌ๋Š” ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๊ฒŒ๋˜๋Š” HTML Element(DOM)์™€ ๊ทธ์— ๋Œ€์‘ํ•˜๋Š” ์Šคํƒ€์ผ(CSSOM)์„ ํ‘œํ˜„ํ•œ๋‹ค.
  • ๋ Œ๋”ํŠธ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด 2๋ฒˆ์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค.

โ“ ์ถ”๊ฐ€ ๊ถ๊ธˆ์ฆ - Node์™€ Element ์ฐจ์ด์ 

: Node์˜ ํŠน์ •ํƒ€์ž… Node.Element๊ฐ€ Element์ด๋‹ค. (Node ํƒ€์ž…์—๋Š” Node.COMMENT_NODE, Node.TEXT_NODE ๋“ฑ๋“ฑ ๋งŽ๋‹ค.)

  • Element๋Š” html์—์„œ ํƒœ๊ทธ๋กœ ์ ์€ ๋…ธ๋“œ๋“ค์„ ์ง€์นญํ•œ๋‹ค.

  • Node๋Š” ์ฃผ์„์ด๋‚˜ text์™€ ๊ฐ™์€ ๊ฒƒ๋“ค๋„ ํฌํ•จํ•œ๋‹ค.