μ€λμ Agendaλ
μ±λ₯κ³Ό μ΅μ νλ₯Ό νλ ꡬ체μ μΈ λ°©λ²
μ΄λ―Έμ§ μ΅μ ν,
μ½λ μ€ν리ν
,
μ§λ κ°μλ, μ±λ₯μ μ΄λ»κ² μΈ‘μ νλμ§ λ°°μ λ€λ©΄,
μ΄λ² κ°μμλ μ±λ₯μ μ΄λ»κ² κ°μ ν μ μμμ§λ₯Ό λ°°μ μ΅λλ€!
μ΄λ―Έμ§ μ΅μ ν,
μ΄λ―Έμ§ μ©λμ΄ λ무 ν¬λ€λ©΄, λ‘λ©λ μ€λ κ±Έλ¦¬κ³ λΈλΌμ°μ μ κ³ΌλΆνκ° κ±Έλ¦¬κΈ°λ ν©λλ€.
κ·Έλμ μ€ν 리μ§μ νλ©΄μ νμν μ¬μ΄μ¦λ³λ‘ μ΄λ―Έμ§λ₯Ό μ μ₯νκ³ ,
ν΄λΉ μμμ ν¬κΈ°μ λ§λ URLλ₯Ό λ겨주λ κ²μ΄ μ’λ€κ³ ν©λλ€.
μ΄λ―Έμ§ νμΌνμ₯μλ [svg, png, webp] κ° μμ΅λλ€.
μ ν¬ νλ‘μ νΈμμ svg νμΌμ λ°λ‘ νλ‘ νΈμλ νλ‘μ νΈμ μ½λλ‘ μ μ₯(local)νμ¬ μ¬μ©νκ³ ,
λλ€μμ μ΄λ―Έμ§ νμΌμ μλ²μμ λ°μ png νμΌμ΄μμ΅λλ€.
κ·Έλ¦¬κ³ ν΄λΉ μμ μ΄ν μ΄λ―Έμ§ νμΌλ€μ webpλ‘ μμ νλλ°μ!
κ·Έ μ΄μ λ λ€λ₯Έ μ΄λ―Έμ§ νμΌλ³΄λ€ νμ€ν μ μ μ©λμΌλ‘ 빨리 λ‘λλκΈ° λλ¬Έμ λλ€!
κ°μ₯ ν° μμμΈ, μλ¨ λ°°λ μ΄λ―Έμ§λ₯Ό
[ webpλ‘ λ³ν, λ λλ§ μ¬μ΄μ¦ X 2 ] λ‘ μμ νλλ,
μ μλ₯Ό 4μ ν₯μμν¬ μ μμκ³ , μ΄λ―Έμ§ νμΌ ν¬κΈ° λν νμ€ν μ€μ΄λ€μμ΅λλ€!
μ½λ μ€ν리ν (μ½λ λΆν )
→ μ²μμ λΆλ¬μ¬ μ½λκ° κ°μν΄, μ¬μ©μκ° λΉ νλ©΄μ 보λ μκ°μ μ€μΌ μ μμ΅λλ€.
μ΄λ₯Ό ꡬννλ λ°©λ²μ [ μ§μ° λ‘λ©, μΊμ± ] μΈλ°μ.
- μ§μ° λ‘λ©(Lazy Loading)
: μ¬μ©μμ μν΄ νμν λ, loadνμ¬ κ·Έ μ‘μ μ΄ λ°μνκΈ° μ κΉμ§λ μ»΄ν¬λνΈλ₯Ό λ‘λνμ§ μμ΅λλ€.
β· μ΄λ index.js μ¬μ΄μ¦κ° κ°μνλ©°, FCP, LCPλ κ°μνλ€κ³ νλλ°μ!
import React, { lazy, Suspense } from 'react';
import { Route, Routes } from 'react-router-dom
const Home = lazy(() => import('./pages/Home'));
const LoginPage = lazy(() => import('./pages/auth/LoginPage'));
const RegisterPage = lazy(() => import('./pages/auth/RegisterPage'));
...
const App = () => {
return (
<div className="App">
<Suspense fallback={<div>Loading...</div>}>
<Routes>
<Route path="/login" element={<LogInSelect />} />
<Route path="/login/personal" element={<LoginPage />} />
<Route path="/register/personal" element={<RegisterPage />} />
...
<Route path="/" element={<Home />} />
</Routes>
</Suspense>
</div>
);
};
export default App;
React.lazyλ₯Ό μ¬μ©ν΄μ κ° νμ΄μ§λ₯Ό λΆλ¬μμ£Όμμ΅λλ€!
κ·Έ κ²°κ³Ό..!
FCP μ±λ₯μ΄ λμ λκ² κ°μ λμμ§λ§,
SI, TBT, CLS λ±μ΄ μ νλμλ€μ..
μ΄ λΆλΆμ κ³ λ €νμ¬, μμΌλ‘ μ½λλ₯Ό μμ ν΄μΌκ² μ΅λλ€.
- μΊμ±
: μ»΄ν¬λνΈλ₯Ό μμ λ¨μλ‘ λλμ΄, μ 체λ₯Ό μλ‘κ³ μΉ¨νμ§ μκ³ λ λ³κ²½μ΄ νμν λΆλΆλ§ μ λ°μ΄νΈν μ μμ΅λλ€.
νκ³
μ, μ΄λ κ² 4νμ°¨ λμ μν°λ ν리μ¨λ³΄λ© νλ‘ νΈμλ μμ μ μκ°νμ΅λλ€! π
νμ 300-400λͺ μ μκ°μλ€κ³Ό ν¨κ» μμ μ λ£λλ°,
λ§μ λΆλ€κ³Ό ν¨κ» μ·¨μ μ΄λ κ°λ° μ΄μΌκΈ°λ₯Ό λλ μ μλ μμ€ν μκ°μ΄μμ΄μ.
κ°μ¬λμ΄ μκ°μλ€μ μ κ·Ήμ μΈ μ°Έμ¬λ₯Ό μ΄λμ΄λ΄μ μ λ€μν μ견μ λ£κ² λμκ³ ,
νλ°ν μ 보 곡μ λ‘ λ§μ μλ‘μ΄ μ§μμ μ»μ μ μμμ΅λλ€.
νΉν, μ§μμλ΅ μκ°μλ κ°μ¬λμ΄ λ€μν μ§λ¬Έμ μΉμ ν λ΅ν΄μ£Όμ μ
κ°λ°κ³Ό μ·¨μ μ κ΄ν λ€μνκ³ μ μ΅ν λ΅λ³λ€μ λ€μ μ μμμ΄μπ