질문 77 · 실전 면접 답변
PureComponent는 무엇을 비교하나요?
이렇게 답해 보세요 (핵심 답변)
PureComponent는 클래스 컴포넌트에서 이전 props·state와 다음 props·state를 얕게 비교(shallow comparison)해, 변경이 없으면 재렌더를 건너뛰도록 돕는 컴포넌트입니다. 최상위 프로퍼티의 참조나 원시값만 비교하기 때문에 중첩된 객체 내부를 직접 수정(mutation)하면 변경을 감지하지 못하고, 반대로 부모가 매번 새 객체나 인라인 함수를 만들어 넘기면 비교 최적화가 무력화됩니다. 따라서 불변성 유지와 실제 렌더 비용 확인이 선행되어야 효과를 볼 수 있습니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 얕은 비교는 Object.is 기반으로 1단계 키의 참조만 확인하므로 깊은 객체 트리를 모두 순회하는 깊은 비교보다 비교 비용이 작습니다.
- 참조가 바뀌었다는 사실이 곧 데이터 변경을 의미하도록 불변성을 지켜야 스킵 최적화가 안전하게 동작합니다.
면접에서 자주 하는 실수
PureComponent를 사용한다고 해서 자식 내부의 Context 업데이트나 모든 하위 렌더링이 무조건 차단되는 것은 아닙니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 77번을 바탕으로 질문과 답변을 새로 정리했습니다.