React (22) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [ React 18+ ] RSC(React Server Componen) ํํค์น๊ธฐ. RSC๋ React Server Components์ ์ฝ์๋ก, React18 ๋ฒ์ ๋ถํฐ ๋ฑ์ฅํ ๊ฐ๋ ์ด๋ค.์๋ฒ์์ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํ๊ณ ํด๋ผ์ด์ธํธ์์ ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์ญํ ์ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์์ ์ํด ๋ฑ์ฅํ ๊ธฐ๋ฅ์ด๋ค. RSC๋ React์ ์์ฒด์ ์ธ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๊ผญ Next.js๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ตฌํํ ์ ์์ง๋ง, RSC๋ ์๋ฒ-ํด๋ผ์ด์ธํธ์ ์ํธ์์ฉ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ Node.js๊ธฐ๋ฐ์ ์๋ฒ ํ๊ฒฝ์ด ํ์ํ๋ค. ๊ทธ๋์ Next.js๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด Express.js ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ HTTP ์๋ฒ๋ฅผ ๋ง๋ค๊ณ , ์๋ฒ-ํด๋ผ์ด์ธํธ ์คํธ๋ฆฌ๋ฐ, Webpack ๋ฒ๋ค๋ง(์๋ฒ / ํด๋ผ์ด์ธํธ), ๋ฐ์ดํฐ ํต์ , ์ฑ๋ฅ ์ต์ ํ(์บ์ฑ) ๋ฑ์ ์ถ๊ฐ์ ์ธ ์ค.. [ Next.js ] Next15์ ๋ํด ์์๋ณด๊ธฐ. 2024๋ 10์ 21์ผ Next15 ๋ฒ์ ์ด ๊ณต์ ๋ธ๋ก๊ทธ์ ์ ๋ฐ์ดํธ๋์๋ค.๊ณต์์ ์ผ๋ก ์์ ํ๋์ด ํ๋ก๋์ ์์ ์ฌ์ฉํ ์ค๋น๊ฐ ์๋ฃ๋์๋ค๊ณ ํ๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ฆ๋ RC1๊ณผ RC2์ ์ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์์ ์ฑ์ ์ค์ ์ ๋๋ฉด์๋ ํฅ๋ฏธ๋ก์ด ์ ๋ฐ์ดํธ๋ฅผ ์ถ๊ฐํ์๋ค๊ณ ํ๋ค.10์ 24์ผ์ ์ด๋ฆฐ Next.js Conf๊ฐ ์์๋๋ฐ, ์ฌ์ ์ ์ฒญํ๊ณ ๋ชป ๋ค์ด์ ๋ นํ๋ณธ์ ๋ณด๊ณ ๋ค์์ ๊ทธ ๋ด์ฉ์ ๋ํ ํฌ์คํ ๋ ํ ์์ ์ด๋ค. Next15์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.# ์๋ก์ด ์๋ ์ ๊ทธ๋ ์ด๋ CLI ์ฌ์ฉnpx @next/codemod@canary upgrade latest# ...๋๋ ์๋์ผ๋ก ์ ๊ทธ๋ ์ด๋npm install next@latest react@rc react-dom@rc Next.js 15์ ์๋ก์ด ๊ธฐ๋ฅ.. React 18 ๋ณ๊ฒฝ์ ์ ๋ฆฌ ์ค๋์ React19 release version์ด ๋์ค๊ธฐ ์ ์ React 18์ ํฐ ๋ณ๊ฒฝ์ ์ ๋ํด ์ดํด๋ณด๋ ค๊ณ ํ๋ค.ํ์ฌ ๊ธฐ์ค React ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ 18.3.1 ์ด๋ค.(2024๋ 4์ 26์ผ) ๊ทธ๋ฆฌ๊ณ React18์ 2022๋ 3์ 29์ผ์ ์ ์ ๋ฆด๋ฆฌ์ฆ ๋์๋ค. 1. ๋์ ๋ ๋๋ง(Concurrent Rendering) ๋์ ๋ ๋๋ง(Concurrent Rendering)์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋ ์ ์ฐํ๊ณ ํจ์จ์ ์ผ๋ก ๋ ๋๋งํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก, ์ ํต์ ์ธ ๋ ๋๋ง ๋ฐฉ์์์๋ ์ปดํฌ๋ํธ ํธ๋ฆฌ๊ฐ ๋ณ๊ฒฝ๋ ๋, ๋ณ๊ฒฝ ์ฌํญ์ด ํ ๋ฒ์ ๋ ๋๋ง๋๋ฉด์ ์ค๋ ์๊ฐ์ด ์์๋๋ฉฐ UI๊ฐ ๋ฉ์ถ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ๋์ ๋ ๋๋ง(Concurrent Rendering)์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ.. [ React ] React 19 RC์ ๋ํด์ ์์๋ณด์ React19 RC(Release Candidate)๋ ํ์ฌ ๊ฐ๋ฐ ์ค์ด๋ฉฐ 2024๋ 9์ ๊ธฐ์ค์ผ๋ก ์์ง ์ ์ ์ถ์๋์ง ์์๋ค. ๊ฐ์ฅ ์ต์ ์ ๋ณด(2024๋ 4์ ๊ธฐ์ค, React Blog ์ฐธ๊ณ )๋ฅผ ๋ฐํ์ผ๋ก ์ค๋ช ํ์๋ฉด React 19๋ ์ด์ ๋ฒ์ ๋ค๊ณผ ๋น๊ตํด ๋ช ๊ฐ์ง ์ฃผ์ ๊ฐ์ ์ฌํญ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ ํฌํจํ ๊ฒ์ผ๋ก ์์๋๋ค. ์ฑ๋ฅ ๊ฐ์ : ๋ ๋๋ง๊ณผ ์ํ ์ ๋ฐ์ดํธ ์ฑ๋ฅ์ด ํฅ์๋ ์ ๋ง.์๋ฒ ์ปดํฌ๋ํธ: ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์๋ฒ ์ปดํฌ๋ํธ์ ์์ ํ ๊ตฌํ์ด ํฌํจ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.๋์์ฑ ๊ธฐ๋ฅ ๊ฐ์ : React 18์์ ๋์ ๋ ๋์์ฑ ๊ธฐ๋ฅ๋ค์ด ๋์ฑ ์์ ํ๋๊ณ ๋ฐ์ ๋ ๊ฒ์ผ๋ก ์์.์๋ก์ด ํ : ๊ฐ๋ฐ์๋ค์ ์์ ์ ๋์ฑ ํธ๋ฆฌํ๊ฒ ๋ง๋ค์ด์ค ์๋ก์ด ํ ๋ค์ด ์ถ๊ฐ๋ ์ ์๋ค.ํ์ ์คํฌ๋ฆฝํธ ์ง์ ๊ฐํ: ํ์ ์คํฌ๋ฆฝ.. [ React ] React์ export์ export default ์ฐจ์ด์ ์์๋ณด๊ธฐ SyntaxExport ๊ตฌ๋ฌธ, Import ๊ตฌ๋ฌธ ๊ฐ๋จ ์ ๋ฆฌํDefaultexport default function Button() {}import Button from './button.js';Namedexport function Button() {}import { Button } from './button.js'; ๋ณดํธ์ ์ผ๋ก ํ ํ์ผ์์ ํ๋์ ์ปดํฌ๋ํธ๋ง export ํ ๋ default export ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ export ํ ๊ฒฝ์ฐ์ named export ๋ฐฉ์์ ์ฌ์ฉํ๋ค. React์์ `export`์ `export default`์ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.1. export - ์ฌ๋ฌ ๊ฐ์ ๊ฐ(ํจ์, ๊ฐ์ฒด, ์์ ๊ฐ ๋ฑ)์ ๋ด๋ณด๋ผ ์ ์๋ค. - ๊ฐ์ ธ์ฌ ๋ ์ค๊ดํธ.. [ React ] Chart UI ๊ตฌํ์ ์ํ React ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฆฌ Chart ๊ด๋ จ Libraries ์ ๋ฆฌ ๊ธ 1.Rechartsโญ 20.3k ์ ์ธ๊ธฐ ์๋ ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. (์ค๊ตญ ํ์ฌ)storybook์ ํตํ UI ๋ช ์ธ๊ฐ ์๊ณ , ๊ต์ฅํ ๋ค์ํ ์ฐจํธ ์ปดํฌ๋ํธ ์ง์.https://recharts.org/en-US 2.nivoโญ 11.4khttps://nivo.rocks/components/ 3.apexchartsโญ 12.5k์์๊ณ ์๊ธฐ์๊ธฐํ ๋์์ธ, React ์ปดํฌ๋ํธ ์์(class ์ปดํฌ๋ํธ ๊ธฐ๋ฐ), ์ปค์คํฐ๋ง์ด์ง ์์ ๋ ๋์.https://apexcharts.com/ 4.react-chartjs-2โญ 5.9kChart.js ์ฉ React Component ๋ผ์ด๋ธ๋ฌ๋ฆฌ. Chart.js V3,V4๋ฅผ ์ํฌํธํจ. (๊ฐ์ฅ ์ธ๊ธฐ ๋ง.. React์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Zustand์ ๋ํ ๊ฐ๋ต ์ ๋ฆฌ๊ธ. ๋ ์ผ์ด๋ก "์ํ"๋ฅผ ์๋ฏธํ๋ Zustand๋ React ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋จ์ํ๋ Flux ํจํด์ ์ฌ์ฉํ๋ ์๊ณ ๋น ๋ฅธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.hook์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐํธํ API๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ต์ํ์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์ํ ๊ด๋ฆฌ๋ฅผ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค. ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํน์ง 1. ์ฌํํ API: Zustand์ API๋ ๋งค์ฐ ๊ฐ๋จํ๋ค. ๋ณดํต 1~2๊ฐ์ hook๋ง ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ์ ์ํ๊ณ , ์ด๋ฅผ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๋ค. ์ฃผ๋ก `create` ํจ์์ `useStore` ํ ์ ์ฌ์ฉํ๋ค.2. ์ด๊ฒฝ๋: Zustand๋ ๊ฒฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ํฌ๊ธฐ๊ฐ ์๊ณ ๋น ๋ฅด๋ค. React Context API ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋น.. [ Sentry ] F.E์์ Sentry๋ฅผ ํ์ฉํ์ฌ ๋๋ฒ๊น ํ๊ธฐ. ํ๋ก ํธ์๋์์ ๊ฐ๋ฐ ๋ฐ ์ด์์ ํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ค. ํ์ฌ ์ฐ๋ฆฌ ํ์ฌ๋ ํ๋ก ํธ์๋์ ๋๋ฒ๊น ํด๋ก ์ผํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ ๊ฐ๋จํ ์๊ฐํ๋ ค๊ณ ํ๋ค. ์ผํธ๋ฆฌ๋ ์น, ๋ชจ๋ฐ์ผ ์ฑ, ๊ฒ์๋ฑ์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ถ์ ํ๊ณ ๋ถ์ํ์ฌ ์์ธก ๊ฐ๋ฅํ ์ค๋ฅ์ ์์ธก ๋ถ๊ฐ๋ฅํ ์ค๋ฅ๋ค์ ๋ํด ํ์ง๋ฅผ ์ํ ํด์ด๋ค. ์ฒ์์๋ ์คํ ์์ค ํ๋ก์ ํธ๋ก ์์ํ์์ผ๋ ํ์ฌ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค์ ์จํ๋ ๋ฏธ์ค ์ค์น ๋ฒ์ ์ ๋ชจ๋ ์ ๊ณตํ๋ค. ์ผํธ๋ฆฌ๋ฅผ ์ ํ์ฉํ์ฌ ๊ณ ๊ฐ๋ค์๊ฒ ๋ ๋์ ํ์ง์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค. ์ผํธ๋ฆฌ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค 1. ์๋ฌ ๋ชจ๋ํฐ๋ง์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์๋ฌ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ๊ธฐ๋กํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ๋ฐ๋ก ์ ์ ์๋๋ก ๋์์ค๋ค.. ์ด์ 1 2 3 ๋ค์