React์ ์คํ์ ์ธ experimental_useCache ํ ์ ํ์ํด ๋ณด์ธ์. ๊ตฌํ, ์ด์ , ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ ๊ฐ๋ฐ์์๊ฒ ์ ํฉํ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ํฅ์์ ์ํ ๋ฐ์ดํฐ ์บ์ฑ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
React์ experimental_useCache ํํค์น๊ธฐ: ๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ข ํฉ ๊ฐ์ด๋
React ์ํ๊ณ๋ ๊ฐ๋ฐ์ ๊ฒฝํ๊ณผ ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ต์ ํ๊ฐ ์ ๊ธฐ์ ์ผ๋ก ๋์
๋๋ฉด์ ๋์์์ด ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์คํ์ ๊ธฐ๋ฅ ์ค ํ๋์ธ experimental_useCache๋ React ์ปดํฌ๋ํธ ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ experimental_useCache์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์, ์ค์ ์ ์ฉ ์ฌ๋ก, ๊ทธ๋ฆฌ๊ณ ๊ณ ์ฑ๋ฅ์ ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ถ์ ๋ฏธ์น๋ ์ํฅ์ ๋ํด ๋ค๋ฃน๋๋ค.
ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์บ์ฑ์ ํ์์ฑ ์ดํดํ๊ธฐ
์ค๋๋ ๊ณผ ๊ฐ์ด ์ํธ ์ฐ๊ฒฐ๋ ์ธ์์์ ์ฌ์ฉ์๋ค์ ์์ ์ ์์น๋ ๊ธฐ๊ธฐ์ ์๊ด์์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น ๋ฅด๊ณ ๋ฐ์์ด ์ข์ผ๋ฉฐ ์ํํ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ๋๋ฆฐ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธฐ์ฌํ๋ ์ค์ํ ์์ธ์ ์ข ์ข ๋๋ฆฐ ๋ฐ์ดํฐ ํ์นญ์ ๋๋ค. ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ, ์๋ฒ ์๋ต ์๊ฐ, ๋ฐ์ดํฐ ๊ฒ์์ ๋ณต์ก์ฑ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์บ์ฑ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํ ์ค์ํ ์ ๋ต์ผ๋ก ๋ถ์ํฉ๋๋ค.
์บ์ฑ์ ์์ฃผ ์ ๊ทผํ๋ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ ์ธก(์: ๋ธ๋ผ์ฐ์ )์ด๋ ์๋ฒ ์ธก(์: Redis ๋๋ Memcached์ ๊ฐ์ ์ ์ฉ ์บ์ ์๋น์ค)์ ๋ก์ปฌ๋ก ์ ์ฅํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จผ์ ์บ์๋ฅผ ํ์ธํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์บ์์ ์์ผ๋ฉด("์บ์ ํํธ") ์ฆ์ ๊ฒ์๋์ด ์๋ณธ ์์ค(๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ API)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ํ์๊ฐ ํฌ๊ฒ ์ค์ด๋ญ๋๋ค. ์ด๋ ๋ ๋น ๋ฅธ ๋ก๋ ์๊ฐ, ๊ฐ์๋ ๋์ญํญ ์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ ์ ๋ฐ์ ์ผ๋ก ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ด์ด์ง๋๋ค.
์บ์ฑ์ ํนํ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ์ด ๊น์ต๋๋ค. ๋ค๋ฅธ ์ง๋ฆฌ์ ์์น์ ์๋ ์ฌ์ฉ์๋ค์ ๋ค์ํ ๋คํธ์ํฌ ํ๊ฒฝ์ ๊ฒฝํํ ์ ์์ต๋๋ค. ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ๊ณณ์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ฉด ์ธํฐ๋ท ์๋๊ฐ ๋๋ฆฌ๊ฑฐ๋ ์ง์ฐ ์๊ฐ์ด ๊ธด ์ง์ญ์ ์ฌ์ฉ์๋ค์๊ฒ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)๊ฐ ๊ธ๋ก๋ฒ ์น์ฌ์ดํธ์ ๋งค์ฐ ์ค์ํ ์ด์ ์ ๋๋ค. CDN์ ์ ์ ์์ฐ์ ์ฌ์ฉ์์ ์ง๋ฆฌ์ ์ผ๋ก ๋ ๊ฐ๊น์ด ๊ณณ์ ์บ์ํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์์ค์์ ์์ฃผ ์ ๊ทผํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ฉด ์น์ฌ์ดํธ์ ๋์ ์ธ ๋ถ๋ถ์ด๋ผ ํ ์ง๋ผ๋ ์ํธ์์ฉํ๋ ๋ถ๋ถ์ ์ฒด๊ฐ ์๋๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
experimental_useCache ์๊ฐ: React์ ์บ์ฑ ํ
experimental_useCache๋ ํจ์ํ ์ปดํฌ๋ํธ ๋ด์์ ์บ์ฑ์ ์ฉ์ดํ๊ฒ ํ๋๋ก ์ค๊ณ๋ React ํ
์
๋๋ค. ์ด๋ React ์คํ์ API์ ์ผ๋ถ์ด๋ฉฐ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ ์ฌ์ ์ธ ์
๋ฐ์ดํธ๋ ์์ ์ ๋๋นํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์คํ ๋จ๊ณ์์๋ React์ ๋ฏธ๋ ์บ์ฑ ๊ธฐ๋ฅ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ์ ์ผ๋ก experimental_useCache๋ ๋น๋๊ธฐ ํจ์๋ฅผ ์ํ ๋ฉ๋ชจ์ด์ ์ด์
๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ์์
(์: API์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ๋ณต์กํ ๊ณ์ฐ)์ ๊ฒฐ๊ณผ๋ฅผ ์บ์ํ๊ณ , ๋์ผํ ์
๋ ฅ์ด ์ ๊ณต๋ ๋ ํจ์๋ฅผ ๋ค์ ์คํํ์ง ์๊ณ ํด๋น ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ณ์ฐ ๋ถํ๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ React ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์์ฑ์ ํฅ์์ํต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ์ด์
- ๋น๋๊ธฐ ํจ์๋ฅผ ์ํ ๋ฉ๋ชจ์ด์ ์ด์ : ์ ๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๊ธฐ ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ์บ์ํ์ฌ API์ ๋ํ ์ค๋ณต ํธ์ถ์ด๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ ๋ฐฉ์งํฉ๋๋ค.
- ์๋ ์ฌ๊ฒ์ฆ: ์ด๊ธฐ ๊ตฌํ์๋ ๋ช ์์ ์ธ ์ฌ๊ฒ์ฆ ๊ธฐ๋ฅ์ด ์์ง๋ง ๋ค๋ฅธ ์บ์ฑ ๋ฉ์ปค๋์ฆ๊ณผ ํจ๊ป ์๋ํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ฌ๊ฒ์ฆ ํจํด์ ๊ฐ๋ฐํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.
- ์ฑ๋ฅ ํฅ์: ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๊ณ์ฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ฌ ๋ก๋ฉ ์๊ฐ์ ๋จ์ถํ๊ณ ์ฌ์ฉ์ ์ํธ์์ฉ์ ๋ ๋ถ๋๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ๊ฐ์ํ๋ ์ฝ๋: ์ปดํฌ๋ํธ ๋ด์ ์บ์ฑ ๋ก์ง์ ๋จ์ํํ์ฌ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ์ค์ด๊ณ ์ฝ๋ ๊ฐ๋ ์ฑ์ ํฅ์์ํต๋๋ค.
- ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ: ํนํ ๋๋์ ๋ฐ์ดํฐ๋ ๋ณต์กํ ๊ณ์ฐ์ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ๋ ๋ฐ์์ด ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
experimental_useCache ์๋ ๋ฐฉ์: ์ฌ์ธต ๋ถ์
experimental_useCache ํ
์ ๊ทผ๋ณธ์ ์ผ๋ก ํจ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์
๋ ฅ๊ฐ์ผ๋ก๋ถํฐ ์์ฑ๋ ์บ์ ํค์ ์ฐ๊ฒฐํ์ฌ ์๋ํฉ๋๋ค. ๋์ผํ ํจ์๊ฐ ๋์ผํ ์
๋ ฅ๊ฐ์ผ๋ก ํธ์ถ๋๋ฉด, ํ
์ ํจ์๋ฅผ ๋ค์ ์คํํ๋ ๋์ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํฉ๋๋ค. ์ด๋ ๋ฉ๋ชจ์ด์ ์ด์
๊ฐ๋
๊ณผ ์ ์ฌํ๋ฉฐ, ์ด๋ ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๊ณ ๋์ผํ ์
๋ ฅ์ด ๋ค์ ๋ฐ์ํ ๋ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ฌ ํจ์ ํธ์ถ์ ์ต์ ํํ๋ ๊ธฐ์ ์
๋๋ค.
์ด ํ ์ React ์ปจํ ์คํธ ๋ด์์ ์ฌ์ฉ๋๋๋ก ์๋๋์์ต๋๋ค. ์บ์ฑ ๋ฉ์ปค๋์ฆ์ด ๋ ๋๋ง ์๋ช ์ฃผ๊ธฐ์ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ ์ค์ํฉ๋๋ค. ์ปดํฌ๋ํธ ๋ ๋๋ง ํ๋ก์ธ์ค์ ์์ญ ๋ฐ์์์ ์ฌ์ฉ์ ์๋๋์ง ์์์ต๋๋ค. ๊ทธ ์ปจํ ์คํธ๋ React ์ปดํฌ๋ํธ ์์ฒด์ ๋๋ค.
์๋ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํจ์ ์ ์: ๊ฐ๋ฐ์๋ ์บ์ํ ์์
์ ์ํํ๋ ํจ์๋ฅผ ์ ์ํฉ๋๋ค. ์ด ํจ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋น๋๊ธฐ์ ์
๋๋ค(์: API ํธ์ถ์
async/await์ฌ์ฉ). - ํ
ํธ์ถ: React ํจ์ํ ์ปดํฌ๋ํธ ๋ด๋ถ์์
experimental_useCacheํ ์ด ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ์ฌ ํธ์ถ๋ฉ๋๋ค. - ์ ๋ ฅ ๋งค๊ฐ๋ณ์: ํจ์๊ฐ ์ ๋ ฅ ์ธ์์ ํจ๊ป ํธ์ถ๋ ๋, ํด๋น ์ธ์๋ ์บ์ ํค๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์บ์ ์กฐํ: ํ ์ ์์ฑ๋ ์บ์ ํค์ ๋ํด ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
- ์บ์ ํํธ: ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ์ฆ์ ๋ฐํ๋ฉ๋๋ค. ํจ์๋ ๋ค์ ์คํ๋์ง ์์ต๋๋ค.
- ์บ์ ๋ฏธ์ค: ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด ํจ์๊ฐ ์คํ๋ฉ๋๋ค. ๊ฒฐ๊ณผ๋ ์์ฑ๋ ์บ์ ํค์ ์ฐ๊ฒฐ๋์ด ์บ์์ ์ ์ฅ๋ ๋ค์ ๋ฐํ๋ฉ๋๋ค.
๊ตฌํ ์ธ๋ถ ์ฌํญ์ ํน์ ๋ฒ์ ๋ฐ ๊ธฐ๋ณธ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. React๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ง์์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค๋ณต ๊ณ์ฐ์ ์ต์ํํ๊ณ ์บ์ฑ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค๋ ์ผ๋ฐ์ ์ธ ์์น์ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
experimental_useCache ๊ตฌํํ๊ธฐ: ์ค์ ์์
experimental_useCache์ ์ค์ ์ ์ฉ์ ๋ช ๊ฐ์ง ์์ ๋ฅผ ํตํด ์ค๋ช
ํ๊ฒ ์ต๋๋ค:
์์ 1: API ์์ฒญ ์บ์ฑ
API์์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ปดํฌ๋ํธ๋ฅผ ์์ํด ๋ณด์ธ์. ์บ์ฑ์ด ์์ผ๋ฉด ๊ฐ ๋ ๋๋ง๋ง๋ค ์๋ก์ด API ํธ์ถ์ด ๋ฐ์ํฉ๋๋ค. experimental_useCache๋ ์ด๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
import { experimental_useCache } from 'react';
function fetchUserData(userId) {
// Simulate an API call
return new Promise((resolve) => {
setTimeout(() => {
const userData = { id: userId, name: `User ${userId}` };
resolve(userData);
}, 1000); // Simulate a 1-second network delay
});
}
function UserProfile({ userId }) {
const cachedFetchUserData = experimental_useCache(fetchUserData);
const userData = cachedFetchUserData(userId);
return (
{userData ? (
Name: {userData.name}
) : (
Loading...
)}
);
}
์ด ์์ ์์ cachedFetchUserData๋ ๋ฉ๋ชจ์ด์ ์ด์
๋ ํจ์์
๋๋ค. ๋์ผํ userId๋ก ํ์ ํธ์ถ์ด ์ด๋ฃจ์ด์ง๋ฉด ์ถ๊ฐ์ ์ธ API ์์ฒญ ์์ด ์บ์๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋ฉ๋๋ค. ์ด ์์ ์์๋ API ํธ์ถ์ ์๋ฎฌ๋ ์ด์
ํ์ต๋๋ค. experimental_useCache๋ ๋ค๋ฅธ ํจ์, ์ฆ ์ฐ๋ฆฌ์ API ํธ์ถ์ ์ธ์๋ก ๋ฐ๋ ํจ์๋ผ๋ ์ ์ ์ ์ํ์ธ์.
์์ 2: ๋ณต์กํ ๊ณ์ฐ ์บ์ฑ
๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ ์ํํ๋ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ณด์ธ์. ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋ฉด ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
import { experimental_useCache } from 'react';
function performComplexCalculation(input) {
// Simulate an expensive calculation
let result = 0;
for (let i = 0; i < 100000000; i++) {
result += Math.sin(input * i);
}
return result;
}
function CalculationComponent({ input }) {
const cachedCalculation = experimental_useCache(performComplexCalculation);
const result = cachedCalculation(input);
return (
Input: {input}
Result: {result}
);
}
์ฌ๊ธฐ์ cachedCalculation์ performComplexCalculation์ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํ์ฌ ๋์ผํ ์
๋ ฅ๊ฐ์ด ์ ๊ณต๋ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
์์ 3: ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ก ์บ์ฑํ๊ธฐ
experimental_useCache ํ
์ ์ฌ๋ฌ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง ํจ์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
import { experimental_useCache } from 'react';
function fetchData(resource, options) {
// Simulate an API request
return new Promise((resolve) => {
setTimeout(() => {
const data = { resource: resource, options: options };
resolve(data);
}, 500); // Simulate a 0.5-second delay
});
}
function DataDisplay({ resource, options }) {
const cachedFetchData = experimental_useCache(fetchData);
const data = cachedFetchData(resource, options);
return (
{data ? (
Resource: {data.resource}
Options: {JSON.stringify(data.options)}
) : (
Loading...
)}
);
}
์ด ์์ ์์ cachedFetchData ํจ์๋ resource์ options ๋งค๊ฐ๋ณ์ ๋ชจ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์บ์ํฉ๋๋ค. ํ
์ ๋ด๋ถ ๋ก์ง์ ํจ์์ ์ ๊ณต๋ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๊ณ ๋ คํ ๊ฒ์
๋๋ค.
๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๊ณ ๋ ค ์ฌํญ
experimental_useCache๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๊ฐ๋ฐ์๋ ๊ทธ ์ด์ ์ ๊ทน๋ํํ๊ณ ์ ์ฌ์ ์ธ ํจ์ ์ ํผํ๊ธฐ ์ํด, ํนํ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๋งฅ๋ฝ์์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํด์ผ ํฉ๋๋ค:
- ์บ์ ๊ฐ๋ฅํ ์์ ์๋ณ: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์คํ๊ฒ ๋ถ์ํ์ฌ ์บ์ฑ์ ์ ํฉํ ์์ ์ ์๋ณํ์ธ์. ์ฌ๊ธฐ์๋ ์ผ๋ฐ์ ์ผ๋ก API์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ๋ณต์กํ ๊ณ์ฐ ๋ฐ ๊ธฐํ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ์บ์ํด์๋ ์ ๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ์ฑ๋ฅ ์ด์ ์ฌ์ด์ ์ฅ๋จ์ ์ ๊ณ ๋ คํ์ธ์.
- ์บ์ ํค๋ฅผ ์ ์คํ๊ฒ ์ ์: ์บ์ ํค๊ฐ ๊ณ ์ ํ๊ณ ์ ๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ๋ํํ๋์ง ํ์ธํ์ธ์. ๋ ๊ฐ์ ๋ค๋ฅธ ํจ์ ํธ์ถ์ด ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํด์ผ ํ๋ค๋ฉด, ๊ทธ ๋ ํธ์ถ์ ๋ค๋ฅธ ํค๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ ๋๋ก ์๋ํ๊ฒ ํ๋ ํต์ฌ ๋ถ๋ถ์ ๋๋ค. ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ง๋ ฌํ ๋ฐ ํด์ฑ์ ์ ์ ํ ์บ์ ํค๋ฅผ ์์ฑํ๋ ๋ฐ ํ์์ ์ธ ๋จ๊ณ์ ๋๋ค.
- ์บ์ ๋ฌดํจํ ๊ณ ๋ ค: ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์ค๋๋์์ ๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์บ์ ๋ฌดํจํ ์ ๋ต์ ๊ตฌํํ์ธ์. React๋
experimental_useCache์ ๋ํ ๋ด์ฅ๋ ์บ์ ๋ฌดํจํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ต๋๋ค. - ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ ๊ตฌํ: ๋คํธ์ํฌ ์ค๋ฅ๋ ๊ธฐํ ๋ฌธ์ ๋ฅผ ์ ์์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์บ์๋ ํจ์๋ฅผ ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ๋ก ๊ฐ์ธ์ธ์.
- ์บ์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ์บ์ ํํธ์จ, ์บ์ ๋ฏธ์ค์จ, ์บ์ ํฌ๊ธฐ๋ฅผ ํฌํจํ์ฌ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ฑ๋ฅ์ ์ถ์ ํ์ธ์. ์ด๋ ๊ฐ์ ์์ญ์ ์๋ณํ๊ณ ์บ์ฑ ์ ๋ต์ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ธ๋ก๋ฒ ์ฑ์ ๊ฒฝ์ฐ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ง๋ฆฌ์ ์์น์์์ ์ฑ๋ฅ์ ๊ด์ฐฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ํด ์๊ฐํ๊ธฐ: ์บ์ฑ์ ๋ฐ์ดํฐ๊ฐ ์ค๋๋ ๊ฐ๋ฅ์ฑ์ ์ผ๊ธฐํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋น์ผ๊ด์ฑ ์์ค์ ๊ฒฐ์ ํ๊ณ , ์บ์ ํญ๋ชฉ์ ๋ํ TTL(Time-To-Live) ๋๋ ์บ์๋ ๋ฐ์ดํฐ ์๋ก๊ณ ์นจ ๋ฉ์ปค๋์ฆ๊ณผ ๊ฐ์ ์ ๋ต์ ๊ตฌํํ์ธ์. ์บ์ฑ ์ ๋ต์ด ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์๊ตฌ ์ฌํญ๊ณผ ์ผ์นํ๋์ง ํ์ธํ์ธ์.
- ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ:
- ์์น ๊ธฐ๋ฐ ๋ฐ์ดํฐ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์น ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ์บ์ฑ ์ ๋ต์ด ์ฌ์ฉ์์ ์์น๋ฅผ ๊ณ ๋ คํ๋์ง ํ์ธํ์ธ์. ์ฌ์ฉ์์ ์ง์ญ์ ๋ฐ๋ผ ๋ค๋ฅธ ์บ์๋ ์บ์ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN): CDN์ ํ์ฉํ์ฌ ์ ์ ์์ฐ(์: ์ด๋ฏธ์ง, JavaScript ํ์ผ)์ ๋ค๋ฅธ ์ง๋ฆฌ์ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ์บ์ํ์ธ์. ์ด๋ ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ๊ฒ์ ๋๋ค.
- ์๋ฒ ์ธก ์บ์ฑ: ์๋ณธ ์๋ฒ๋ ์ค๊ฐ ์บ์(์: ๋ฆฌ๋ฒ์ค ํ๋ก์)์์ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๊ธฐ ์ํด ์๋ฒ ์ธก ์บ์ฑ์ ๊ตฌํํ์ธ์.
๊ณ ๊ธ ๊ธฐ์ ๋ฐ ์ต์ ํ
๊ธฐ๋ณธ์ ์ธ ๊ตฌํ์ ๋์ด์, experimental_useCache์ ์ฌ์ฉ์ ๋์ฑ ์ต์ ํํ ์ ์๋ ๋ช ๊ฐ์ง ๊ณ ๊ธ ๊ธฐ์ ์ด ์์ต๋๋ค:
- ์ฌ์ฉ์ ์ ์ ์บ์ ๊ตฌํ:
experimental_useCache๊ฐ ๊ธฐ๋ณธ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง๋ง, ์ด๋ฅผ ํ์ฅํ๊ฑฐ๋ ์ ์ฉ ์บ์ ์๋น์ค ๋๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์บ์์ ๊ฐ์ ๋ ์ ๊ตํ ์บ์ฑ ์๋ฃจ์ ๊ณผ ํตํฉํ ์ ์์ต๋๋ค. ํ์ฌ API๊ฐ ์บ์ ๊ตฌ์ฑ์ ์ํ ํ์ฅ ์ง์ ์ ์ ๊ณตํ์ง๋ ์์ง๋ง, React.cache๋ฅผ ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ๋๊ตฌ์ ๊ฒฐํฉํ์ฌ ์์ ๋ง์ ์บ์๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. - ๋ถ๋ถ์ ํ์ด๋๋ ์ด์ (Partial Hydration): ํด๋ผ์ด์ธํธ ์ธก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ๋ฅผ ์ ํ์ ์ผ๋ก ํ์ด๋๋ ์ด์ ํ๋ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์ด๋ ๋ก๋๋๊ณ ์คํ๋์ด์ผ ํ๋ JavaScript์ ์์ ์ค์ฌ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ์บ์๋ ๊ฒฐ๊ณผ๋ ์ด๋ฌํ ํ์ด๋๋ ์ด์ ๋ ์ปดํฌ๋ํธ์ ๊ณต๊ธ๋์ด ๋ก๋ฉ์ ๋์ฑ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ถํ (Code Splitting): ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์์ ์ฒญํฌ๋ก ๋ถํ ํ์ฌ ํ์ํ ๋ ๋ก๋๋๋๋ก ์ฝ๋ ๋ถํ ์ ๊ตฌํํ์ธ์. ์ด๋ ์ด๊ธฐ JavaScript ํ์ด๋ก๋๋ฅผ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ์ด๋ ๋ํ ์ปดํฌ๋ํธ ํฌ๊ธฐ์ ์บ์ฑ์ ์ํฅ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ง์ฐ ๋ก๋ฉ(Lazy Loading): ์ฌ์ฉ์์๊ฒ ์ฆ์ ๋ณด์ด์ง ์๋ ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ๋ฆฌ์์ค์ ๋ํด ์ง์ฐ ๋ก๋ฉ์ ๊ตฌํํ์ธ์. ์ด๋ ์ด๋ฌํ ๋ฆฌ์์ค์ ๋ก๋ฉ์ ํ์ํ ๋๊น์ง ์ง์ฐ์์ผ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ์ด๋ฌํ ์ง์ฐ ๋ก๋ฉ๋ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ธํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๊ฒ์ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๋ ํ๋ช ํ ์ต์ ์ด ๋ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์บ์ฑ ์ ๋ต๊ณผ์ ๋น๊ต
experimental_useCache๋ React ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ ํฉํ ์บ์ฑ ์ ๋ต์ ๋ํด ์ ๋ณด์ ์
๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์๊ณผ ์ด๋ป๊ฒ ๋น๊ต๋๋์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
- React Context ๋ฐ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Redux, Zustand ๋๋ Recoil๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ฅผ ์ค์ ์ง์คํํ๋ ๋ฐ ์ข์ต๋๋ค. ์ฐจ์ด์ ์ ์ด๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ์ ์ญ ์ํ ๊ด๋ฆฌ ์๋ฃจ์
์ ์ ๊ณตํ๋ ๋ฐ๋ฉด,
experimental_useCache๋ ์ปดํฌ๋ํธ ์์ค ์บ์ฑ์ ์ค์ ์ ๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ ๋ค ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. - ๋ธ๋ผ์ฐ์ ์บ์ฑ(๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์
์คํ ๋ฆฌ์ง): ๋ธ๋ผ์ฐ์ ์ ๋ก์ปฌ ๋๋ ์ธ์
์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ์ธ์
๊ฐ ๋๋ ์ธ์
๋ด์์ ์ง์๋์ด์ผ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ ์ด๋ ํด๋น ์ฌ์ฉ์์๊ฒ ํน์ ํ ๋ค๋ฅธ ์ ํ์ ์ ๋ณด๋ฅผ ์บ์ฑํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
experimental_useCache๋ ์ปดํฌ๋ํธ ๋ ๋๋ง ์ค์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๋ฐ ๋ ์ ํฉํฉ๋๋ค. - ์๋ฒ ์ธก ์บ์ฑ: ์๋ฒ ์ธก ์บ์ฑ(์: ๋ฆฌ๋ฒ์ค ํ๋ก์, Redis ๋๋ Memcached ์ฌ์ฉ)์ ๊ตฌํํ๋ ๊ฒ์ ์๋ฒ ๋ถํ๋ฅผ ์ค์ด๊ณ ์๋ต ์๊ฐ์ ๊ฐ์ ํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ ๋๋ง ์ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ ์ธก ์บ์ฑ๊ณผ ์กฐํ๋กญ๊ฒ ์๋ํ ์ ์์ต๋๋ค.
useMemo๋ฐuseCallback์ ์ฌ์ฉํ ๋ฉ๋ชจ์ด์ ์ด์ : ์ด ํ ๋ค์ ๊ฐ๊ฐ ๊ฐ๊ณผ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ ํ๋๋ก ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ ์ต์ ํํ๊ฑฐ๋ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ฐฉ์งํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.experimental_useCache๋ ๋น๋๊ธฐ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ต์์ ์ ๋ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์๋ค์ ์กฐํฉํ์ฌ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
experimental_useCache์ React ์บ์ฑ์ ๋ฏธ๋
React๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์บ์ฑ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋์ฑ ์ฑ์ํด์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ํ์ฌ ์คํ์ ์ด์ง๋ง experimental_useCache๋ React ์บ์ฑ ๊ธฐ๋ฅ์ ๋ฏธ๋๋ฅผ ์ฟ๋ณผ ์ ์๊ฒ ํด์ค๋๋ค.
์ฃผ์ ๊ฐ๋ฐ ๋ถ์ผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ณ ๊ธ ์บ์ ๊ด๋ฆฌ: ์บ์ ๋ฌดํจํ ์ ๋ต์ ํฅ์์ ๊ธฐ๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์บ์๋ ๋ฐ์ดํฐ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ํ์นญ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํตํฉ: ๋ฐ์ดํฐ ํ์นญ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: Relay, Apollo Client)์์ ์ํํ ํตํฉ ๊ฐ๋ฅ์ฑ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ์บ์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ์ ๊ฒฝํ ํฅ์: API๋ฅผ ๋์ฑ ์ ์ ํ์ฌ ์ฌ์ฉ์ ๋จ์ํํ๊ณ , ํนํ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์บ์ฑ์ ๊ด๋ฆฌํ๋ ๋ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
- ์๋ฒ ์ปดํฌ๋ํธ์ ์บ์ฑ: ์๋ฒ ์ปดํฌ๋ํธ์์ ํตํฉ์ด ๊ฐํ๋์ด ์๋ฒ ์์ค์์ ๊ฐ๋ ฅํ ์บ์ฑ ์ ๋ต์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ฑ๋ฅ์ ๋์ฑ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ experimental_useCache ๋ฐ ๊ธฐํ ์บ์ฑ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด React ๋ฌธ์ ๋ฐ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ต์ ๊ธฐ์ ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก : ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์บ์ฑ ์์ฉ
experimental_useCache๋ React ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ, ํนํ ์ ์ธ๊ณ์ ๋ถ์ฐ๋ ์ฌ์ฉ์๋ฅผ ์ํด ๊ฐ์น ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์บ์ฑํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ์ค์ด๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ฉฐ ๋ ๋ฐ์์ด ๋น ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ก์ experimental_useCache ์ฌ์ฉ์ ํฌํจํ ์บ์ฑ ๊ธฐ์ ์ ์ดํดํ๊ณ ์์ฉํ๋ ๊ฒ์ ๋ค์ํ ์ง์ญ๊ณผ ์ฅ์น์์ ์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํฌ ์ ์๋ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๋ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ด ๊ฐ์ด๋์์ ๋
ผ์๋ ๋ชจ๋ฒ ์ฌ๋ก, ์ฑ๋ฅ ์ต์ ํ ๋ฐ ์บ์ฑ ์ ๋ต์ ์ ์คํ๊ฒ ๊ณ ๋ คํจ์ผ๋ก์จ ๋ชจ๋ ๊ณณ์ ์ฌ์ฉ์์๊ฒ ๋ถ๋๋ฝ๊ณ ๋ฐ์์ด ๋น ๋ฅธ ๊ฒฝํ์ ์ ๊ณตํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
React์ ๊ทธ ์บ์ฑ ๊ธฐ๋ฅ์ ๋ฐ์ ์ ์ฃผ์ํ๊ณ , ์ธ๊ณ์ ์์ค์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ต์ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ์ป์ผ์ญ์์ค.