상태 관리 라이브러리가 동시 렌더링 환경에서 잘 동작할까 궁금할 때

React 18에서 도입된 동시 렌더링(Concurrent Rendering)은 UI 업데이트 시 렌더링이 “중단되거나(branch), 뒤로 미뤄지거나(defer), 쪼개져(time slicing)” 여러 단계로 일어날 수 있도록 해줍니다. 그런데 이 구조가 전역 상태 관리 라이브러리와 함께 동작할 때, 이론적으로 “tearing”(상태가 일시적으로 어긋나는 현상)이 발생할 가능성이 있습니다.


소개할 레포는 Zustand, Jotai 등 유명 상태 관리 라이브러리 저자가 만든 저장소로, 여러 React 상태 관리 라이브러리들을 대상으로 다양한 상황에서 실험했을 때 동시 렌더링에서 tearing이 발생하는지 테스트 결과를 정리해둔 곳입니다.


테스트 결과, Jotai는 모든 테스트를 통과해 동시 렌더링 대응이 우수하고, Zustand는 외부 스토어 설계 특성상 일부 제한이 있지만 실무에서 감수 할만한 수준인 것 같습니다.

React Query처럼 서버 상태 관리 라이브러리도 테스트에 포함되어 있는데, 일부 케이스에서 tearing이 발생하는 점을 확인할 수 있었습니다.


자세한 내용은 저장소 링크를 확인해 주세요.


https://github.com/dai-shi/will-this-react-global-state-work-in-concurrent-rendering

GitHub - dai-shi/will-this-react-global-state-work-in-concurrent-rendering: Test tearing and branching in React concurrent rendering

GitHub

GitHub - dai-shi/will-this-react-global-state-work-in-concurrent-rendering: Test tearing and branching in React concurrent rendering

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2025년 1월 21일 오전 9:19

 • 

저장 16조회 2,065

댓글 0

    함께 읽은 게시물

    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    www.youtube.com

    달레의 코딩 테스트

     • 

    댓글 1 • 저장 28 • 조회 4,131


    Longest Common Subsequence 자바스크립트 풀이

    ... 더 보기

    Longest Common Subsequence | 알고달레

    알고달레

    Longest Common Subsequence | 알고달레

    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 22 • 조회 2,079




    두 가지 목표가 있다. 어떤 목표가 학습 동기를 높인다고 생각하는가?

    ... 더 보기

    쉽고 재밌기만 한 교육은 독이다

    ㅍㅍㅅㅅ

    쉽고 재밌기만 한 교육은 독이다