Skip to content

패치: ChangeSet을 이용한 렌더링 최적화로직 추가 #24

@nninnnin

Description

@nninnnin

ChangeSet 최적화는 수백·수천 개 엔티티 중 일부만 자주 바뀌는 상황에서 효과적이다.

스토어는 상태 변경 후 diff를 통해 바뀐 엔티티 ID 집합을 만들고, React 구독 레이어에서는 이 ChangeSet을 참고해 “내가 관심 있는 ID가 포함됐는가”를 검사한다. 포함되지 않았다면 onChange 호출을 생략해 불필요한 리렌더를 막을 수 있고, 그 결과 리스트·인스펙터 UI나 r3f 오브젝트 트리처럼 부분 관심 UI에서 큰 성능 이득을 얻을 수 있다.


useSyncExternalStore를 우리가 구현한 스토어와 컴포넌트 사이의 레이어로 두고, 상태 업데이트 비교의 결과인 ChangeSet을 통해 필요한 업데이트만을 수행할 수 있도록 구현한다.

  • ChangeSet을 이용한 렌더링 최적화로직 추가

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions