피드로 돌아가기
What is React memo? How to improve React performance
Dev.toDev.to
Frontend

React.memo 기반 Shallow Comparison을 통한 불필요한 Re-render 제거 및 렌더링 최적화

What is React memo? How to improve React performance

Hugo Naili2026년 4월 28일11intermediate

Context

Parent Component의 State 업데이트 시 하위 모든 Child Component가 강제로 Re-render되는 React의 기본 렌더링 메커니즘으로 인한 성능 저하 발생. 특히 API 호출이나 복잡한 계산을 포함한 대규모 컴포넌트 트리 구조에서 렌더링 병목 현상이 심화되는 한계 노출.

Technical Solution

  • React.memo 래퍼 도입을 통한 Props 기반의 Shallow Comparison 수행 구조 설계
  • Primitive 타입의 값 변경 여부 확인 및 Object/Array의 Memory Reference 비교를 통한 Re-render 스킵 로직 적용
  • Deep Comparison의 높은 계산 비용으로 인한 성능 역전 현상을 방지하기 위해 Composition-based 패턴을 활용한 State 위치 최적화
  • useMemo를 통한 연산 결과 캐싱 및 useCallback을 통한 함수 참조 무결성 유지로 Memoization 효율 극대화
  • React Profiler 기반의 렌더링 빈도 및 소요 시간 정밀 측정으로 최적화 대상 컴포넌트 선별 전략 채택
  • 대규모 데이터 셋 처리 시 Pagination 및 Lazy Loading 병행을 통한 초기 렌더링 부하 분산

- [ ] React Profiler를 사용하여 실제 Re-render 횟수와 소요 시간을 측정했는가 - [ ] Props로 전달되는 Object나 함수가 렌더링마다 새로 생성되어 Memoization을 무효화하고 있지 않은가 - [ ] Deep Comparison 대신 State를 필요한 곳으로 하향 이동시키는 Composition 패턴을 검토했는가 - [ ] 5,000개 이상의 대규모 리스트 렌더링 시 Memoization 외에 Pagination 적용을 고려했는가

원문 읽기