React μ νμ νμ΄λλ μ΄μ μ λν΄ μμ보μΈμ. μ°μ μμ κΈ°λ° μ»΄ν¬λνΈ λ‘λ©μ ν΅ν΄ μ΄κΈ° νμ΄μ§ λ‘λλ₯Ό μ΅μ ννκ³ μ¬μ©μ κ²½νμ κ°μ νλ κ°λ ₯ν κΈ°μ μ λλ€.
React μ νμ νμ΄λλ μ΄μ : μ°μ μμ κΈ°λ° μ»΄ν¬λνΈ λ‘λ©μΌλ‘ μ±λ₯ ν₯μ
μ€λλ λΉ λ₯΄κ² λ³ννλ λμ§νΈ μΈμμμ μΉμ¬μ΄νΈ μ±λ₯μ κ°μ₯ μ€μν©λλ€. μ¬μ©μλ€μ μ¦κ°μ μΈ λ§μ‘±μ κΈ°λνλ©°, λ‘λ© μκ°μ΄ κΈΈμ΄μ§λ©΄ λΆλ§κ³Ό μ΄νλ‘ μ΄μ΄μ§ μ μμ΅λλ€. μ¬μ©μ μΈν°νμ΄μ€ ꡬμΆμ μν μΈκΈ° μλ μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬μΈ Reactλ μ±λ₯μ μ΅μ ννκΈ° μν λ€μν κΈ°μ μ μ 곡ν©λλ€. κ·Έμ€ νλλ‘ μλΉν μ£Όλͺ©μ λ°κ³ μλ κΈ°μ μ΄ λ°λ‘ μ νμ νμ΄λλ μ΄μ (Selective Hydration)μ λλ€.
React μ νμ νμ΄λλ μ΄μ μ΄λ 무μμΈκ°μ?
μ νμ νμ΄λλ μ΄μ μ μ΄κΈ° νμ΄μ§ λ‘λ μ React μ ν리μΌμ΄μ μ ν΅μ¬μ μΈ λΆλΆλ§ μ νμ μΌλ‘ νμ΄λλ μ΄μ (μνΈμμ© κ°λ₯νκ² λ§λλ κ³Όμ )νλ μ±λ₯ μ΅μ ν κΈ°μ μ λλ€. μ 체 μ ν리μΌμ΄μ μ ν λ²μ νμ΄λλ μ΄μ νλ κ²μ μκ°μ΄ λ§μ΄ 걸릴 μ μμΌλ―λ‘, μ νμ νμ΄λλ μ΄μ μ μ¬μ©μμκ² μ¦μ 보μ΄κ±°λ μνΈμμ©μ΄ νμν μ»΄ν¬λνΈμ μ°μ μμλ₯Ό λ‘λλ€. λ μ€μν λ€λ₯Έ μ»΄ν¬λνΈλ€μ λμ€μ, νμμ λ°λΌ(보μ΄κ² λ λ) λλ μ΄κΈ° νμ΄λλ μ΄μ μ΄ μλ£λ νμ νμ΄λλ μ΄μ λ©λλ€.
λ€μκ³Ό κ°μ΄ μκ°ν΄ λ³Ό μ μμ΅λλ€: 미리 μ§μ΄μ§ μ§μ λ°°μ‘νλ€κ³ μμν΄ λ³΄μΈμ. μ μ£ΌμΈμ΄ μ΄μ¬ μ€κΈ° μ μ λͺ¨λ λ°©μ κΎΈλ―Έλ λμ , κ±°μ€, μ£Όλ°©, μΉ¨μ€κ³Ό κ°μ νμμ μΈ κ³΅κ°μ μ°μ μ μΌλ‘ κΎΈλ°λλ€. ν μ€νΌμ€λ κ²μ€νΈλ£Έκ³Ό κ°μ λ€λ₯Έ λ°©λ€μ μ΄κΈ° κ²½νμ μν₯μ μ£Όμ§ μμΌλ©΄μ λμ€μ κΎΈλ° μ μμ΅λλ€. μ νμ νμ΄λλ μ΄μ μ React μ»΄ν¬λνΈμ λμΌν μμΉμ μ μ©ν©λλ€.
λ¬Έμ μ : μ 체 νμ΄λλ μ΄μ κ³Ό κ·Έ νκ³
μ ν΅μ μΈ React νμ΄λλ μ΄μ μ λ λΉ λ₯Έ 첫 μ½ν μΈ νμΈνΈ(FCP)λ₯Ό μ 곡νκ³ SEOλ₯Ό κ°μ νκΈ° μν΄ μλ²μμ μ ν리μΌμ΄μ μ λ λλ§(μλ² μ¬μ΄λ λ λλ§ - SSR)νλ κ²μ ν¬ν¨ν©λλ€. μλ²λ λΈλΌμ°μ μ HTMLμ 보λ΄κ³ , λΈλΌμ°μ λ μλ°μ€ν¬λ¦½νΈ λ²λ€μ λ€μ΄λ‘λν©λλ€. μλ°μ€ν¬λ¦½νΈκ° λ‘λλλ©΄, Reactλ μ μ HTMLμ "νμ΄λλ μ΄μ "νμ¬ μ΄λ²€νΈ 리μ€λλ₯Ό λΆμ΄κ³ μ»΄ν¬λνΈκ° μνΈμμ©ν μ μλλ‘ λ§λλλ€.
νμ§λ§ μ 체 νμ΄λλ μ΄μ μ λ³λͺ© νμμ μΌμΌν¬ μ μμ΅λλ€. μ΄κΈ° HTMLμ΄ λΉ λ₯΄κ² νμλλλΌλ, μ 체 νμ΄λλ μ΄μ κ³Όμ μ΄ μλ£λ λκΉμ§ μ¬μ©μλ μ ν리μΌμ΄μ κ³Ό μνΈμμ©ν μ μμ΅λλ€. μ΄λ νΉν ν¬κ³ 볡μ‘ν μ ν리μΌμ΄μ μμ μ²΄κ° μλλ₯Ό μ νμν€κ³ μ’μ§ μμ μ¬μ©μ κ²½νμΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€.
μ 체 νμ΄λλ μ΄μ μ νκ³:
- κΈ΄ μνΈμμ©κΉμ§μ μκ°(TTI): μ 체 νμ΄λλ μ΄μ μ μ ν리μΌμ΄μ μ΄ μμ ν μνΈμμ© κ°λ₯ν΄μ§κΈ°κΉμ§μ μκ°μ μ§μ°μν΅λλ€.
- CPU μ§μ½μ : νμμ μ΄μ§ μμ μ»΄ν¬λνΈλ₯Ό νμ΄λλ μ΄μ νλ κ²μ κ·μ€ν CPU 리μμ€λ₯Ό μλͺ¨νμ¬ μ λ°μ μΈ μ±λ₯μ μν₯μ μ€λλ€.
- μ¦κ°λ λ²λ€ ν¬κΈ°: λ ν° μλ°μ€ν¬λ¦½νΈ λ²λ€μ λ€μ΄λ‘λνκ³ νμ±νλ λ° λ μ€λ κ±Έλ € λ¬Έμ λ₯Ό λμ± μ νμν΅λλ€.
ν΄κ²°μ± : μ νμ νμ΄λλ μ΄μ κ³Ό μ°μ μμ λ‘λ©
μ νμ νμ΄λλ μ΄μ μ κ°λ°μκ° μ΄λ€ μ»΄ν¬λνΈλ₯Ό λ¨Όμ νμ΄λλ μ΄μ ν μ§ μ μ΄ν μ μκ² ν¨μΌλ‘μ¨ μ 체 νμ΄λλ μ΄μ μ νκ³λ₯Ό ν΄κ²°ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ κ°μ₯ μ€μν λΆλΆμ μ°μ μ²λ¦¬νμ¬ λ λΉ λ₯Έ μνΈμμ©κΉμ§μ μκ°(TTI)κ³Ό λ λΆλλ¬μ΄ μ¬μ©μ κ²½νμ 보μ₯ν μ μμ΅λλ€. λ μ€μν μ»΄ν¬λνΈμ νμ΄λλ μ΄μ μ μ§μ°μν΄μΌλ‘μ¨, λΈλΌμ°μ λ μ΄κΈ° λ·°λ₯Ό λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ λ λλ§νλ λ° μ§μ€ν μ μμ΅λλ€.
μ νμ νμ΄λλ μ΄μ μ μ΄μ :
- κ°μ λ μνΈμμ©κΉμ§μ μκ°(TTI): μ€μν μ»΄ν¬λνΈλ₯Ό μ°μ μ²λ¦¬ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ΄ ν¨μ¬ λ 빨리 μνΈμμ© κ°λ₯ν΄μ§λλ€.
- κ°μλ CPU μ¬μ©λ: νμ΄λλ μ΄μ μ μ§μ°μν€λ©΄ ν΄λΌμ΄μΈνΈ μΈ‘μ CPU λΆνκ° μ€μ΄λ€μ΄ λ€λ₯Έ μμ μ μν 리μμ€λ₯Ό ν보ν μ μμ΅λλ€.
- λ λΉ λ₯Έ 첫 μ½ν μΈ νμΈνΈ(FCP): SSRμ΄ μ΄λ―Έ FCPλ₯Ό κ°μ νμ§λ§, μ νμ νμ΄λλ μ΄μ μ μ΄κΈ° λ·°λ₯Ό λ 빨리 μνΈμμ© κ°λ₯νκ² λ§λ€μ΄ μ²΄κ° μ±λ₯μ λμ± ν₯μμν΅λλ€.
- ν₯μλ μ¬μ©μ κ²½ν: λ λΉ λ₯΄κ³ λ°μμ±μ΄ μ’μ μ ν리μΌμ΄μ μ μ λ°μ μΌλ‘ λ λμ μ¬μ©μ κ²½νμΌλ‘ μ΄μ΄μ§λλ€.
- λ λμ SEO: ν₯μλ μ±λ₯μ κ²μ μμ§ μμμ κΈμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
React μ νμ νμ΄λλ μ΄μ ꡬν: κΈ°μ κ³Ό μμ
React μ νμ νμ΄λλ μ΄μ μ ꡬννλ λ° μ¬μ©ν μ μλ λͺ κ°μ§ κΈ°μ μ΄ μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ μ κ·Ό λ°©μ λͺ κ°μ§λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
1. React.lazyμ Suspense
React.lazyλ₯Ό μ¬μ©νλ©΄ μ»΄ν¬λνΈλ₯Ό λμ μΌλ‘ μν¬νΈνμ¬ μ½λλ₯Ό λ μμ μ²ν¬λ‘ λΆν ν μ μμ΅λλ€. Suspenseμ κ²°ν©νλ©΄ μ§μ° λ‘λ©λλ μ»΄ν¬λνΈλ₯Ό κ°μ Έμ€κ³ νμ΄λλ μ΄μ νλ λμ λ‘λ© μ€νΌλμ κ°μ ν΄λ°± UIλ₯Ό νμν μ μμ΅λλ€.
μμ :
import React, { Suspense, lazy } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
λ‘λ© μ€... μ΄ μμ μμ `MyComponent`λ μ§μ° λ‘λ©λ©λλ€. `Suspense` μ»΄ν¬λνΈλ `MyComponent`λ₯Ό κ°μ Έμ€κ³ νμ΄λλ μ΄μ νλ λμ "λ‘λ© μ€..."μ νμν©λλ€. μ΄λ₯Ό ν΅ν΄ λλ¨Έμ§ μ ν리μΌμ΄μ μ΄ `MyComponent`λ₯Ό κΈ°λ€λ¦¬μ§ μκ³ νμ΄λλ μ΄μ λ μ μμ΅λλ€.
μ 체μ μΈ λ§₯λ½: μ΄ μ κ·Ό λ°©μμ 볡μ‘ν νΌ, μΈν°λν°λΈ λ§΅ λλ νλ©΄ νλ¨(below the fold)μ μμμ κ°μ΄ μ΄κΈ° λ·°μ μ€μνμ§ μμ μ»΄ν¬λνΈμ μ μ©ν©λλ€.
2. `useEffect`λ₯Ό μ¬μ©ν μ‘°κ±΄λΆ νμ΄λλ μ΄μ
`useEffect` ν μ μ¬μ©νμ¬ νΉμ 쑰건μ λ°λΌ μ»΄ν¬λνΈλ₯Ό 쑰건λΆλ‘ νμ΄λλ μ΄μ ν μ μμ΅λλ€. μ΄λ νΉμ μ΄λ²€νΈ μ΄νλ μΌμ μκ°μ΄ μ§λ νμλ§ μνΈμμ©μ΄ νμν μ»΄ν¬λνΈμ νΉν μ μ©ν©λλ€.
μμ :
import React, { useState, useEffect } from 'react';
function MyComponent() {
const [isHydrated, setIsHydrated] = useState(false);
useEffect(() => {
setIsHydrated(true);
}, []);
return (
{isHydrated ? (
) : (
λ‘λ© μ€...
)}
);
}
μ΄ μμ μμ λ²νΌμ `useEffect` ν μ΄ μ€νλ νμλ§ λ λλ§λκ³ μνΈμμ©μ΄ κ°λ₯ν΄μ Έ μ¬μ€μ νμ΄λλ μ΄μ μ μ§μ°μν΅λλ€. κ·Έ μ μλ "λ‘λ© μ€..."μ΄ νμλ©λλ€.
μ 체μ μΈ λ§₯λ½: μ΄λ μ¬μ©μ μνΈμμ©μ΄ νμνκ±°λ μ¦μ μ¬μ©ν μ μλ μΈλΆ λ°μ΄ν°μ μμ‘΄νλ μ»΄ν¬λνΈμ μ μ©ν©λλ€.
3. 리μ‘νΈ μλ² μ»΄ν¬λνΈ (RSC)
리μ‘νΈ μλ² μ»΄ν¬λνΈ(RSC)λ React 18μ λμ λ νκΈ°μ μΈ κΈ°λ₯μΌλ‘, μ»΄ν¬λνΈλ₯Ό μ μ μΌλ‘ μλ²μμ λ λλ§ν μ μκ² ν΄μ€λλ€. RSCλ ν΄λΌμ΄μΈνΈ μΈ‘μμ νμ΄λλ μ΄μ λμ§ μμΌλ―λ‘ μλ°μ€ν¬λ¦½νΈ λ²λ€μ΄ νμ νκ² μμμ§κ³ μ±λ₯μ΄ ν₯μλ©λλ€. λ°λ©΄μ ν΄λΌμ΄μΈνΈ μ»΄ν¬λνΈλ νμμ κ°μ΄ νμ΄λλ μ΄μ λ©λλ€.
RSCλ ν΄λΌμ΄μΈνΈ μ»΄ν¬λνΈλ§ νμ΄λλ μ΄μ νλ©΄ λλ―λ‘ μ묡μ μΌλ‘ μ νμ νμ΄λλ μ΄μ μ κ°λ₯νκ² ν©λλ€. μ΄λ¬ν κ΄μ¬μ¬ λΆλ¦¬λ μ±λ₯ μ΅μ νλ₯Ό μ©μ΄νκ² νκ³ λΈλΌμ°μ λ‘ μ μ‘λλ μλ°μ€ν¬λ¦½νΈμ μμ μ€μ¬μ€λλ€.
μμ (κ°λ μ ):
// μλ² μ»΄ν¬λνΈ (νμ΄λλ μ΄μ
μμ)
async function ServerComponent() {
const data = await fetchData(); // μλ²μμ λ°μ΄ν° κ°μ Έμ€κΈ°
return {data.name};
}
// ν΄λΌμ΄μΈνΈ μ»΄ν¬λνΈ (νμ΄λλ μ΄μ
νμ)
'use client'
import { useState } from 'react';
function ClientComponent() {
const [count, setCount] = useState(0);
return (
);
}
μ΄ μμ μμ `ServerComponent`λ μλ²μμ λ°μ΄ν°λ₯Ό κ°μ Έμ μ μ μ½ν μΈ λ₯Ό λ λλ§ν©λλ€. ν΄λΌμ΄μΈνΈμμλ μ΄λ ν νμ΄λλ μ΄μ λ νμνμ§ μμ΅λλ€. λ°λ©΄μ `ClientComponent`λ μνΈμμ©μ΄ κ°λ₯νλ©° μνλ₯Ό κ΄λ¦¬νκΈ° μν΄ νμ΄λλ μ΄μ μ΄ νμν©λλ€.
μ 체μ μΈ λ§₯λ½: RSCλ μ½ν μΈ κ° λ§μ μΉμ , λ°μ΄ν° κ°μ Έμ€κΈ°, ν΄λΌμ΄μΈνΈ μΈ‘ μνΈμμ©μ΄ νμ μλ μ»΄ν¬λνΈμ μ΄μμ μ λλ€. Next.js 13 μ΄μκ³Ό κ°μ νλ μμν¬λ RSCλ₯Ό μ κ·Ήμ μΌλ‘ νμ©ν©λλ€.
4. μλνν° λΌμ΄λΈλ¬λ¦¬
μ νμ νμ΄λλ μ΄μ μ ꡬννλ λ° λμμ΄ λλ μ¬λ¬ μλνν° λΌμ΄λΈλ¬λ¦¬κ° μμ΅λλ€. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μ’ μ’ νλ‘μΈμ€λ₯Ό λ¨μννκΈ° μν μΆμνμ μ νΈλ¦¬ν°λ₯Ό μ 곡ν©λλ€. λͺ κ°μ§ μΈκΈ° μλ μ΅μ μ λ€μκ³Ό κ°μ΅λλ€:
- `react-hydration-on-demand`: μ»΄ν¬λνΈλ₯Ό νμμ λ°λΌ νμ΄λλ μ΄μ νκΈ° μν΄ νΉλ³ν μ€κ³λ λΌμ΄λΈλ¬λ¦¬μ λλ€.
- `react-lazy-hydration`: κ°μμ±μ λ°λΌ μ»΄ν¬λνΈλ₯Ό μ§μ° λ‘λ©νκ³ νμ΄λλ μ΄μ νκΈ° μν λΌμ΄λΈλ¬λ¦¬μ λλ€.
μ νμ νμ΄λλ μ΄μ ꡬνμ μν λͺ¨λ² μ¬λ‘
μ νμ νμ΄λλ μ΄μ μ ν¨κ³Όμ μΌλ‘ νμ©νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμΈμ:
- μ€μ μ»΄ν¬λνΈ μλ³: μ ν리μΌμ΄μ μ μ μ€νκ² λΆμνμ¬ μ΄κΈ° μ¬μ©μ κ²½νμ νμμ μΈ μ»΄ν¬λνΈλ₯Ό μλ³νμΈμ. μ΄λ¬ν μ»΄ν¬λνΈλ νμ΄λλ μ΄μ μ°μ μμλ₯Ό λμ¬μΌ ν©λλ€. λ λλ§ μ±λ₯μ λΆμνκΈ° μν΄ Chrome DevToolsμ κ°μ λꡬλ₯Ό μ¬μ©νλ κ²μ κ³ λ €νμΈμ.
- νμμ μ΄μ§ μμ μ»΄ν¬λνΈ μ§μ°: μ¦μ 보μ΄κ±°λ μνΈμμ©νμ§ μλ μ»΄ν¬λνΈλ₯Ό μλ³νκ³ νμ΄λλ μ΄μ μ μ§μ°μν€μΈμ.
- μ½λ λΆν μ¬μ©: μ½λ λΆν μ μ¬μ©νμ¬ μ ν리μΌμ΄μ μ λ μμ μ²ν¬λ‘ λλμ΄ μ΄κΈ° μλ°μ€ν¬λ¦½νΈ λ²λ€ ν¬κΈ°λ₯Ό μ€μ΄μΈμ.
- μ±λ₯ μΈ‘μ λ° λͺ¨λν°λ§: μ±λ₯ λͺ¨λν°λ§ λꡬλ₯Ό μ¬μ©νμ¬ μ νμ νμ΄λλ μ΄μ μ΄ μ ν리μΌμ΄μ μ±λ₯μ λ―ΈμΉλ μν₯μ μΆμ νμΈμ. μ£Όμ μ§νμλ μνΈμμ©κΉμ§μ μκ°(TTI), 첫 μ½ν μΈ νμΈνΈ(FCP), μ΅λ μ½ν μΈ νμΈνΈ(LCP)κ° ν¬ν¨λ©λλ€. Google PageSpeed Insights, WebPageTest, Lighthouseμ κ°μ λꡬλ λ§€μ° μ μ©ν©λλ€.
- μ² μ ν ν μ€νΈ: λ€μν κΈ°κΈ°μ λΈλΌμ°μ μμ μ ν리μΌμ΄μ μ ν μ€νΈνμ¬ μ νμ νμ΄λλ μ΄μ μ΄ μμλλ‘ μλνλμ§ νμΈνμΈμ. μ£μ§ μΌμ΄μ€μ μ μ¬μ μΈ νμ΄λλ μ΄μ μ€λ₯μ μ£Όμλ₯Ό κΈ°μΈμ΄μΈμ.
- μ κ·Όμ± κ³ λ €: νμ΄λλ μ΄μ μ λ΅μ΄ μ κ·Όμ±μ λΆμ μ μΈ μν₯μ λ―ΈμΉμ§ μλλ‘ νμΈμ. μ κ·Όμ± μλ μ¬μ©μ κ²½νμ μ μ§νκΈ° μν΄ μ μ ν ν΄λ°± μ½ν μΈ μ ARIA μμ±μ μ 곡νμΈμ.
- μ±λ₯κ³Ό 볡μ‘μ±μ κ· ν: μ νμ νμ΄λλ μ΄μ μ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μμ§λ§ μ½λλ² μ΄μ€μ 볡μ‘μ±μ λνκΈ°λ ν©λλ€. μ΄μ κ³Ό μΆκ°λ 볡μ‘μ±μ μ μ€νκ² λΉκ΅νκ³ μ ν리μΌμ΄μ μ νμμ λ°λΌ μ μ ν κΈ°μ μ μ ννμΈμ.
μ€μ μ¬λ‘ λ° μΌμ΄μ€ μ€ν°λ
μ¬λ¬ νμ¬κ° React μ ν리μΌμ΄μ μ μ±λ₯μ κ°μ νκΈ° μν΄ μ νμ νμ΄λλ μ΄μ μ μ±κ³΅μ μΌλ‘ ꡬννμ΅λλ€. λͺ κ°μ§ μλ λ€μκ³Ό κ°μ΅λλ€:
- μ μμκ±°λ μΉμ¬μ΄νΈ: μ μμκ±°λ μ¬μ΄νΈλ μ’ μ’ μ νμ νμ΄λλ μ΄μ μ μ¬μ©νμ¬ μν λͺ©λ‘κ³Ό μ₯λ°κ΅¬λμ λ λλ§ λ° νμ΄λλ μ΄μ μ μ°μ μ²λ¦¬ν©λλ€. μν μΆμ²μ΄λ μ¬μ©μ 리뷰μ κ°μ λ μ€μν μ»΄ν¬λνΈλ λμ€μ νμ΄λλ μ΄μ λ©λλ€. μ΄λ λ λΉ λ₯Έ μ΄κΈ° νμ΄μ§ λ‘λμ λ λΆλλ¬μ΄ μΌν κ²½νμΌλ‘ μ΄μ΄μ§λλ€.
- λ΄μ€ μΉμ¬μ΄νΈ: λ΄μ€ μΉμ¬μ΄νΈλ ν€λλΌμΈκ³Ό κΈ°μ¬ μμ½μ νμ΄λλ μ΄μ μ μ°μ μ²λ¦¬νκ³ , μλ² λλ λΉλμ€λ μμ λ―Έλμ΄ νΌλμ νμ΄λλ μ΄μ μ μ§μ°μν¬ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ μ 체 νμ΄μ§κ° λ‘λλ λκΉμ§ κΈ°λ€λ¦¬μ§ μκ³ μ΅μ λ΄μ€μ λΉ λ₯΄κ² μ κ·Όν μ μμ΅λλ€.
- μμ λ―Έλμ΄ νλ«νΌ: μμ λ―Έλμ΄ νλ«νΌμ μ νμ νμ΄λλ μ΄μ μ μ¬μ©νμ¬ μ¬μ©μ νΌλμ μλ¦Όμ νμ΄λλ μ΄μ μ μ°μ μ²λ¦¬ν μ μμ΅λλ€. νλ‘ν νμ΄μ§λ μ€μ λ©λ΄μ κ°μ λ μ€μν μ»΄ν¬λνΈλ λμ€μ νμ΄λλ μ΄μ λ μ μμ΅λλ€.
- λμ보λ μ ν리μΌμ΄μ : 볡μ‘ν λμ보λλ ν° μ΄μ μ μ»μ μ μμ΅λλ€. μ°¨νΈ, κ·Έλν, λ°μ΄ν° ν μ΄λΈμ νμμ λ°λΌ λ‘λνμ¬ μ΄κΈ° λ‘λ μ§μ°μ λ°©μ§ν μ μμ΅λλ€. νν°λ§ λ° μ λ ¬κ³Ό κ°μ μνΈμμ© μμλ₯Ό μ°μ μ²λ¦¬νμΈμ.
React νμ΄λλ μ΄μ μ λ―Έλ λν₯
React νμ΄λλ μ΄μ μ λ―Έλλ λ€μ λΆμΌμ μ§μμ μΈ μ°κ΅¬ κ°λ°μ μν΄ νμ±λ κ°λ₯μ±μ΄ λμ΅λλ€:
- μλ μ νμ νμ΄λλ μ΄μ : μ°κ΅¬μλ€μ μ€μλμ κ°μμ±μ λ°λΌ νμ΄λλ μ΄μ ν μ»΄ν¬λνΈλ₯Ό μλμΌλ‘ μλ³νκ³ μ°μ μμλ₯Ό μ νλ κΈ°μ μ νꡬνκ³ μμ΅λλ€. μ΄λ μλ ꡬμ±μ νμμ±μ μμ κ³ νλ‘μΈμ€λ₯Ό λμ± λ¨μνν μ μμ΅λλ€.
- μΈλΆνλ νμ΄λλ μ΄μ : λ―Έλμ νμ΄λλ μ΄μ μ λ΅μ νμ΄λλ μ΄μ νλ‘μΈμ€μ λν΄ ν¨μ¬ λ μΈλΆνλ μ μ΄λ₯Ό ν¬ν¨νμ¬ κ°λ°μκ° κ°λ³ μμλ μ»΄ν¬λνΈμ μΌλΆλ₯Ό νμ΄λλ μ΄μ ν μ μκ² ν μ μμ΅λλ€.
- μλ²λ¦¬μ€ ν¨μμμ ν΅ν©: μλ²λ¦¬μ€ ν¨μλ₯Ό μ¬μ©νμ¬ νμμ λ°λΌ μ»΄ν¬λνΈλ₯Ό 미리 λ λλ§νκ³ νμ΄λλ μ΄μ νμ¬ μ±λ₯μ λμ± μ΅μ ννκ³ ν΄λΌμ΄μΈνΈ μΈ‘μ λΆνλ₯Ό μ€μΌ μ μμ΅λλ€.
- κ³ κΈ λꡬ: νμ΄λλ μ΄μ μ±λ₯μ λΆμνκ³ μ΅μ νν μμμ μλ³νκΈ° μν΄ κ°μ λ λκ΅¬κ° μ€μν΄μ§ κ²μ λλ€. DevTools ν΅ν©μ κ°λ°μμκ² νμ΄λλ μ΄μ νλ‘μΈμ€μ λν μμΈν ν΅μ°°λ ₯μ μ 곡ν κ²μ λλ€.
κ²°λ‘
React μ νμ νμ΄λλ μ΄μ μ React μ ν리μΌμ΄μ μ μ±λ₯μ μ΅μ ννκΈ° μν κ°λ ₯ν κΈ°μ μ λλ€. μ€μν μ»΄ν¬λνΈμ νμ΄λλ μ΄μ μ μ°μ μ²λ¦¬νκ³ λ μ€μν μ»΄ν¬λνΈμ νμ΄λλ μ΄μ μ μ§μ°μν΄μΌλ‘μ¨ μνΈμμ©κΉμ§μ μκ°(TTI)μ ν¬κ² κ°μ νκ³ CPU μ¬μ©λμ μ€μ΄λ©° μ λ°μ μΈ μ¬μ©μ κ²½νμ ν₯μμν¬ μ μμ΅λλ€. Reactκ° κ³μ λ°μ ν¨μ λ°λΌ μ νμ νμ΄λλ μ΄μ μ μ±λ₯ μ΅μ ν λꡬ ν€νΈμμ μ μ λ μ€μν λΆλΆμ΄ λ κ²μ λλ€.
μ΄ κ°μ΄λμμ μ€λͺ ν μ νμ νμ΄λλ μ΄μ μ μ리λ₯Ό μ΄ν΄νκ³ λͺ¨λ² μ¬λ‘λ₯Ό ꡬνν¨μΌλ‘μ¨ μ¬μ©μλ₯Ό λ§μ‘±μν€λ λ λΉ λ₯΄κ³ , λ λ°μμ±μ΄ μ’κ³ , λ λ§€λ ₯μ μΈ React μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€.
μ°μ μμ κΈ°λ° μ»΄ν¬λνΈ λ‘λ©μ νμ λ°μλ€μ¬ React μ ν리μΌμ΄μ μ μ μ¬λ ₯μ μ΅λν λ°ννμΈμ. λ Όμλ κΈ°μ μ μ€ννκ³ μ ν리μΌμ΄μ μ μ±λ₯μ λͺ¨λν°λ§νμ¬ νμ΄λλ μ΄μ μ λ΅μ λ―ΈμΈ μ‘°μ νμΈμ. κ²°κ³Όλ μ€μ€λ‘ λ§ν΄μ€ κ²μ λλ€.