목록 보기
상태 관리 라이브러리 Zustand
프론트엔드

상태 관리 라이브러리 Zustand

넥스트리
넥스트리
2023년 6월 9일

두줄요약

Zustand의 상태 관리가 클로저와 React의 external store 구독으로 동작하는 방식을 설명했습니다. 또한 tearing 문제와 useSyncExternalStore의 역할을 통해 내부 원리를 따라 만들어 보았습니다.

핵심 내용

  • Zustand의 상태 관리 구조를 클로저 기반으로 설명
  • createStore, setState, subscribe, getState의 관계와 역할 정리
  • React 18의 external store 구독을 위한 useSyncExternalStore 연동 방식 설명
  • tearing 문제와 이를 피하기 위한 상태 구독 원리 분석

구조와 흐름

  • create 함수가 createStore를 호출해 초기 state와 변경 로직 구성
  • subscribe로 listeners를 등록하고 setState 시 일괄 실행
  • useSyncExternalStoreWithSelector가 변경 감지와 리렌더링 연결

적용해볼 점

  • 상태 관리 라이브러리도 내부 동작 원리까지 함께 이해할 필요성
  • external store와 React 18 Concurrency 조합에서의 일관성 검토
  • 직접 구현을 통해 store, 구독, 리렌더링 흐름 점검

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...