학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 97 · 실전 면접 답변

메모이제이션은 언제 이득이 있나요?

이렇게 답해 보세요 (핵심 답변)

메모이제이션은 동일한 입력에 대한 계산 결과나 컴포넌트 출력, 함수 참조를 재사용해 반복 실행 비용을 줄이는 최적화 기법입니다. 모든 곳에 습관적으로 적용하기보다, 입력값이 자주 바뀌지 않으면서 재계산 비용이나 하위 트리 재렌더 비용이 의존성 비교 및 캐시 유지 비용보다 뚜렷하게 클 때 실질적인 이득이 있습니다. 따라서 먼저 React Profiler 등으로 실제 병목 지점을 확인한 뒤 적용하고, 캐시가 비워지더라도 기능이 올바르게 동작하도록 순수한 계산에만 사용해야 합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 의존성 값이 매 렌더마다 바뀌는 구조라면 이전 값을 비교하는 오버헤드만 추가되고 캐시 재사용 이득은 얻지 못합니다.
  2. 메모이제이션은 성능 힌트일 뿐이므로 캐시 적중 여부에 비즈니스 로직의 정확성이 의존해서는 안 됩니다.

면접에서 자주 하는 실수

useMemo를 부작용(side effect)을 한 번만 실행하기 위한 수단이나 절대 지워지지 않는 영구 상태 저장소처럼 사용하는 것은 잘못된 패턴입니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 97번을 바탕으로 질문과 답변을 새로 정리했습니다.

← React