면접 대비 #2 - 리액트 전역 상태 관리
리액트에서 전역 상태 관리는 어떻게 이루어지나요?(redux 기준)
전역 상태를 위해 Redux, Context APi, Mobx, recoil 등의 라이브러리를 이용할 수 있습니다.
그 중 대표적인 redux로 설명을 하자면
컴포넌트에서 액션크리에이터로 액션을 발생시키고 그 액션을 디스패치를 통해 실행시킵니다. 그러면 reducer에서는 해당 액션과 매칭되는 액션이 있는지 확인하고 데이터를 업데이트 시킵니다. 이 모든것을 store라는 하나의 저장소에서 관리합니다
recoil 사용 이유?(*난 recoil을 사용했다)
애플리케이션의 규모가 커질 수록 전달해야 하는 props들이 많아지게 되는데 이 경우 코드가 지저분해지고 상태값 관리가 복잡해져 props-drilling이 일어나게됩니다. 이를 막기위해 Redux에서는 store라는 하나의 저장공간에서 모든 상태값을 관리하도록 했습니다. 하지만 redux를 사용할 떄 store, action, reducer같이 신경써야할 boiler plate가 많았고 비동기 데이터를 불러올 때도 redux-sage나 redux-thunk 같은 소스들이 추가적으로 필요했습니다. 직접 recoil을 사용해보니 전역상태관리를 위한 설정이 쉬웠고 recoil에서 지원하는 훅을 이용해 get,set을 하기에 react 문법과 비슷한 부분이 많아 recoil을 사용하게 되었습니다.
✅예상 추가질문
recoil 간단히 설명해주세요
recoil의 상태 관리 단위인 atoms, atoms나 다른 selector의 상태를 받아 동적인 데이터를 반환하는 순수함수 selector, 전역상태 get/set을 위한 hooks 세가지로 이루어져 있습니다.
🙇🏻참고
https://abangpa1ace.tistory.com/212