Context Design

Context 공유 범위와 비용

Context는 props drilling을 줄여 주지만 value가 바뀌면 소비자들이 다시 렌더링된다. 전역처럼 보이는 데이터일수록 범위를 작게 설계한다.

1

공유 데이터

테마, 인증, 언어처럼 여러 깊이에서 필요한 값인지 확인한다.

2

Provider 범위

앱 전체가 아니라 필요한 서브트리만 감쌀 수 있는지 본다.

3

value 안정성

객체와 함수가 매 렌더마다 새로 만들어지는지 점검한다.

4

소비자 분리

자주 바뀌는 값과 드문 값은 Context를 나눠 영향 범위를 줄인다.

default value

기본값은 디버깅 힌트

Provider 밖에서 사용될 때 드러나는 안전한 기본값이나 에러 경계를 둔다.

memoize

value 참조 안정화

useMemouseCallback으로 불필요한 변경을 줄인다.

split

읽기와 쓰기 분리

상태 값과 dispatch를 나누면 변경 빈도에 맞춰 소비자를 줄일 수 있다.