ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [React] ๋ฆฌ์•กํŠธ(React.js)๋ž€? ์™œ ์‚ฌ์šฉํ• ๊นŒ?
    Front-end/React 2021. 11. 27. 20:18
    ๋ฐ˜์‘ํ˜•

    ๋ฆฌ์•กํŠธ(React) ๋ž€?

    ๋ฆฌ์•กํŠธ(React, React.js ๋˜๋Š” ReactJS)๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•˜๋‚˜๋กœ์จ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ํŽ˜์ด์Šค๋ถ๊ณผ ๊ฐœ๋ณ„ ๊ฐœ๋ฐœ์ž ๋ฐ ๊ธฐ์—…๋“ค ๊ณต๋™์ฒด์— ์˜ํ•ด ์œ ์ง€๋ณด์ˆ˜ ๋œ๋‹ค.

    - ์œ„ํ‚ค๋ฐฑ๊ณผ

     

    ์™œ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

     JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTML๋กœ ๊ตฌ์„ฑํ•œ UI๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน์ • DOM์„ ์„ ํƒํ•œ ๋’ค, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ณ€ํ™”๋ฅผ ์ฃผ๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์™€ ์ธํ„ฐ๋ž™์…˜์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜์—ฌ ๋™์ ์œผ๋กœ UI๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ค๊ณ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

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

     

    ๋ฆฌ์•กํŠธ์˜ ํŠน์ง•

    - ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜

     ์ปดํฌ๋„ŒํŠธ(Component)๋ž€ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฐ๊ฐ์˜ ๋…๋ฆฝ๋œ ๋ชจ๋“ˆ์„ ๋งํ•œ๋‹ค. UI๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์žˆ์–ด ์ปดํฌ๋„ŒํŠธ๋Š” ๋ ˆ๊ณ  ๋ธ”๋ก์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋“ค(๋ ˆ๊ณ  ๋ธ”๋ก๋“ค)์„ ์กฐ๋ฆฝํ•ด์„œ ํ•˜๋‚˜์˜ ์™„์„ฑํ’ˆ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์žฌ์‚ฌ์šฉ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.


    - JSX

    const element = <h1>Hello, world!</h1>;

     JSX๋Š” JavaScript๋ฅผ ํ™•์žฅํ•œ ๋ฌธ๋ฒ•์ด๋‹ค. ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ HTML์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ณ ์ ์‘ ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    Reference: ๋ฐธ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋˜ ๋ฆฌ์•กํŠธ

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.