전역 상태를 간단하고 효율적으로 관리할 수 있게 도와주는 상태 관리 라이브러리
메모리 기반 상태 관리를 제공하며 상태가 브라우저 메모리(RAM)에 저장되어
앱이 살아 있는 동안만 유지된다. 상태 유지를 위해 주로 로컬스토리지와 함께 사용된다.
컴포넌트간의 데이터를 공유하기 위해선 상위 컴포넌트를 거쳐야 하는 Props Drilling을 없애고 컴포넌트간의 Store를 사이에 두어 여러 컴포넌트가 같은 데이터를 쉽게 보고 수정할 수 있는 중앙 저장소를 의미한다.
State와 Action을 통합 정의할 수 있고, 반환되는 훅으로 상태 접근과 액션 호출을
동시에 처리할 수 있다. 또한 필요한 상태만 선택적으로 구독(subscribe)해
불필요한 리렌더링을 방지할 수 있습니다
상태를 업데이트하는 함수로, create 함수 내부에서 사용됩니다. 기존 상태를
불변성을 유지하면서 부분적으로 변경할 수 있으며, 함수 형태로도 값을 갱신할 수 있어
복잡한 상태 계산도 가능합니다.
Zustand 상태를 브라우저의 로컬 스토리지(localStorage)나 세션 스토리지(sessionStorage)에
자동으로 저장하고 불러올 수 있게 해주는 미들웨어입니다. 페이지를 새로고침해도 상태가 유지되므로, 로그인 정보나 테마 설정 등 지속적인 상태 관리에 유용합니다.