React์ experimental_Offscreen API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง, UI ์ฑ๋ฅ ์ต์ ํ, ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ์ ํ์ํด ๋ณด์ธ์. ์ค์ ์ฌ์ฉ ์ฌ๋ก์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐฐ์๋ณด์ธ์.
React experimental_Offscreen์ผ๋ก ์ฑ๋ฅ ํฅ์: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง ์ฌ์ธต ๋ถ์
์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ตฌ์ถ์ ์ํ ์ ๋์ ์ธ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ React๋ ์ฑ๋ฅ ๋ฌธ์ ํด๊ฒฐ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์์ ์ํด ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค. ํฅ๋ฏธ๋ก์ด ์คํ์ ๊ธฐ๋ฅ ์ค ํ๋๋ experimental_Offscreen
API์
๋๋ค. ์ด API๋ฅผ ํตํด ๊ฐ๋ฐ์๋ UI์ ์ผ๋ถ๋ฅผ ํ์ํ ๋๊น์ง ๋ ๋๋ง์ ์ง์ฐ์์ผ ํจ๊ณผ์ ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๊ฐ ์๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด๊ธฐ ๋ก๋ ์๊ฐ๊ณผ ์ ๋ฐ์ ์ธ ์๋ต์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
React experimental_Offscreen์ด๋ ๋ฌด์์ธ๊ฐ์?
experimental_Offscreen
API๋ React์๊ฒ UI์ ํ์ ํธ๋ฆฌ๋ฅผ ํ์ํ ์ค๋น๋ฅผ ํ๋๋ก ์ง์ํ์ง๋ง ์ด๊ธฐ์๋ ์จ๊ฒจ์ง ์ํ๋ก ์ ์งํ๋ ๊ตฌ์ฑ ์์์
๋๋ค. ํต์ฌ ์ด์ ์ React๊ฐ ์ ํด ๋ธ๋ผ์ฐ์ ๋ฆฌ์์ค๋ฅผ ํ์ฉํ์ฌ ์ด ํ์ ํธ๋ฆฌ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ํ์ ํธ๋ฆฌ๊ฐ ํ์๋๋ฉด (์: ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์น์
์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ) ๋ฏธ๋ฆฌ ๋ ๋๋ง๋ ์ฝํ
์ธ ๋ฅผ ์ฆ์ ํ์ํ์ฌ ๋ ๋๋ง ์ง์ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ง์ฐ ๋ก๋ฉ๊ณผ ์ ์ฌํ์ง๋ง, ์ฝํ
์ธ ๊ฐ ์ด๋ฏธ ๋ ๋๋ง๋์ด ์ฆ์ ํ์ํ ์ค๋น๊ฐ ๋์ด ์๋ค๋ ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
์๋์ด ๋์ฐฉํ๊ธฐ ์ ์ ์ฃผ๋ฐฉ์์ ๋ง์๋ ์์์ ์ค๋นํ๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํด๋ณด์ธ์. ์ฌ๋ฃ๊ฐ ์ค๋น๋๊ณ , ์์์ด ์กฐ๋ฆฌ๋๋ฉฐ, ์๋์ด ์์๋ง์ ๋ชจ๋ ๊ฒ์ด ์ ๊ณต๋ ์ค๋น๊ฐ ๋ฉ๋๋ค. experimental_Offscreen
์ React ๊ตฌ์ฑ ์์์ ๋ํด์๋ ๋์ผํ ์์
์ ์ํํฉ๋๋ค.
experimental_Offscreen ์ฌ์ฉ์ ์ฃผ์ ์ด์
- ์ด๊ธฐ ๋ก๋ ์๊ฐ ๊ฐ์ : ์ค์ํ์ง ์์ UI ์์์ ๋ ๋๋ง์ ์ง์ฐํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋๋ฆฐ ๋คํธ์ํฌ๋ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ด์ด์ง๋๋ค.
- ํฅ์๋ ์๋ต์ฑ: ์ฌ์ฉ์๊ฐ ์ด์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋ง๋ UI์ ์ผ๋ถ์ ์ํธ ์์ฉํ ๋, ์ฝํ ์ธ ๋ ๋ ๋๋ง ์ง์ฐ ์์ด ์ฆ์ ํ์๋ฉ๋๋ค. ์ด๋ ๋ ๋ถ๋๋ฝ๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- CPU ์ฌ์ฉ๋ ๊ฐ์: ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํจ์ผ๋ก์จ ๋ฉ์ธ ์ค๋ ๋๋ ์ฌ์ฉ์ ์ํธ ์์ฉ ๋ฐ ๊ธฐํ ์ค์ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ ๋ฉ๋๋ค. ์ด๋ CPU ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ: ๊ถ๊ทน์ ์ผ๋ก
experimental_Offscreen
์ ์ฌ์ฉํ๋ฉด ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ป์ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋น ๋ฅด๊ณ , ๋ฐ์์ฑ์ด ๋ฐ์ด๋๋ฉฐ, ์ฌ์ฉํ๊ธฐ ์ฆ๊ฒ๋ค๊ณ ์ธ์ํฉ๋๋ค.
experimental_Offscreen ์ฌ์ฉ ์ฌ๋ก
experimental_Offscreen
์ ํนํ ๋ค์๊ณผ ๊ฐ์ ์๋๋ฆฌ์ค์์ ์ ์ฉํฉ๋๋ค:
- ์ด๊ธฐ์ ์จ๊ฒจ์ง ์ฝํ
์ธ : ํญ ์ธํฐํ์ด์ค, ๋ชจ๋ฌ ์ฐฝ ๋๋ ์ฒ์์ ์จ๊ฒจ์ง ํ์ ๋ฉ๋ด๋ฅผ ์๊ฐํด๋ณด์ธ์. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋
experimental_Offscreen
์ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ ๋ ์ฆ์ ํ์๋ ์ค๋น๊ฐ ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. - Fold ์๋ ์ฝํ ์ธ : Fold ์๋์ ์๋ ์ฝํ ์ธ (์ฆ, ๋ทฐํฌํธ์์ ์ฆ์ ๋ณด์ด์ง ์๋ ์ฝํ ์ธ )๋ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์คํฌ๋กคํ ๋๊น์ง ์ง์ฐ๋ ์ ์์ต๋๋ค. ์ด๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๊ณ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ํ์ํ ๋ฆฌ์์ค ์์ ์ค์ ๋๋ค.
- ๋ณต์กํ ๊ตฌ์ฑ ์์: ๋ ๋๋งํ๋ ๋ฐ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ํฌ๊ณ ๋ณต์กํ ๊ตฌ์ฑ ์์๋
experimental_Offscreen
์ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์์:
- ์ ์ ์๊ฑฐ๋ ์ ํ ํ์ด์ง: ์ ํ ์ธ๋ถ ์ ๋ณด, ๋ฆฌ๋ทฐ ๋ฐ ๋ฐฐ์ก ์ ๋ณด๋ฅผ ์ํ ์ฌ๋ฌ ํญ์ด ์๋ ์ ์ ์๊ฑฐ๋ ์ ํ ํ์ด์ง๋ฅผ ์์ํด๋ณด์ธ์.
experimental_Offscreen
์ ์ฌ์ฉํ๋ฉด ๋นํ์ฑ ํญ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ํญ์ ํด๋ฆญํ๋ฉด ์ฝํ ์ธ ๊ฐ ์ฆ์ ๋ํ๋ ์ํํ ํ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋์ ๊ด๊ณ์์ด ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. - ์์
๋ฏธ๋์ด ํผ๋: ์์
๋ฏธ๋์ด ์ ํ๋ฆฌ์ผ์ด์
์์
experimental_Offscreen
์ ์ฌ์ฉํ์ฌ ํผ๋์์ ๋ค์ ๊ฒ์๋ฌผ์ ๋ฏธ๋ฆฌ ๋ ๋๋งํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์คํฌ๋กคํจ์ ๋ฐ๋ผ ๋ฏธ๋ฆฌ ๋ ๋๋ง๋ ๊ฒ์๋ฌผ์ด ์ฆ์ ๋ํ๋ ๋ ๋ถ๋๋ฝ๊ณ ๋งค๋ ฅ์ ์ธ ๊ฒฝํ์ ๋ง๋ญ๋๋ค. ์ด๋ ํนํ ์์ ์ฑ์ด ๋จ์ด์ง๋ ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ๊ฐ ์๋ ์ง์ญ์์ ์ ์ฉํฉ๋๋ค. - ๋์๋ณด๋ ์ ํ๋ฆฌ์ผ์ด์ : ๋์๋ณด๋๋ ์ข ์ข ์๋ง์ ์ฐจํธ, ๊ทธ๋ํ ๋ฐ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ํฌํจํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ๋ฉด ์ด๊ธฐ ๋ก๋ ์๊ฐ๊ณผ ๋์๋ณด๋์ ์๋ต์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ผ๋ฉฐ, ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ค๋ฃฐ ๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๊ธ๋ก๋ฒ ํ๋งค ๋์๋ณด๋๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์. Offscreen์ ์ฌ์ฉํ๋ฉด ๋์๋ณด๋๊ฐ ๋น ๋ฅด๊ฒ ๋ก๋๋์ด ์ฃผ์ ๋ฉํธ๋ฆญ์ ์ฆ์ ํ์ํฉ๋๋ค.
- ๊ตญ์ ํ(i18n) ์ง์: ๊ตฌ์ฑ ์์์ ๋ค๋ฅธ ์ธ์ด ๋ฒ์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ๋ค์ ์ ์ํ๊ฒ ์ ํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ ๋ ๋น ๋ฅธ ์๋ต์ ๋ณด์ฅํ์ฌ ์ง์ฐ์ ๋ฐฉ์งํ๋ฉฐ, ์ด๋ ์ ์ธ๊ณ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ์๋น์ค๋ฅผ ์ ๊ณตํ ๋ ์ค์ํฉ๋๋ค.
experimental_Offscreen ์ฌ์ฉ ๋ฐฉ๋ฒ
experimental_Offscreen
์ ์ฌ์ฉํ๋ ค๋ฉด ์คํ ๋น๋๋ฅผ ํฌํจํ๋ React ๋ฒ์ ์ ์ค์นํด์ผ ํฉ๋๋ค. ์คํ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ฐ๋ ์ํ์ด ๋ฐ๋ฅธ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. API๋ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฉฐ ๊ธฐ๋ฅ์ด ๋ถ์์ ํ ์ ์์ต๋๋ค. ํด๋น ์ฃผ์ ์ฌํญ์ ํธ์ํ๊ฒ ๋ฐ์๋ค์ด์ญ์์ค.
1. ์ค์น:
React ์คํ ๋ฒ์ ์ ์ค์นํ์ญ์์ค. ์ด๋ ํจํค์ง ๊ด๋ฆฌ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
2. ๊ตฌ์ฑ ์์ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ฌ์ฉ:
react
์์ experimental_Offscreen
๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ ธ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ๋ ค๋ ํ์ ํธ๋ฆฌ๋ฅผ ๊ฐ์ธ์ญ์์ค.
import { experimental_Offscreen } from 'react';
function MyComponent() {
const [isVisible, setIsVisible] = React.useState(false);
return (
{isVisible && }
);
}
function ExpensiveComponent() {
// ์ด ๊ตฌ์ฑ ์์๋ ๋ ๋๋งํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค
return ์ด๊ฒ์ ๋น์ผ ๊ตฌ์ฑ ์์์
๋๋ค!
;
}
์ค๋ช :
mode
์์ฑ:mode
์์ฑ์experimental_Offscreen
๋ด๋ถ์ ์ฝํ ์ธ ๊ฐ ๋ณด์ด๋์ง ๋๋ ์จ๊ฒจ์ ธ ์๋์ง๋ฅผ ์ ์ดํฉ๋๋ค. ๋ชจ๋๊ฐ"visible"
๋ก ์ค์ ๋๋ฉด ์ฝํ ์ธ ๊ฐ ํ์๋ฉ๋๋ค. ๋ชจ๋๊ฐ"hidden"
์ผ๋ก ์ค์ ๋๋ฉด ์ฝํ ์ธ ๊ฐ ์จ๊ฒจ์ง๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋ง๋ฉ๋๋ค.- ์กฐ๊ฑด๋ถ ๋ ๋๋ง: ์์ ์๋
isVisible
์ํ์ ๋ฐ๋ผExpensiveComponent
์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ๋ณด์ฌ์ค๋๋ค. ์ด๋ฅผ ํตํด ๋ฒํผ์ด ํด๋ฆญ๋๊ณisVisible
์ด true๋ก ์ค์ ๋ ๋๋ง React๊ฐ ๋น์ผ ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ณ ๊ธ ์ฌ์ฉ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๋ชจ๋ ์์ฑ ์ต์
experimental_Offscreen
๊ตฌ์ฑ ์์์ mode
์์ฑ์ ๋ค์ ๊ฐ์ ํ์ฉํฉ๋๋ค:
"visible"
: ์ฝํ ์ธ ๊ฐ ๋ณด์ด๊ณ ์์ ํ ๋ ๋๋ง๋ฉ๋๋ค."hidden"
: ์ฝํ ์ธ ๊ฐ ์จ๊ฒจ์ง๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋ง๋ฉ๋๋ค."auto"
: React๋ ํด๋ฆฌ์คํฑ์ ๋ฐ๋ผ ์ฝํ ์ธ ๋ฅผ ํฌ๊ทธ๋ผ์ด๋ ๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ์ง ์๋์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค.
"auto"
๋ฅผ ์ฌ์ฉํ๋ฉด React๊ฐ ๋ ๋๋ง ํ๋ก์ธ์ค๋ฅผ ๋์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ฌ์ฉ์์ ์ฅ์น ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ์ ํํ ์ต์ ํ๋ฅผ ์ํด ์ด ๋์์ ์๋์ผ๋ก ์ ์ดํด์ผ ํ ์๋ ์์ต๋๋ค.
์ฐ์ ์์
์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ๋ฌ experimental_Offscreen
๊ตฌ์ฑ ์์๊ฐ ์์ ์ ์์ต๋๋ค. React๋ ๋ทฐํฌํธ์์ ๊ทผ์ ์ฑ ๋ฐ ์ฌ์ฉ์ ์ํธ ์์ฉ๊ณผ ๊ฐ์ ์์ธ์ ๋ฐ๋ผ ๋ ๋๋ง ์ฐ์ ์์๋ฅผ ์ง์ ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ mode
์์ฑ์ ์๋์ผ๋ก ์ ์ดํ๊ณ ์ค์ผ์ค๋ง๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ฐ์ ์์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋น๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋๋ฌด ํฌ๊ฑฐ๋ ๋ณต์กํ ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ์ง ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ฐ์ํ ๋๋ ํ์ด์ง๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง๋ ์ฝํ ์ธ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
ํ ์คํธ ๋ฐ ๋๋ฒ๊น
๋ ๋๋ง ๋์์ด ๋น๋๊ธฐ์ ์ด๋ฏ๋ก experimental_Offscreen
์ ํ
์คํธํ๋ ๊ฒ์ ์ด๋ ค์ธ ์ ์์ต๋๋ค. React Profiler ๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋๋ง ์๊ฐ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ์ญ์์ค. ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ์ ์คํ๊ฒ ํ
์คํธํ์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋ค์ํ ์กฐ๊ฑด์์ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ์ญ์์ค.
experimental_Offscreen ์ฌ์ฉ ๋ชจ๋ฒ ์ฌ๋ก
- ์ฑ๋ฅ ์ธก์ :
experimental_Offscreen
์ ๊ตฌํํ๊ธฐ ์ ํ์ React Profiler ๋ฐ Lighthouse์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ธก์ ํ์ญ์์ค. ์ด๋ฅผ ํตํด ์ด์ ์ ์ ๋ํํ๊ณ ์ ์ฌ์ ์ธ ํ๊ท๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. - ์ ํ์ ์ผ๋ก ์ฌ์ฉ:
experimental_Offscreen
์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์ฑ๋ฅ์ ์๋นํ ์ํฅ์ ๋ฏธ์น๋ ๊ตฌ์ฑ ์์์๋ง ์ ์ฉํ์ญ์์ค. ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฆ๊ฐ์ ์ค๋ฒํค๋๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. - ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ฃผ์ํ์ญ์์ค. ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋๋ฌด ํฌ๊ฑฐ๋ ๋ณต์กํ ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ๋ ๊ฒ์ ํผํ์ญ์์ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ ์ฑ๋ฅ ๋ฌธ์ ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ์ฒ ์ ํ ํ
์คํธ:
experimental_Offscreen
์ ๊ตฌํํ ํ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ ์ ํ ํ ์คํธํ์ญ์์ค. ๋ชจ๋ ๊ธฐ๋ฅ์ด ์์๋๋ก ์๋ํ๋์ง, ์์์น ๋ชปํ ๋ถ์์ฉ์ด ์๋์ง ํ์ธํ์ญ์์ค. - ์ต์ ์ ๋ณด ์ ์ง:
experimental_Offscreen
์ ์คํ์ ๊ธฐ๋ฅ์ ๋๋ค. React ์ค๋ช ์ ๋ฐ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ ๋ฐ๋ฆ์ผ๋ก์จ ์ต์ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ์ญ์์ค.
์ ์ฌ์ ๋จ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
- ์คํ์ ์ํ: ์คํ์ API์ด๋ฏ๋ก
experimental_Offscreen
์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. API๋ ํฅํ React ๋ฆด๋ฆฌ์ค์์ ์์ ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ์ ์์ต๋๋ค. API๊ฐ ์งํํจ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์กฐ์ ํ ์ค๋น๋ฅผ ํด์ผ ํฉ๋๋ค. - ์ฆ๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์๋น: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํฉ๋๋ค. ํฌ๊ฑฐ๋ ๋ณต์กํ ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๊ณ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ์ฅ์น์์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
experimental_Offscreen
์ผ๋ก ๋ ๋๋ง๋ ๊ตฌ์ฑ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ์คํ๊ฒ ๊ณ ๋ คํ์ญ์์ค. - ๋ฐ์ดํฐ ์ต์ ์ฑ ๋ฌธ์ ๊ฐ๋ฅ์ฑ: ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ์ฌ์ฉ๋ ๋ฐ์ดํฐ๊ฐ "์จ๊น" ๋ชจ๋ ์ค์ ๋ณ๊ฒฝ๋๋ฉด ๋ ๋๋ง๋ ์ฝํ ์ธ ๊ฐ ์ต์ ์ํ๊ฐ ์๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ข ์์ฑ์ ์ ์คํ๊ฒ ๊ด๋ฆฌํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๊ตฌ์ฑ ์์๊ฐ ๋ค์ ๋ ๋๋ง๋๋๋ก ํด์ผ ํฉ๋๋ค. ์ ๋ต์๋ React Context ๋๋ Redux์ ๊ฐ์ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ฆ๊ฐ๋ ๋ณต์ก์ฑ: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง์ ๋์
ํ๋ฉด ์ฝ๋์ ๋ณต์ก์ฑ์ด ์ถ๊ฐ๋ฉ๋๋ค. ๊ตฌ์ฑ ์์๊ฐ ๋ชจ๋ ์๋๋ฆฌ์ค์์ ์์๋๋ก ์๋ํ๋๋ก ํ๋ ค๋ฉด ์ ์คํ ๊ณํ๊ณผ ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค.
experimental_Offscreen
์ฌ์ฉ์ ์ด์ ๊ณผ ์ถ๊ฐ๋ ๋ณต์ก์ฑ์ ๋น๊ตํ์ฌ ํ๊ฐํ์ญ์์ค. - ๋ธ๋ผ์ฐ์ ํธํ์ฑ: React๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ฑ์ ๋ชฉํ๋ก ํ์ง๋ง ์คํ์ ๊ธฐ๋ฅ์ ์ด์ ๋ธ๋ผ์ฐ์ ์์ ์ ํ์ ์ผ ์ ์์ต๋๋ค. ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ์ฅ์น์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ ์ ํ ํ ์คํธํ์ญ์์ค.
React์์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง์ ๋ฏธ๋
experimental_Offscreen
์ React ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ค์ํ ๋จ๊ณ์
๋๋ค. API๊ฐ ์ฑ์ํ๊ณ ๋ ์์ ํ๋จ์ ๋ฐ๋ผ UI ๋ ๋๋ง์ ์ต์ ํํ๊ธฐ ์ํ ํ์ค ๋๊ตฌ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ฐ์ ์์ ์ง์ , ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐ ๋ค๋ฅธ React ๊ธฐ๋ฅ๊ณผ์ ํตํฉ์ ๊ฐ์ ํ๋ ๋ฑ API์ ๋ํ ์ถ๊ฐ ๊ฐ์ ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
React ํ์ ๋์ ๋ ๋๋ง ๋ฐ ์ ํ์ ์ํ์ ๊ฐ์ ๋ค๋ฅธ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ ๋๋ง ๋ฐ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ์ ์ ์ ๊ทน์ ์ผ๋ก ํ์ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ํ์ ์ ๋ฏธ๋์ React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ์๋ต์ฑ์ ๋์ฑ ํฅ์์ํฌ ๊ฒ์ ์ฝ์ํฉ๋๋ค.
๊ฒฐ๋ก
experimental_Offscreen
์ ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ์ฌ React ์ ํ๋ฆฌ์ผ์ด์
์ ์ต์ ํํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์์ง ์คํ์ ๊ธฐ๋ฅ์ด์ง๋ง React ์ฑ๋ฅ ์ต์ ํ์ ๋ฏธ๋์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. experimental_Offscreen
์ ์ด์ , ์ฌ์ฉ ์ฌ๋ก ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํดํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ด๋ฅผ ํ์ฉํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ , ๋ฐ์์ฑ์ด ๋ฐ์ด๋๋ฉฐ, ๋ ์ฆ๊ฑฐ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ค ์ ์์ต๋๋ค.
experimental_Offscreen
์ ๊ตฌํํ๊ธฐ ์ ์ ์ ์ฌ์ ๋จ์ ๊ณผ ์ ์ถฉ์ ์ ์ ์คํ๊ฒ ๊ณ ๋ คํ์ญ์์ค. ์ํ๋ ์ด์ ์ ์ ๊ณตํ๋์ง ํ์ธํ๊ธฐ ์ํด ๊ตฌํ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ์ธก์ ํ์ญ์์ค. React ์ค๋ช
์ ๋ฐ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ ๋ฐ๋ฆ์ผ๋ก์จ ์ต์ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ์ญ์์ค.
experimental_Offscreen
๊ณผ ๊ฐ์ ํ์ ์ ์ธ ๊ธฐ์ ์ ์์ฉํจ์ผ๋ก์จ React ๊ฐ๋ฐ์๋ ์น ์ฑ๋ฅ์ ํ๊ณ๋ฅผ ๊ณ์ ํ์ฅํ๊ณ ์ง์ ์ผ๋ก ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ค ์ ์์ต๋๋ค.