공유 값 선택
여러 깊은 자식이 필요하지만 중간 컴포넌트는 쓰지 않는 값을 고른다.
avoid drillingProvider value가 바뀌면 해당 context를 읽는 소비자가 다시 렌더될 수 있으므로 인증, 테마, 설정처럼 넓게 공유할 값과 자주 바뀌는 값을 분리해야 한다.
여러 깊은 자식이 필요하지만 중간 컴포넌트는 쓰지 않는 값을 고른다.
avoid drilling값이 필요한 가장 좁은 서브트리 위에 Provider를 둔다.
범위객체 value는 useMemo, 함수는 useCallback으로 불필요한 참조 변경을 줄인다.
identity자주 바뀌는 값과 거의 안 바뀌는 값을 별도 context로 나눈다.
리렌더링 경계