피드로 돌아가기
Learn React useMemo the Right Way — Re-Renders, Optimization,Dependencies & useEffect
Dev.toDev.to
Frontend

useMemo를 통한 Expensive Calculation 캐싱 및 불필요한 Re-render 비용 제거

Learn React useMemo the Right Way — Re-Renders, Optimization,Dependencies & useEffect

Kathirvel S2026년 5월 14일11beginner

Context

React의 기본 렌더링 메커니즘인 State 및 Props 변경에 따른 전체 컴포넌트 재실행 구조 분석. 대규모 데이터 필터링이나 정렬과 같은 고비용 연산이 Re-render마다 반복 실행되어 발생하는 성능 저하 문제 식별.

Technical Solution

  • Memoization 기법을 적용하여 연산 결과값을 메모리에 캐싱하는 useMemo 훅 도입
  • Dependency Array를 통한 의존성 추적 시스템 구축으로 특정 값 변경 시에만 연산을 재수행하는 조건부 실행 로직 설계
  • useEffect의 Side Effect 처리와 구분되는 '값의 반환(Return Value)' 중심의 최적화 파이프라인 구성
  • 불필요한 메모리 오버헤드 방지를 위해 연산 복잡도가 낮은 단순 로직은 일반 변수로 처리하는 선택적 최적화 전략 채택
  • 컴포넌트 생명주기 내에서 불변성을 유지해야 하는 계산 결과의 효율적 재사용 구조 구현

- 고비용 연산(Large Array Filtering, Sorting) 유무를 먼저 확인 후 useMemo 적용 여부 결정 - Dependency Array에 누락된 값이 없는지 검토하여 Stale Closure 및 데이터 불일치 방지 - 단순 산술 연산에 useMemo를 남용하여 발생하는 훅 자체의 오버헤드 및 가독성 저하 경계 - 값을 생성하는 useMemo와 액션을 수행하는 useEffect의 역할 분리 설계 준수

원문 읽기