기본값은 테스트나 provider 누락 상황을 고려해 의미 있게 둡니다.
context boundary
Context API는 provider 경계 안의 읽기 전용 통로를 만든다
createContext, Provider, useContext를 쓰면 테마나 로그인 사용자처럼 여러 하위 컴포넌트가 읽는 값을 props 없이 전달할 수 있습니다.
value 객체는 상태와 조작 함수를 담되 불필요한 값까지 섞지 않습니다.
하위 컴포넌트는 필요한 context만 읽고 provider 밖 사용을 방어합니다.
테마처럼 넓게 읽지만 변경 빈도가 낮은 값에 잘 맞습니다.
테마와 인증처럼 변경 이유가 다르면 context를 나눕니다.
value 객체 재생성이 불필요한 렌더를 만들 수 있는지 봅니다.
provider 범위를 필요한 subtree로 제한합니다.