์ฒซ ๋ฒ์งธ ์ฝ๋
React 18
import React from 'react';
import ReactDOM from 'react-dom/client';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<h1>์๋
๋ฆฌ์กํธ !</h1>);
- React 18 ์ด์: React 18์์๋ ์๋ก์ด Root API์ธ ReactDOM.createRoot๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Concurrent Mode ์ง์: ์ด ์๋ก์ด API๋ React์ Concurrent Mode์ ๋ ๋์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ง์ํฉ๋๋ค.
- ์ฌ์ฉ๋ฒ
- createRoot๋ฅผ ์ฌ์ฉํ์ฌ root๋ฅผ ์์ฑํฉ๋๋ค.
- ์์ฑ๋ root์์ render ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
๋ ๋ฒ์งธ ์ฝ๋
React 17
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<h1>์๋
๋ฆฌ์กํธ !</h1>,
document.getElementById('root')
);
- React 17 ๋ฐ ์ด์ ๋ฒ์ : ์ด ๋ฐฉ์์ React 17 ๋ฐ ๊ทธ ์ด์ ๋ฒ์ ์์ ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ธฐ์กด ๋ ๋๋ง ๋ฐฉ์: ์ ํต์ ์ธ ReactDOM.render ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฌ์ฉ๋ฒ: ReactDOM.render ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ DOM์ ๋ ๋๋งํฉ๋๋ค.
๋ ๋ฐฉ์์ ์ฃผ์ ์ฐจ์ด์
React 18์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ ? ์๋๋ ?
๊ฒฐ๋ก
React 18์ ์ฌ์ฉํ๊ณ Concurrent Mode์ ๊ฐ์ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฉํ๋ ค๋ฉด ReactDOM.createRoot๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. :) ๐
Concurrent Mode
React 18์์ ๋์ ๋ ์๋ก์ด ๊ธฐ๋ฅ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋๋ง ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํ ๋ชจ๋์ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋ฐ์์ฑ์ด ๋๊ณ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ๋น ๋ฅด๊ฒ ์๋ตํ ์ ์๋๋ก ๋์ต๋๋ค.
- React์ ๊ธฐ์กด ๋ ๋๋ง ๋ชจ๋ธ์ ๊ฐ์
- ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ ์ค๋ ๋๊ฐ ๋ธ๋กํน๋์ง ์๋๋ก ํ์ฌ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ์์ฐ์ค๋ฝ๊ณ ๋งค๋๋ฝ๊ฒ ๋์ํ ์ ์๊ฒ ํฉ๋๋ค.
์ฃผ์ ๊ฐ๋ ๋ฐ ํน์ง
- Interruptible Rendering (์ค๋จ ๊ฐ๋ฅํ ๋ ๋๋ง)
- ๊ธฐ์กด์ ๋๊ธฐ ๋ ๋๋ง ๋ฐฉ์์์๋ ๋ ๋๋ง ์์ ์ด ์์๋๋ฉด ์ค๊ฐ์ ์ค๋จํ ์ ์์์ต๋๋ค. ํ์ง๋ง Concurrent Mode์์๋ ๋ ๋๋ง ์์ ์ด ์ค๋จ ๊ฐ๋ฅํ๊ณ , ์ฐ์ ์์๊ฐ ๋์ ์์ ์ด ๋จผ์ ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค.
- Scheduling (์ค์ผ์ค๋ง)
- Concurrent Mode๋ React์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ, ๋ ๋๋ง ์์ ์ ์ฐ์ ์์๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ฐ์ ์์๊ฐ ๋์ ์์ (์: ์ฌ์ฉ์ ์ ๋ ฅ ์ฒ๋ฆฌ)์ด ๋จผ์ ์ฒ๋ฆฌ๋๊ณ , ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ (์: ๋ฐ์ดํฐ ํจ์นญ)์ ๋์ค์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
- Suspense
- Concurrent Mode๋ Suspense ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํ์ฌ, ๋ฐ์ดํฐ๊ฐ ๋ก๋ฉ๋ ๋๊น์ง ํน์ ์ปดํฌ๋ํธ์ ๋ ๋๋ง์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค. ์ด๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ ์์ ์ ์ฌ์ฉ์์๊ฒ ๋ก๋ฉ ์คํผ๋์ ๊ฐ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๊ฒ ํฉ๋๋ค.
- Automatic Batching
- Concurrent Mode์์๋ ์ฌ๋ฌ ์ํ ์ ๋ฐ์ดํธ๊ฐ ์๋์ผ๋ก ๋ฐฐ์น๋์ด, ๋ถํ์ํ ์ฌ๋ ๋๋ง์ ์ค์ด๊ณ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
Concurrent Mode๋ ReactDOM.createRoot ์ ์ฌ์ฉํ์ฌ ํ์ฑํํ ์ ์๋ค.
Concurrent Mode์ ์ด์
- ๋ ๋น ๋ฅธ ์๋ต์ฑ
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๋ฉฐ, ๋๋ฆฐ ๋ ๋๋ง ์์ ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ํฉ๋๋ค.
- ๋งค๋๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ
- ์ ๋๋ฉ์ด์ ์ด๋ ํ๋ฉด ์ ํ์ด ๋ ๋ถ๋๋ฝ๊ฒ ์คํ๋๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ๋ ์ค๋จ ์์ด ์์ฐ์ค๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ์ฌ์ฉ
- ๋ถํ์ํ ๋ ๋๋ง์ ์ค์ด๊ณ , ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ ์ค๋ ๋๊ฐ ๋ธ๋กํน๋์ง ์๋๋ก ํ์ฌ ์์คํ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
'๐ฉ๐ปโ๐ป ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React ์๊ณ ๊ฐ ๊ฐ๋ ] - state์ props์ ์ฐจ์ด๋ฅผ ์์๋ณด์ (0) | 2025.01.09 |
---|---|
[React ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ] - Jotai, Context, Zustand ๋น๊ต (1) | 2024.10.16 |
[React] - React์์ ์คํ์ผ๋ง์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ (0) | 2024.08.22 |
[React] - useEffect์ ํด๋ฆฐ์ ์ด๋ ? (0) | 2024.08.12 |