한 도시에 있는 여러 건물의 전등을 통제해야 한다고 가정해보자
각 건물마다 전등을 켜고 끄는 스위치가 따로 있다면 모든 건물의 전등을 통제하기 위해 각 건물을 일일이 방문해서 스위치를 조작해야 한다.
그런데 한 곳에서 모든 건물의 전등을 조절할 수 있는 시스템이 있다면 훨씬 편리 할 것이다.
웹 애플리케이션의 상태도 이와 비슷하다.
여러 컴포넌트가 각자의 상태를 가질 때 이 상태들을 효과적으로 관리하지 않으면 복잡성이 증가한다.
따라서 통합적으로 상태를 관리하여 애플리케이션의 동작을 예측 가능하게 만들고 오류를 줄이기 위해 상태관리를 한다.
개발자마다 방식은 다르겠지만 대표적으로 사용하는 방법은 로컬 상태관리
와 글로벌 상태관리
이다.
로컬 상태 관리
는 React나 Vue 같은 프레임워크의 기본 상태 관리 기능을 사용한다.
컴포넌트 내에서만 필요한 상태일 때 로컬 상태관리 방법으로 관리한다.
글로벌 상태관리
는 여러 컴포넌트에서 공유되는 상태를 관리할 때 사용한다.
Redux, MobX, Vuex 등의 라이브러리를 사용하여 상태를 중앙집중적으로 관리한다.
즉 상태관리 방식은 애플리케이션의 규모, 필요성, 팀의 선호에 따라 결정한다