목록 보기
상태 관리 라이브러리 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, 구독, 리렌더링 흐름 점검

다음 읽기

#React 주제를 다룬 다른 회사 글

상태 관리 라이브러리 vanilla-store

vanilla-store를 만든 배경과 내부 구조를 소개한 글입니다. React 외부 상태 동기화, 선택적 구독, 불필요한 리렌더링 완화가 핵심입니다.

네이버 페이
네이버 페이
프론트엔드

댓글 0개

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

댓글을 불러오는 중...