React์ ์คํ์ ์ธ experimental_useRefresh API๋ฅผ ํตํด ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ, HMR ๋ฐ ๊ฐ๋ฐ์ ๊ฒฝํ์ ํฅ์์ํค์ธ์. ์ฅ์ , ๊ตฌํ ์ธ๋ถ ์ ๋ณด ๋ฐ ์ ํ ์ฌํญ์ ์์๋ณด์ธ์.
React experimental_useRefresh: ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ์ ๋ํ ์ฌ์ธต ๋ถ์
React ๊ฐ๋ฐ์๋ ํญ์ ๊ฐ๋ฐ ๊ฒฝํ์ ๊ฐ์ ํ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ผ๋ฉฐ, experimental_useRefresh๋ ํนํ Hot Module Replacement(HMR)๋ฅผ ์ง์ํ๋ ํ๊ฒฝ์์ ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์ฃผ๋ชฉํ ๋งํ ์ถ๊ฐ ๊ธฐ๋ฅ์
๋๋ค.
experimental_useRefresh๋ ๋ฌด์์ธ๊ฐ์?
experimental_useRefresh๋ ๊ฐ๋ฐ ์ค, ํนํ webpack์ Hot Module Replacement(HMR) ๋๋ ์ด์ ์ ์ฌํ ๊ธฐ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ปดํฌ๋ํธ ์
๋ฐ์ดํธ๋ฅผ ์ฉ์ดํ๊ฒ ํ๋๋ก ์ค๊ณ๋ React Hook์
๋๋ค. ์ฃผ์ ๋ชฉํ๋ ์์ค ์ฝ๋ ๋ณ๊ฒฝ ์ ์ปดํฌ๋ํธ ์ํ ์์ค์ ์ต์ํํ์ฌ ๋ณด๋ค ์ํํ๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ์ํฌํ๋ก๋ฅผ ๋ง๋๋ ๊ฒ์
๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ ๋ ์ปดํฌ๋ํธ๋ฅผ ์๋ก ๊ณ ์น๋ ๋ ์ค๋งํธํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ์์ค. ์ ์ฒด ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๋ ๋์ , experimental_useRefresh๋ ๋ณ๊ฒฝ๋ ์ปดํฌ๋ํธ๋ง ์
๋ฐ์ดํธํ์ฌ ์ํ๋ฅผ ์ ์งํ๊ณ ๊ฐ๋ฐ ํ๋ฆ์ ๋ฐฉํดํ๋ ๊ฒ์ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ "Fast Refresh" ๋๋ "Hot Reloading"์ด๋ผ๊ณ ํฉ๋๋ค.
experimental_useRefresh ์ฌ์ฉ์ ์ฅ์
- ํฅ์๋ ๊ฐ๋ฐ ์๋: ์ ์ฒด ํ์ด์ง ์๋ก ๊ณ ์นจ์ ์ต์ํํ์ฌ,
experimental_useRefresh๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฑฐ์ ์ฆ์ ํ์ธํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ ๋ฐ ๋๋ฒ๊น ํ๋ก์ธ์ค์ ์๋๋ฅผ ๋์ ๋๋ค. - ์ปดํฌ๋ํธ ์ํ ์ ์ง: ์ฃผ์ ์ด์ ์ ์ ๋ฐ์ดํธ ์ค ์ปดํฌ๋ํธ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ฝ๋ ๋ณ๊ฒฝ์ ํ ๋ ์์์ ์ ๋ ฅํ ๋ฐ์ดํฐ, ๋ชฉ๋ก์ ์คํฌ๋กค ์์น ๋๋ ์ ๋๋ฉ์ด์ ์ ํ์ฌ ์ํ๋ฅผ ์์ง ์์ต๋๋ค.
- ์ปจํ ์คํธ ์ ํ ๊ฐ์: ์๋ก ๊ณ ์นจ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ฐ ์์๋๋ ์๊ฐ์ด ์ค์ด๋ค๋ฉด ์ฝ๋ ์์ฑ์ ๋ ์ง์คํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ปจํ ์คํธ ์ ํ์ด ์ค์ด๋ค๊ณ ์ ๋ฐ์ ์ธ ์์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
- ํฅ์๋ ๋๋ฒ๊น ๊ฒฝํ: ์ํ ์ ์ง๋ฅผ ํตํด ๋๋ฒ๊น ์ด ๋ ์ฌ์์ง๋๋ค. ์ฝ๋๋ฅผ ์์ ํ๊ณ ๋งค๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ฅผ ๋ค์ ๋ง๋ค ํ์ ์์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ํฅ์ ํ์ธํ ์ ์์ต๋๋ค.
experimental_useRefresh ์๋ ๋ฐฉ์
๋ด๋ถ์ ์ผ๋ก experimental_useRefresh๋ HMR ์์คํ
๊ณผ ์ํธ ์์ฉํ์ฌ ์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์ง๋๋ฉด ์ํ๋ฅผ ์ ์งํ๋ฉด์ ์ปดํฌ๋ํธ๋ฅผ ์ ์๋ฆฌ์์ ์
๋ฐ์ดํธํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ ์ฒด ์๋ก ๊ณ ์นจ์ด ํ์ํ ๊ฒฝ์ฐ(์: ์ปดํฌ๋ํธ ๊ตฌ์กฐ์ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด) ์ด๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ํ
์์ฒด๋ ์ค์ ์๋ก ๊ณ ์นจ์ ์ํํ์ง ์์ต๋๋ค. ๋จ์ํ HMR ์์คํ
์ ์๋ก ๊ณ ์นจ์ด ํ์ํ ์ ์์์ ์๋ฆฝ๋๋ค.
์ ํํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ๋ฒ๋ค๋ฌ ๋ฐ HMR ๊ตฌํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก HMR ์์คํ ์ ๋ค์์ ์ํํฉ๋๋ค.
- ํ์ผ ๋ณ๊ฒฝ ์ฌํญ ๊ฐ์ง.
- ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ์ปดํฌ๋ํธ ๊ฒฐ์ .
- ๋ชจ๋ ๊ทธ๋ํ์์ ๊ด๋ จ ๋ชจ๋ ๋ฌดํจํ.
- ๋ณ๊ฒฝ๋ ๋ชจ๋ ๋ค์ ์คํ.
- React์ ์ํฅ์ ๋ฐ๋ ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฐ์ดํธํ๋๋ก ์๋ฆผ.
experimental_useRefresh๋ ์ด ํ๋ก์ธ์ค์ ์ธ์ ๊ณ์ธต์ ์ถ๊ฐํ์ฌ React๊ฐ ์ปดํฌ๋ํธ ์
๋ฐ์ดํธ๋ฅผ ์ง๋ฅ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ํ ์์ค์ ์ต์ํํ ์ ์๋๋ก ํฉ๋๋ค.
experimental_useRefresh ๊ตฌํ
experimental_useRefresh๋ ๊ฐ๋
์ ์ผ๋ก ๊ฐ๋จํ์ง๋ง, ๊ตฌํํ๋ ค๋ฉด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ์คํ๊ฒ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ค์์ ๊ด๋ จ๋ ๋จ๊ณ์ ๋ํ ์ผ๋ฐ์ ์ธ ๊ฐ์์
๋๋ค.
1. ํ์ํ ํจํค์ง ์ค์น
๋จผ์ Fast Refresh์ ๋ํ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ react-refresh ํจํค์ง๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
npm install react-refresh
๋๋
yarn add react-refresh
2. ๋ฒ๋ค๋ฌ ๊ตฌ์ฑ
๋ค์ ๋จ๊ณ๋ react-refresh ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋๋ก ๋ฒ๋ค๋ฌ(์: webpack, Parcel, Rollup)๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์
๋๋ค. ์ ํํ ๊ตฌ์ฑ์ ๋ฒ๋ค๋ฌ ๋ฐ ํ๋ก์ ํธ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ๋ค์์ webpack์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์
๋๋ค.
webpack.config.js
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
module.exports = {
// ... other webpack configurations
plugins: [
new ReactRefreshWebpackPlugin(),
],
};
์ด ๊ตฌ์ฑ์ webpack์ Fast Refresh๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ๊ณ์ธกํ ReactRefreshWebpackPlugin์ ์ฌ์ฉํ๋๋ก ์ง์ํฉ๋๋ค.
3. Babel ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ(ํ์ํ ๊ฒฝ์ฐ)
Babel์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ณํํ๋ ๊ฒฝ์ฐ, Babel ๊ตฌ์ฑ์ react-refresh/babel ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํด์ผ ํ ์ ์์ต๋๋ค.
.babelrc ๋๋ babel.config.js
{
"plugins": [
// ... other Babel plugins
"react-refresh/babel"
]
}
์ด ํ๋ฌ๊ทธ์ธ์ ์ปดํฌ๋ํธ๋ฅผ ์ ๋๋ก ์๋ก ๊ณ ์น ์ ์๋๋ก ํ์ํ ์ฝ๋๋ฅผ ์ปดํฌ๋ํธ์ ์ถ๊ฐํฉ๋๋ค.
4. ์ปดํฌ๋ํธ์์ experimental_useRefresh ์ฌ์ฉ
ํ๊ฒฝ์ด ๊ตฌ์ฑ๋๋ฉด, ์ปดํฌ๋ํธ์์ experimental_useRefresh๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
import { experimental_useRefresh } from 'react';
function MyComponent() {
experimental_useRefresh();
return (
<div>
<p>Hello, world!</p>
</div>
);
}
export default MyComponent;
์ปดํฌ๋ํธ ํจ์์ ๋งจ ์์ experimental_useRefresh()๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด ํ
์ HMR ์์คํ
์ ์ปดํฌ๋ํธ๋ฅผ ๋ฑ๋กํ๊ณ ํด๋น ์ปดํฌ๋ํธ์ Fast Refresh๋ฅผ ํ์ฑํํฉ๋๋ค.
์ค์ ์์
experimental_useRefresh์ ์ฅ์ ์ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ์นด์ดํฐ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
import React, { useState } from 'react';
import { experimental_useRefresh } from 'react';
function Counter() {
experimental_useRefresh();
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
}
export default Counter;
experimental_useRefresh๊ฐ ์์ผ๋ฉด ์ด ์ปดํฌ๋ํธ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ผ์ ์ ์ฅํ ๋๋ง๋ค ์นด์ดํฐ๊ฐ 0์ผ๋ก ์ฌ์ค์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. experimental_useRefresh๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ ์ฝ๋๋ฅผ ์์ ํ ๋์๋ ์นด์ดํฐ๊ฐ ๊ฐ์ ์ ์งํ์ฌ ํจ์ฌ ๋ ์ํํ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
์ ํ ์ฌํญ ๋ฐ ๊ณ ๋ ค ์ฌํญ
experimental_useRefresh๊ฐ ์๋นํ ์ด์ ์ ์ ๊ณตํ์ง๋ง, ์ ํ ์ฌํญ๊ณผ ์ ์ฌ์ ๋จ์ ์ ์๊ณ ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ์คํ์ ์ํ: ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด
experimental_useRefresh๋ ์์ง ์คํ์ ์ธ API์ ๋๋ค. ์ฆ, ํฅํ React ๋ฒ์ ์์ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ์ ์์ต๋๋ค. - ๊ฐ๋ฐ ์ ์ฉ:
experimental_useRefresh๋ ๊ฐ๋ฐ ํ๊ฒฝ์์๋ง ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ํ๋ก๋์ ๋น๋์ ํฌํจํด์๋ ์ ๋ฉ๋๋ค. ๋ฒ๋ค๋ฌ ๊ตฌ์ฑ์ React Refresh ํ๋ฌ๊ทธ์ธ์ด ๊ฐ๋ฐ ๋ชจ๋์์๋ง ํ์ฑํ๋๋๋ก ํด์ผ ํฉ๋๋ค. - ์ ์ ํ ์ค์ ํ์:
experimental_useRefresh๋ ์ ๋๋ก ๊ตฌ์ฑ๋ HMR ํ๊ฒฝ์ ์์กดํฉ๋๋ค. ๋ฒ๋ค๋ฌ ๋๋ HMR ์์คํ ์ด ์ ๋๋ก ์ค์ ๋์ง ์์ผ๋ฉดexperimental_useRefresh๊ฐ ์์๋๋ก ์๋ํ์ง ์์ ์ ์์ต๋๋ค. - HMR ๋์ฒด ๋ถ๊ฐ:
experimental_useRefresh๋ HMR์ ํฅ์์ํค์ง๋ง ์ด๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค.experimental_useRefresh๊ฐ ์๋ํ๋ ค๋ฉด ์ฌ์ ํ ์๋ํ๋ HMR ์์คํ ์ด ํ์ํฉ๋๋ค. - ์ ์ฌ์ ์ธ ๋ถ์ผ์น: ๊ฒฝ์ฐ์ ๋ฐ๋ผ
experimental_useRefresh๋ ์ปดํฌ๋ํธ์ ์ํ๊ฐ ์ธ๋ถ ์์ธ์ ์์กดํ๊ฑฐ๋ ์ฝ๋์ ๋ถ์์ฉ์ด ์๋ ๊ฒฝ์ฐ ๋ถ์ผ์น๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
experimental_useRefresh ์ฌ์ฉ ๋ชจ๋ฒ ์ฌ๋ก
experimental_useRefresh๋ฅผ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ์ปดํฌ๋ํธ๋ฅผ ์๊ณ ์ง์ค์ ์ผ๋ก ์ ์ง: ์๊ณ ๋ ์ง์ค๋ ์ปดํฌ๋ํธ๋ ์๋ก ๊ณ ์นจ์ด ๋ ์ฝ๊ณ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ์ ์ต๋๋ค.
- ์ปดํฌ๋ํธ ๋ณธ๋ฌธ์์ ๋ถ์์ฉ ๋ฐฉ์ง: ์ปดํฌ๋ํธ ๋ณธ๋ฌธ์ ๋ถ์์ฉ์ Fast Refresh ์ค์ ์๊ธฐ์น ์์ ๋์์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ถ์์ฉ์
useEffectํ ์ผ๋ก ์ด๋ํฉ๋๋ค. - ํ
์ ์ฌ์ฉํ ํจ์ํ ์ปดํฌ๋ํธ ์ฌ์ฉ:
experimental_useRefresh๋ ํ ์ ์ฌ์ฉํ๋ ํจ์ํ ์ปดํฌ๋ํธ์์ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค. - ์ฒ ์ ํ๊ฒ ํ ์คํธ: Fast Refresh๊ฐ ์ ๋๋ก ์๋ํ๊ณ ์ปดํฌ๋ํธ๊ฐ ์์๋๋ก ๋์ํ๋์ง ํ์ธํ๊ธฐ ์ํด ํญ์ ์ฝ๋๋ฅผ ์ฒ ์ ํ๊ฒ ํ ์คํธํ์ญ์์ค.
- ์ต์ ์ํ ์ ์ง: ์ต์ ๊ธฐ๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ ์ ํ์ฉํ๋ ค๋ฉด React ๋ฐ React Refresh ํจํค์ง๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ญ์์ค.
experimental_useRefresh์ ๋์
experimental_useRefresh๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ด์ง๋ง, ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ์ ๋ํ ๋์์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค. ๋ช ๊ฐ์ง ์ธ๊ธฐ ์๋ ๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- React Hot Loader: React Hot Loader๋
experimental_useRefresh์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ ํ๋ฆฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ค๋ซ๋์ ์ฌ์ฉ๋์์ผ๋ฉฐ ๋ ํฐ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋กexperimental_useRefresh๋ณด๋ค ๋ ํจ์จ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. - HMR ๊ธฐ๋ฐ ์๋ฃจ์
: ๋๋ถ๋ถ์ ๋ฒ๋ค๋ฌ(์: webpack, Parcel, Rollup)๋ ๊ธฐ๋ณธ ์ ๊ณต HMR ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ
experimental_useRefresh์ ๊ฐ์ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ์ง ์๊ณ ์ปดํฌ๋ํธ ์๋ก ๊ณ ์นจ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
React์์ ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์์ ๋ฏธ๋
experimental_useRefresh์ ๋์
์ React์์ ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ์ ๋ฏธ๋์ ๋ํ ๋ช
ํํ ๋ฐฉํฅ์ ๋ํ๋
๋๋ค. ์ด ๊ธฐ๋ฅ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ ์์ ๋๊ณ ํต์ฌ React ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํตํฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. React๊ฐ ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ๊ฐ๋ฐ ๊ฒฝํ์ด ๋์ฑ ๊ฐ์ ๋์ด ๋ณต์กํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ณด๋ค ์ฝ๊ณ ํจ์จ์ ์ผ๋ก ๊ตฌ์ถํ ์ ์์ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
๊ฐ๋ฐํ์ ์ํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
์๋ก ๋ค๋ฅธ ์๊ฐ๋์ ์ง๋ฆฌ์ ์์น์ ํฉ์ด์ ธ ์๋ ๊ธ๋ก๋ฒ ๊ฐ๋ฐํ์ ๊ฒฝ์ฐ, ๋น ๋ฅด๊ณ ์์ ์ ์ธ ๊ฐ๋ฐ ์ํฌํ๋ก๊ฐ ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. experimental_useRefresh๋ ์ค๋จ์ ์ต์ํํ๊ณ ๊ฐ๋ฐ์๊ฐ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ํ์
ํ ์ ์๋๋ก ํจ์ผ๋ก์จ ์ด์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค. ๋์ฟ์ ํ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ฌ ๋ฐ๋๊ณผ ๋ด์์ ๊ฐ๋ฐ์ ํ๊ฒฝ์ ์ฆ์ ๋ฐ์๋๋ ๊ฒ์ ์์ํด ๋ณด์ญ์์ค. ์ด๋ฌํ ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ๋ ๋ชจ๋ฉํ
์ ์ ์งํ๊ณ ํ ์ ์ฒด์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ํ ์ ์ธ๊ณ ๊ฐ๋ฐ์์ ๋ค์ํ ์ธํฐ๋ท ์๋์ ํ๋์จ์ด ๊ธฐ๋ฅ์ ๊ณ ๋ คํ์ญ์์ค. experimental_useRefresh์์ ์ ๊ณตํ๋ ์ต์ ํ๋ ์ ํ๋ ๋ฆฌ์์ค๋ก ์์
ํ๋ ์ฌ๋๋ค์ ๊ฐ๋ฐ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
experimental_useRefresh๋ React์์ ๊ฐ๋ฐ ๊ฒฝํ์ ํฅ์์ํค๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์
๋๋ค. ์ ์ฒด ํ์ด์ง ์๋ก ๊ณ ์นจ์ ์ต์ํํ๊ณ ์ปดํฌ๋ํธ ์ํ๋ฅผ ์ ์งํจ์ผ๋ก์จ ๊ฐ๋ฐ ๋ฐ ๋๋ฒ๊น
ํ๋ก์ธ์ค ์๋๋ฅผ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ์์ง ์คํ์ ์ธ API์ด์ง๋ง, React์์ ์ปดํฌ๋ํธ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ์ ๋ฏธ๋๋ฅผ ์ํ ์ ๋งํ ๋ฐฉํฅ์ ๋ํ๋
๋๋ค. ์ฅ์ , ์ ํ ์ฌํญ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํดํ๋ฉด experimental_useRefresh๋ฅผ ํ์ฉํ์ฌ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ์ฆ๊ฑฐ์ด ๊ฐ๋ฐ ์ํฌํ๋ก๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ชจ๋ ์คํ์ API์ ๋ง์ฐฌ๊ฐ์ง๋ก, ์งํ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ์ป๊ณ ์ด์ ๋ฐ๋ผ ์ฌ์ฉ์ ์กฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ฌ๋ experimental_useRefresh์ ์ ์ฌ์ ์ธ ์ด์ ์ ๋ถ์ธํ ์ ์์ผ๋ฏ๋ก React ๊ฐ๋ฐ ํดํท์ ์ถ๊ฐํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
ํ์ ์ํด experimental_useRefresh๋ฅผ ํ๊ฐํ ๋ ๋ค์ ์ง๋ฌธ์ ๊ณ ๋ คํ์ญ์์ค.
- ์ฐ๋ฆฌ ํ์ ์ํฌํ๋ก๋ฅผ ๋ฐฉํดํ๋ ๋๋ฆฐ ์๋ก ๊ณ ์นจ ์๊ฐ์ ์์ฃผ ๊ฒฝํํฉ๋๊น?
- ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ์ค์ ์ํ ์ฌ์ค์ ์ผ๋ก ์ธํด ๊ท์คํ ์๊ฐ์ ์๊ณ ์์ต๋๊น?
- ๋ฒ๋ค๋ฌ ๊ตฌ์ฑ์ด React Refresh์ ํธํ๋ฉ๋๊น?
์ด๋ฌํ ์ง๋ฌธ์ ๋ตํ๋ฉด experimental_useRefresh๋ฅผ ์ฑํํ๋ ๋ฐ ํฌ์ํ๋ ๊ฒ์ด ํ ๋ฐ ํ๋ก์ ํธ์ ์ ํฉํ์ง ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.