๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Develop/It ์ด๊ฒƒ์ €๊ฒƒ

React v17 ์ถœ์‹œ ์†Œ์‹๊ณผ ์ฃผ์š” ์—…๋ฐ์ดํŠธ

by _mingle 2024. 1. 30.
728x90

React์˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „์ธ v17์— ๋Œ€ํ•œ ์†Œ์‹์„ ํ•จ๊ป˜ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. React ํŒ€์€ ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ ์ž ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋ฆฌ์•กํŠธ v17 ์†Œ๊ฐœ

React v17์€ ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ์—์„œ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ณ€ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ฃผ์š” ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

React v17์€ ๊ธฐ์กด์˜ ์ฃผ์š” ๋ณ€ํ™” ์—†์ด๋„ ์ƒˆ๋กœ์šด API ์ถ”๊ฐ€์™€ ํ•จ๊ป˜ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ค‘์ ์œผ๋กœ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์€ ์ด์ „๊ณผ์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ

๊ธฐ์กด์˜ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ v17๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๊ณผ์ •์—์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ๊ณผ ์ฃผ์š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์•ˆ๋‚ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ

๋จผ์ €, React ๋ฐ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”. npm์ด๋‚˜ yarn๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

npm install react@latest react-dom@latest

์ฝ”๋“œ ์ˆ˜์ •

React v17์€ ๊ธฐ์กด ์ฝ”๋“œ์— ํฐ ์ˆ˜์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์ฆˆ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ๋œ ์„ฑ๋Šฅ

์ด๋ฒˆ ์—…๋ฐ์ดํŠธ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ๋œ ์„ฑ๋Šฅ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด Context API

React v17์—์„œ๋Š” Context API๊ฐ€ ๋”์šฑ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์‰ฌ์šด ์‚ฌ์šฉ๋ฒ•๊ณผ ํ•จ๊ป˜, ์„ฑ๋Šฅ ๋ฉด์—์„œ๋„ ์ด์ „๋ณด๋‹ค ํ–ฅ์ƒ๋œ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ๊ฑฐ์‹œ ๋ชจ๋“œ์˜ ๊ฐœ์„ 

๋ ˆ๊ฑฐ์‹œ ๋ชจ๋“œ์—์„œ๋„ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ์ด์ „ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ช‡ ๊ฐ€์ง€ ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4. ์ƒ˜ํ”Œ ์ฝ”๋“œ์™€ ์˜ˆ์ œ

์ด์ œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

// ์ƒˆ๋กœ์šด Context API ์‚ฌ์šฉ ์˜ˆ์ œ
const MyContext = React.createContext();

function MyComponent() {
  return (
    <MyContext.Provider value="Hello, React v17!">
      <ChildComponent />
    </MyContext.Provider>
  );
}

function ChildComponent() {
  const contextValue = React.useContext(MyContext);
  return <div>{contextValue}</div>;
}

5. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ˜์‘๊ณผ ํ–ฅํ›„ ์ „๋ง

๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋ฆฌ์•กํŠธ v17์— ๋Œ€ํ•œ ๋ฐ˜์‘๊ณผ ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์†Œ์…œ ๋ฏธ๋””์–ด๋‚˜ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์–ด๋–ค ์˜๊ฒฌ๋“ค์ด ๋‚˜์˜ค๊ณ  ์žˆ๋Š”์ง€ ์ฃผ์‹œํ•˜๋ฉด์„œ, ์•ž์œผ๋กœ์˜ ๋ฒ„์ „์—์„œ ์˜ˆ์ƒ๋˜๋Š” ํ–ฅํ›„ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ „๋ง์„ ์‚ดํŽด๋ด…์‹œ๋‹ค.

์ด์ƒ์œผ๋กœ React v17์— ๋Œ€ํ•œ ์†Œ์‹๊ณผ ์ฃผ์š” ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ํ†ตํ•ด ๋” ๋‚˜์€ React ๊ฒฝํ—˜์„ ์ฆ๊ธฐ์‹œ๊ธธ ๋ฐ”๋ผ๋ฉฐ, ์—…๋ฐ์ดํŠธ์— ๋”ฐ๋ฅธ ์–ด๋ ค์›€์ด๋‚˜ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€