๋ ์ด์ง ๋ก๋ฉ(Lazy Loading)์ ์น์ฌ์ดํธ์์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ํ์ํ ์์ ์๋ง ๋ก๋ํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ๊ฐ์ ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ํนํ ์ด๋ฏธ์ง๋ ๋์์๊ณผ ๊ฐ์ ๋์ฉ๋ ๋ฆฌ์์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ฑฐ๋, ํ์ด์ง์ ์ผ๋ถ๋ถ์ ๋์ ์ผ๋ก ๋ก๋ฉํ ๋ ์ ์ฉํฉ๋๋ค.
๋ ์ด์ง ๋ก๋ฉ์ ์ฃผ์ ์์ด๋์ด๋ ํ์ด์ง ๋ก๋ ์์ ์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ ๋ฒ์ ๋ก๋ํ๋ ๋์ , ์ฌ์ฉ์๊ฐ ํด๋น ๋ฆฌ์์ค๊ฐ ํ์ํ ์๊ฐ์ ๋ก๋ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ก์จ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ณ ํ์ด์ง ์ ํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
์น ๊ฐ๋ฐ์์ ๋ ์ด์ง ๋ก๋ฉ์ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค:
- ์ด๋ฏธ์ง ๋ ์ด์ง ๋ก๋ฉ: ํ์ด์ง์ ํ์๋์ง ์๋ ์ด๋ฏธ์ง๋ ์ด๊ธฐ์ ๋ก๋ํ์ง ์๊ณ , ์ฌ์ฉ์๊ฐ ์คํฌ๋กคํ๊ฑฐ๋ ๋ค๋ฅธ ์ํธ์์ฉ์ ํ ๋ ๋ก๋ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ์ปดํฌ๋ํธ ๋ ์ด์ง ๋ก๋ฉ: React๋ Vue์ ๊ฐ์ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์์๋ ์ปดํฌ๋ํธ๋ฅผ ํ์ํ ์์ ์ ๋ก๋ํ ์ ์์ต๋๋ค. **React.lazy**์ **Suspense**๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ ์ด์ง ๋ก๋ฉํ ์ ์์ต๋๋ค.
- ๋์ ๋ฐ์ดํฐ ๋ก๋ฉ: ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ฒฝ์ฐ, ํ์ํ ๋ฐ์ดํฐ๋ง ๋ก๋ํ์ฌ ํ์ด์ง์ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
- ํ์ด์ง์ ์ผ๋ถ ๋ก๋ฉ: ํ์ด์ง์ ํน์ ๋ถ๋ถ์ด๋ ์น์ ์ ํ์ํ ์๊ฐ์ ๋ก๋ํ์ฌ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํ์ํ ์ ์๊ฒ ํฉ๋๋ค.
๋ ์ด์ง ๋ก๋ฉ์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ณ ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋๋ ๊ธฐ์ ์ ๋๋ค. ๋ค์ํ ์ํฉ์์ ํ์ฉํ์ฌ ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๐์ฝ๊ฒ ๋งํ์๋ฉด ์ด๊ธฐ์ ํ๋ฒ์ ๋ชจ๋ ๊ฒ์ ๋ถ๋ฌ์ค๋ฉด ์๋๊ฐ ๋น์ฐํ ๋ฆ์ถฐ์ง ์ ๋ฐ์ ์๋๋ฐ, ์ํ๋ ๊ฒ์ ์ํ๋ ์์ ์ ๋ถ๋ฌ์ค๋ ๊ฒ์ ๋ ์ด์ง๋ก๋ฉ์ด๋ผ ํฉ๋๋ค.
์์:
import React, { lazy, Suspense } from 'react';
const LazyLoadedComponent = lazy(() => import('./LazyLoadedComponent'));
function App() {
return (
<div>
<h1>My App</h1>
<Suspense fallback={<div>Loading...</div>}>
<LazyLoadedComponent />
</Suspense>
</div>
);
}
export default App;
์ ๊ฐ์ ๊ฒฝ์ฐ ์ ์ฉ์ ํด์ฃผ๋ 3์ ์ ๋ ์ฑ๋ฅ์ด ์ฌ๋ผ๊ฐ ํจ๊ณผ๋ฅผ ๋ดค์ต๋๋ค. (์์ง ๊ฐ๊ธธ์ด ๋จธ๋ค์…)
'๊ฐ๋ฐ ์๋๋ธ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
c++ ๋ฐ์ดํฐ ๊ตฌ์กฐ (0) | 2024.04.21 |
---|---|
Flux ๋์์ธ ํจํด (1) (0) | 2023.09.17 |
github action .env file ์ถ๊ฐ (0) | 2023.08.11 |
์น ํ์ด์ง ์ฑ๋ฅํฅ์ (0) | 2023.08.02 |
promise (0) | 2023.05.21 |