리렌더 원인 판별 기준
state 위치, props identity, context value, memoization boundary 항목을 측정 관점에서 나누고, 화면 상태와 사용자 조작이 어느 컴포넌트에서 바뀌는지 표시합니다.
측정리렌더링 최적화는 memo를 많이 붙이는 일이 아닙니다. 상태가 어디에 있고 어떤 참조가 바뀌는지 먼저 찾은 뒤 경계를 좁혀야 합니다.
state 위치, props identity, context value, memoization boundary 항목을 측정 관점에서 나누고, 화면 상태와 사용자 조작이 어느 컴포넌트에서 바뀌는지 표시합니다.
측정리렌더링 문제는 부모 컴포넌트, provider value, callback/object 생성 위치, memo 적용 지점을 나눠 측정합니다. 같은 조작에서 렌더 횟수와 commit 시간을 비교합니다.
렌더 원인값은 같아 보이지만 참조가 매 렌더마다 바뀌면 하위 트리가 반복해서 그려집니다. 같은 입력을 빠르게 반복해 render count가 어디서 증가하는지 확인합니다.
최적화 경계마지막에는 render count, Profiler commit 시간, props diff, memo 적용 전후 비교를 남겨 느린 입력이 어느 컴포넌트에서 줄었는지 다시 확인합니다.
close질문: 어떤 state, props, context 변경이 불필요한 하위 렌더를 만드는가
순서: state 변경이 렌더를 부르는 조건 파악하기 -> Profiler로 느린 commit과 원인 컴포넌트 묶기 -> memoization 적용 전후를 같은 조작으로 비교하기
위험: 측정 없이 memo를 붙이면 참조 흔들림은 그대로 남고 의존성 관리 비용만 늘어납니다.