캐시는 언제든 버려질 수 있다

같은 초기 색을 useMemouseState로 만들고, 폐기 이벤트를 던져 본다

useMemo와 useState로 만든 색이 캐시 폐기 이벤트(HMR·suspend·오프스크린)에서 어떻게 달라지는지 보여주는 실험

왼쪽 셋 = React가 캐시를 버리는 이유 · 오른쪽 = 의존성이 진짜로 바뀌는 경우

useMemo(() => getRandomColors(theme), [theme])
성능 힌트 · 캐시 폐기 시 재실행
재생성 0
useState(() => getRandomColors(theme))
영속 · lazy init은 한 번만
재생성 0
폐기 이벤트를 던져보세요.
판별 기준: 이 값이 재계산되면 틀린가(영속성이 정확성 조건) → useState/useRef · 그냥 느린가useMemo.