light와 dark 상태, toggleTheme 함수, 저장된 테마 복구 흐름을 한 경계에서 관리합니다.
global state regression
테마 변경 실습은 인증 상태와 화면 보호 흐름까지 함께 검증한다
ThemeContext와 AuthContext가 섞일 때 provider 순서, reducer action, 보호 라우트, localStorage 동기화를 같은 시나리오로 확인합니다.
login, logout, user, isAuthenticated를 reducer action으로 일관되게 전환합니다.
인증되지 않은 사용자는 제한 화면으로 보내고 로그인 후 접근 흐름을 복구합니다.
테마 토글 후 새로고침해도 선택값이 유지됩니다.
로그인 전후 내비게이션과 사용자 표시가 바뀝니다.
로그아웃하면 보호 페이지 접근이 차단됩니다.
컴포넌트가 필요한 context provider 안에서 렌더링됩니다.