Memoization 의 memo
- 동일한 계산을 반복적으로 해야할 때, 이전에 계산한 값을 메모리에 저장하여, 중복적인 계산을 제거하는 방법
- 전체적인 실행속도를 개선시킬 수 있다.
- Component가 재실행되는 조건을 제어하는 함수
- Component는 Props 또는 State가 변경되면, 해당 Component를 재실행하며, 해당 Component의 Child Component들도 모두 재실행 된다.
- Props과 관련이 없는 Component는 재실행되지 않도록 막는 방법.
- Context를 사용하는 경우 memo는 동작하지 않고, 오직 Props에 대해서만 체크한다.
memo 는 남발해서는 안된다!
Props를 비교하는 행위 자체가 매우 큰 비용의 연산.
자주 발생하거나, 많은 컴포넌트에서 발생할 경우 오히려 성능이 저하된다.
memo 는 Component에 전달되는 Props가 변경되었을 때만 컴포넌트를 다시 실행한다.
==> 위 두가지는 Reference Type(메모리)
memo 테스트를 위해 Context는 제거.
memo는 Context 안에서 동작되지 않는다.
memo 함수 안에 기존 함수를 넣어준다.