관심사별 Context 분리
인증 변경 때문에 테마 소비 컴포넌트까지 렌더링되지 않도록 값을 책임별로 나눕니다.
Provider의 value가 바뀌면 그 Context를 읽는 컴포넌트들이 다시 렌더링됩니다. 값의 책임을 나누고 범위를 좁히는 것이 가장 기본적인 성능 관리입니다.
인증 변경 때문에 테마 소비 컴포넌트까지 렌더링되지 않도록 값을 책임별로 나눕니다.
앱 전체 Provider보다 기능 영역 Provider가 더 작은 렌더 범위를 만들 수 있습니다.
매 렌더마다 새 객체를 만들면 구독자가 깨어납니다. 필요한 경우 memoization을 함께 봅니다.
검색어, hover, 임시 form 상태는 Context보다 컴포넌트 내부 상태가 더 가볍습니다.
읽는 포인트 Context 최적화의 출발점은 특별한 기법보다 값의 책임 분리입니다. 같은 이유로 함께 바뀌는 값만 같은 Provider에 둡니다.