-
Atom vs Flux패턴 차이카테고리 없음 2023. 6. 20. 13:27
리코일이란 ?
- FaceBook에서 2020년 발표한 오픈소스 상태 관리 라이브러리이다.
등장배경
- React에서 복잡한 상태 관리를 단순화 하기 위해 만들어졌다.
Recoil은 상태를 Atoms라는 단위로 정의한다.
Atoms 단위란?
Recoil에서 사용되는 상태의 단위를 의미, 즉 리코일에서 아톰은 하나의 상태를 나타내는 개념이다.
Atom과 flux의 차이점
Atom Flux 아키텍처 Recoil은 React 애플리케이션의 상태 관리를 위한 라이브러리로, React의 컴포넌트 기반 아키텍처와 통합된다. Atoms와 Selectors로 구성되며, 상태의 의존성을 추적하고 자동으로 재렌더링을 관리한다. Flux는 단방향 데이터 플로우 아키텍처로, 액션(Action), 디스패처(Dispatcher), 스토어(Store), 뷰(View)로 구성된다. 액션을 통해 데이터 변경 요청이 전달되고, 디스패처를 통해 액션이 스토어로 전달되어 상태를 업데이트하고, 뷰는 스토어의 변경 사항을 구독하여 업데이트된다. 복잡성 Recoil은 간단하고 직관적인 API를 제공하여 상태 관리를 간소화한다. 기존의 컴포넌트 기반 아키텍처와 잘 통합되며, 추가적인 개념과 구성 요소를 도입하지 않고도 쉽게 사용할 수 있다. Flux 아키텍처는 액션, 디스패처, 스토어와 같은 많은 개념과 구성 요소를 포함하고 있다. 이는 프로젝트의 복잡성을 증가시킬 수 있다. 상태 업데이트 Recoil은 상태를 업데이트하기 위해 Atom의 상태 값을 직접 변경하거나, Recoil의 제공하는 useSetRecoilState와 같은 훅을 사용하여 상태를 업데이트한다. Flux는 상태를 업데이트하기 위해 액션을 통해 디스패처로 전달하고, 디스패처는 해당 액션을 스토어로 전달하여 상태를 업데이트한다. 의존성 관리 Recoil은 Atom과 Selector를 사용하여 상태 간의 의존성을 자동으로 추적하고 관리합니다. 이를 통해 상태의 변화에 따라 자동으로 재렌더링이 발생하고, 컴포넌트 간의 상태 공유가 쉽게 이루어진다. Flux에서는 디스패처를 통해 액션과 스토어 사이의 의존성 관리를 수동으로 처리해야 합니다. 요약하면, Flux와 Recoil은 모두 상태 관리 패턴이지만, 아키텍처, 복잡성, 상태 업데이트 방식, 의존성 관리 등에서 차이가 있다. Recoil은 React와 통합된 간단하고 직관적인 상태 관리 라이브러리로, Flux보다 간결하고 쉬운 상태 관리를 제공한다.