02장, 리액트 햄심 요소 깊게 살펴보기 📑
in Study
React에 Redux를 적용하기 위한 공부
- 컴포넌트와 함수의 무거운 연산을 기억해 두는 메모제이션
메모제이션
✔ 메모제이션에는 비용이 든다.
- 렌더링 비용
- props 비교, 렌더링 또는 재 계산이 필요한지 확인하는 비용
- 이전 결과물 캐싱 비용
- 메모리에 이전 결과물을 저장해놓으므로 메모리 저장 비용
- 역지불 비용
- props에 대한 얕은 비교
✔ 메모제이션을 하지 않았을 때는 다음과 같은 문제가 발생한다.
렌더링을 함으로써 발생하는 비용
컴포넌트 내부의 복잡한 로직의 재실행
위 두가지 모두가 자식 컴포넌트에서 반복적 발생
리액트가 구 트리과 신규 트리 비교
메모제이션은 항상 옳다..?!? 🤐
리렌더링이 발생할 때, 메모제이션이 없으면 모든 객체는 재생성되고, 결과적으로 참조가 달라진다.
일반적으로 props에 대한 얕은 비교를 수행하는 것보다 리액트 컴포넌트 결과물을 다시 계산하고, 실제 DOM까지 처리하는 작업이 더 무겁다.
조금이라도 로직이 들어가있는 컴포넌트라면 메모제이션이 성능 향상에 도움을 줄 수 있다.
즉, 어느 부분에서 비용이 더 많이 들지를 판단 하고, 메모제이션을 해야한다.