React를 비롯한 모든 뷰 라이브러리에서 사용할 수 있는 예측 가능하고 유지보수하기 쉬운 전역 상태 관리 JavaScript 라이브러리입니다.
reduxjs/reselect
Redux 또는 일반 JavaScript 상태에서 데이터를 파생하는 메모이제이션 셀렉터 함수를 만드는 TypeScript 라이브러리입니다.
- 스타
- 19,005
- 포크
- 666
- 열린 이슈
- 38
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
Reselect는 메모이제이션된 "셀렉터" 함수를 만드는 createSelector를 제공합니다. 상태에서 값을 가져오는 하나 이상의 입력 셀렉터와, 그 값으로 파생 값을 계산하는 결과 함수를 전달하면 됩니다. 출력 셀렉터는 추출한 값이 바뀔 때만 다시 계산하고, 아무것도 바뀌지 않으면 동일한 참조를 반환합니다.
이렇게 하면 Redux에는 최소한의 상태만 저장하고, 파생 데이터는 필요할 때 계산할 수 있습니다. 셀렉터를 조합할 수도 있어 한 셀렉터의 출력값을 다른 셀렉터의 입력값으로 사용할 수 있습니다. Reselect는 Redux Toolkit에 포함되어 있으며, reselect 패키지로 별도 설치할 수도 있습니다.
라이브러리에는 동작을 사용자 지정할 수 있는 weakMapMemoize, lruMemoize, createSelectorCreator 등의 메모이제이션 옵션과, 입력의 안정성 및 항등 함수에 대한 개발 환경 전용 검사 기능이 포함되어 있습니다.
핵심 기능
- 01입력값이 바뀌지 않으면 다시 계산하지 않는 메모이제이션 셀렉터를 만듭니다.
- 02다른 셀렉터를 입력으로 사용해 셀렉터를 조합할 수 있습니다.
- 03안정적인 결과 참조를 반환해 React-Redux와 React의 불필요한 재렌더링을 줄이는 데 도움이 됩니다.
- 04셀렉터 객체로 셀렉터를 구성하는 createStructuredSelector를 제공합니다.
- 05createSelectorCreator, lruMemoize, weakMapMemoize를 통해 메모이제이션을 사용자 지정할 수 있습니다.
- 06불안정한 입력 셀렉터와 항등 결과 함수에 대한 개발 환경 전용 검사를 제공합니다.
활용 사례
- Redux 상태에 데이터를 중복 저장하지 않고 필터링하거나 집계한 데이터를 파생합니다.
- 불필요한 재렌더링을 줄이면서 React-Redux를 통해 React 컴포넌트에 props를 전달합니다.
- 작은 상태 조회를 조합해 더 큰 파생 뷰를 만드는 계층형 셀렉터를 구성합니다.
- Redux 외부의 일반 JavaScript 불변 데이터에도 메모이제이션된 파생 상태를 적용합니다.
빠른 시작
- 1
npm으로 독립 실행형 패키지를 설치하세요
npm install reselect - 2
또는 Reselect가 이미 포함된 Redux Toolkit을 사용하세요(추가 설치가 필요하지 않습니다)
토픽
자주 묻는 질문
- reselect은(는) 무엇인가요?
- Redux 또는 일반 JavaScript 상태에서 데이터를 파생하는 메모이제이션 셀렉터 함수를 만드는 TypeScript 라이브러리입니다. Reselect는 메모이제이션된 "셀렉터" 함수를 만드는 createSelector를 제공합니다. 상태에서 값을 가져오는 하나 이상의 입력 셀렉터와, 그 값으로 파생 값을 계산하는 결과 함수를 전달하면 됩니다. 출력 셀렉터는 추출한 값이 바뀔 때만 다시 계산하고, 아무것도 바뀌지 않으면 동일한 참조를 반환합니다.
- reselect은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- reselect은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- reselect은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. reselect의 마지막 커밋은 2026년 10월 21일입니다.
- reselect은(는) 어디에 사용할 수 있나요?
- Redux 상태에 데이터를 중복 저장하지 않고 필터링하거나 집계한 데이터를 파생합니다. 불필요한 재렌더링을 줄이면서 React-Redux를 통해 React 컴포넌트에 props를 전달합니다. 작은 상태 조회를 조합해 더 큰 파생 뷰를 만드는 계층형 셀렉터를 구성합니다. Redux 외부의 일반 JavaScript 불변 데이터에도 메모이제이션된 파생 상태를 적용합니다.
- reselect는 어떻게 설치하나요?
- npm으로 독립 실행형 패키지를 설치하세요: npm install reselect 또는 Reselect가 이미 포함된 Redux Toolkit을 사용하세요(추가 설치가 필요하지 않습니다)
- reselect은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/reduxjs/reselect
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Provider 없이 사용할 수 있는 React용 경량 훅 기반 상태 관리 라이브러리입니다.
hooks와 Provider를 통해 Redux store를 React 컴포넌트에 연결하는 공식 React 바인딩입니다.
React, Vue, Svelte, Solid 바인딩을 제공하는 웹 앱용 비동기 상태 관리 및 데이터 페칭 라이브러리입니다.
현재 상태의 초안을 변경해 불변 상태 업데이트를 작성할 수 있는 JavaScript 라이브러리입니다.
앱 시작 시 저장소에서 상태를 복원하고, Redux 스토어 상태를 저장하는 미들웨어 스타일 라이브러리입니다.