그 시점에서 내 믿음은 전역 상태가 React Context를 통해 전달되어야 React Concurrent 모드와 작동할 수 있다는 것이었습니다. 그래서 우리 도서관과 다른 도서관을 구별하기 위해 비교표를 만들었는데, Zustand도 그 중 하나였습니다. 2019년에 있었던 일입니다.

주스탠드 v3

2020년 포이만드레스 그룹에 합류하여 Zustand의 개발을 맡게 되었습니다. 당시 나의 관심은 전역 상태 라이브러리가 React Concurrent 모드와 작동하도록 만드는 것이었습니다. Concurrent 모드의 모든 이점을 얻을 수는 없었지만 전역 상태를 Concurrent 모드와 호환되도록 만드는 useMutableSource라는 실험적인 API가 있었습니다.

저는 React-Tracked가 포함된 React Context 기반 솔루션을 사용하여 많은 것을 실험하고 있었고 React Context 없이 전역 상태로 무엇을 할 수 있는지 궁금했습니다. Zustand는 한 살이었지만 아무도 그것을 관리하지 않았습니다. 그래서 제가 인수하기로 결정했습니다.

실험적인 useMutableSource API가 준비되지 않았으므로 첫 번째 작업은 다양한 항목을 업데이트하고 일부 버그를 수정하는 것이었습니다. 이때 Zustand v3가 탄생했습니다. 내 희망은 useMutableSource를 사용하여 v4를 곧 출시하는 것이었지만 그런 일은 일어나지 않았습니다. 그 뒤에는 또 다른 이야기가 있습니다.

요즘에는 전역 상태를 외부에 두고 선택적으로 React Context를 사용하여 저장소를 전달하는 것이 잘 알려진 패턴입니다. Zustand는 이 패턴의 선구자였습니다. 사람들은 React Context에 전역 상태가 없는 것에 대해 매우 회의적이었고 우리는 이것이 유효한 패턴임을 설명하는 데 어려움을 겪었습니다.

현재 상태

Zustand에서 제가 중요하게 생각하는 것 중 하나는 간단한 구현과 작은 번들 크기입니다. 소스 코드를 보면 최소한의 스토어 구현으로 React Hooks를 사용하는 것 외에는 아무것도 없다는 것을 알 수 있습니다.

글을 쓰는 시점에서 Zustand v4는 매우 발전된 TypeScript 지원 기능을 갖춘 최신 버전이며 코드는 v3에서 거의 완전히 다시 작성되었습니다. 우리는 다음 릴리스를 위해 Zustand v5를 거의 준비했습니다.

마지막으로 이 프로젝트를 유지 관리하는 여러 기여자가 있습니다. 제가 프로젝트를 맡았을 때 이런 일이 일어날 것이라고는 예상하지 못했습니다. 나는 그것에 대해 매우 감사합니다. 모두들 감사합니다.

","image":"http://www.luping.net/uploads/20240730/172233792466a8ca84b1d78.jpg","datePublished":"2024-07-30T19:12:03+08:00","dateModified":"2024-07-30T19:12:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Zustand가 태어난 방법

Zustand가 태어난 방법

2024-07-30에 게시됨
검색:158

How Zustand Was Born

보다 정확하게는 Zustand v3 이후

소개

이번 포스팅에서는 Zustand의 발전 비하인드 스토리를 공유하고자 합니다. 정확히 말하면 나는 Zustand의 원저자가 아니었고, Zustand v0가 탄생했을 때 다른 전역 상태 라이브러리, 특히 React-Tracked를 개발하고 있었습니다. 그건 그렇고, 나는 이제 나 자신을 Zustand의 (2차) 저자라고 생각합니다.

저를 포함한 다른 라이브러리와 비교하면서 Zustand를 언급하는 내 트윗을 발견했습니다.

그 시점에서 내 믿음은 전역 상태가 React Context를 통해 전달되어야 React Concurrent 모드와 작동할 수 있다는 것이었습니다. 그래서 우리 도서관과 다른 도서관을 구별하기 위해 비교표를 만들었는데, Zustand도 그 중 하나였습니다. 2019년에 있었던 일입니다.

주스탠드 v3

2020년 포이만드레스 그룹에 합류하여 Zustand의 개발을 맡게 되었습니다. 당시 나의 관심은 전역 상태 라이브러리가 React Concurrent 모드와 작동하도록 만드는 것이었습니다. Concurrent 모드의 모든 이점을 얻을 수는 없었지만 전역 상태를 Concurrent 모드와 호환되도록 만드는 useMutableSource라는 실험적인 API가 있었습니다.

저는 React-Tracked가 포함된 React Context 기반 솔루션을 사용하여 많은 것을 실험하고 있었고 React Context 없이 전역 상태로 무엇을 할 수 있는지 궁금했습니다. Zustand는 한 살이었지만 아무도 그것을 관리하지 않았습니다. 그래서 제가 인수하기로 결정했습니다.

실험적인 useMutableSource API가 준비되지 않았으므로 첫 번째 작업은 다양한 항목을 업데이트하고 일부 버그를 수정하는 것이었습니다. 이때 Zustand v3가 탄생했습니다. 내 희망은 useMutableSource를 사용하여 v4를 곧 출시하는 것이었지만 그런 일은 일어나지 않았습니다. 그 뒤에는 또 다른 이야기가 있습니다.

요즘에는 전역 상태를 외부에 두고 선택적으로 React Context를 사용하여 저장소를 전달하는 것이 잘 알려진 패턴입니다. Zustand는 이 패턴의 선구자였습니다. 사람들은 React Context에 전역 상태가 없는 것에 대해 매우 회의적이었고 우리는 이것이 유효한 패턴임을 설명하는 데 어려움을 겪었습니다.

현재 상태

Zustand에서 제가 중요하게 생각하는 것 중 하나는 간단한 구현과 작은 번들 크기입니다. 소스 코드를 보면 최소한의 스토어 구현으로 React Hooks를 사용하는 것 외에는 아무것도 없다는 것을 알 수 있습니다.

글을 쓰는 시점에서 Zustand v4는 매우 발전된 TypeScript 지원 기능을 갖춘 최신 버전이며 코드는 v3에서 거의 완전히 다시 작성되었습니다. 우리는 다음 릴리스를 위해 Zustand v5를 거의 준비했습니다.

마지막으로 이 프로젝트를 유지 관리하는 여러 기여자가 있습니다. 제가 프로젝트를 맡았을 때 이런 일이 일어날 것이라고는 예상하지 못했습니다. 나는 그것에 대해 매우 감사합니다. 모두들 감사합니다.

릴리스 선언문 이 글은 https://dev.to/dai_shi/how-zustand-was-born-48h3?1 에서 복제하였습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제해 주시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3