React/최적화/Lesson 19
React.memo
30분·theory
이 챕터
2/2
JavaScript
React.memo
💡 왜 배워야 할까요?
🎯
불필요한 리렌더링을 막아서 앱의 속도를 빠르게 합니다.
💼
리스트에서 수천 개 아이템을 렌더링할 때 성능 차이가 극적입니다.
⚡
면접에서 성능 최적화 질문의 단골 답변입니다.
🔗
실무에서 성능 문제 해결의 첫 번째 도구입니다.
🏢 실무에서는
실무에서는 검색 결과 리스트, 무한 스크롤 피드, 실시간 알림 같은 자주 업데이트되는 화면에서 React.memo를 사용합니다. 예를 들어 네이버 검색에서 검색어를 입력할 때마다 전체 결과 리스트가 리렌더링되지 않도록 각 검색 결과 아이템을 React.memo로 감싸서 성능을 유지합니다.
React.memo란?
React.memo
Props가 변경되지 않으면 리렌더링을 건너뛰는 고차 컴포넌트(HOC)입니다.
언제 사용?
- ▸부모가 자주 리렌더링되지만 자식 props는 안 변할 때
- ▸렌더링 비용이 큰 컴포넌트
- ▸리스트의 개별 아이템
React 19 변화
React Compiler가 자동으로 memo를 적용하므로 수동 사용이 줄어듭니다.
이 개념은 React 컴포넌트 개발에서 핵심적입니다. 리액트의 선언적 UI 패러다임을 이해하고, props와 state의 차이를 명확히 구분하세요. 컴포넌트는 입력(props)에 대해 항상 동일한 출력(JSX)을 반환하는 순수 함수처럼 동작해야 합니다.
💡 💡 React.memo 팁
- ▸React 19: Compiler 자동 처리 → 수동 memo 줄이기
- ▸객체/배열 Props: useMemo로 참조 안정화 필요
- ▸콜백 Props: useCallback으로 함수 참조 안정화
- ▸측정: React DevTools Profiler로 실제 효과 확인
이 개념은 React 컴포넌트 개발에서 핵심적입니다. 리액트의 선언적 UI 패러다임을 이해하고, props와 state의 차이를 명확히 구분하세요. 컴포넌트는 입력(props)에 대해 항상 동일한 출력(JSX)을 반환하는 순수 함수처럼 동작해야 합니다.
⚛️ React 패턴 — React.memo
React.memo을 React에서 어떻게 쓰는지 코드와 함께 단계별로 익혀보세요.
1
🧩
1. React.memo 사용 시나리오
이 기능이 필요한 상황.
↓
2
💻
2. 코드 작성
React.memo의 기본 사용법.
↓
3
🎨
3. 렌더링 결과
사용자가 보는 화면.
↓
4
💡
4. 실무 팁
흔한 함정과 베스트 프랙티스.
🎮 React.memo — 단계별 이해
각 단계를 클릭해 내용을 읽고 ✓ 이해했어요 버튼으로 진행률을 확인하세요.
🖥️ 실행 결과 — 렌더링된 React 컴포넌트
✏️ React 코드 수정하기 (클릭해서 열기)
⚛️ React 18 + Babel Standalone — 결과 먼저 확인 후 코드 편집기에서 직접 수정해볼 수 있습니다.
확인 퀴즈
React.memo는 어떻게 리렌더링을 방지하나요?
먼저 읽으면 좋은 개념: useTransition / useDeferredValue
다음 추천: Error Boundary + Suspense