<aside> 📌 요약: 상태 관리 기술이란 앱 상에서의 데이터를 메모리 등에 저장하고 하나 이상의 컴포넌트에서 데이터를 공유하는 것.
MPA에서는 서버와 클라이언트 Data 상태가 같지만, SPA에서는 서버와 클라이언트의 데이터 상태가 같지 않다. (동기화를 하는 순간은 같겠지만)
즉, 상태관리 기술을 사용하는 이유는 SPA을 구현할 때 state를 잘 관리 함으로써 품질이 높은 코드를 작성하고, 성능을 최적화 하기 위해서다. 예를들어 데이터 캐싱과 재활용(성능 최적호), Prop Drilling 해결(코드 품질 향상)이 있겠다.
Flux Pattern은 Unidirectional data flow를 가짐으로써 data와 업데이트가 한 방향이므로 UI의 업데이트를 예측하기 쉽다. (즉, 코드 분석이나 디버깅이 쉬워진다) ⇒ 리덕스나 오늘 배운 useContext와 같은 것들을 활용해서 Flux Pattern으로 코드를 짜는거군.
useRef는 상태가 바뀌어도 리렌더링 하지 않는 상태를 정의한다.
useContext는 컴포넌트와 컴포넌트 간 상태를 공유할 때 사용한다. 깊이 nested된 컴포넌트라도 바로 context value를 가져올 수 있다. 즉, Props Drilling을 해결하는 Hook이다.
</aside>