state와 props를 이해해야 한다.
Redux는 무엇이냐? => 전역상태관리
Redux를 사용하지 않는다면, Props를 통해서 부모 컴포넌트에서 자식 컴포넌트로 그 값을 보내주었고, Props로 State를 공유하는 방법에는 불편한 점이 있었다.
추가하기 버튼과 input 박스를 component로 분리한다면, app.js안의 todos라는 state를 update를 해줘야하는데, 별도로 빼낸 Component에서 부모 component안의 todos의 상태를 어떻게 update를 해줘야 하는지, 자식 component인 추가하기 버튼과 input 박스가 부모 component의 todos의 상태를 변경을 해줘야하는데 react는 부모 component에서 자식 component로만 props를 줘야한다고 배웠기 때문에 어떻게 처리해야할지 어려운 부분.
=> 그래서 전역,Global 하게 상태를 저장 할 수 있는 곳을 따로 만들고, 어떤 component든지 쉽게 접근을 할 수 있게 하여 상태관리를 더 쉽게 할 수있게 한다 = Redux
왼쪽 그림을 보면, redux를 사용하지 않고 최상위 component에서 최하위 component로 상태를 전달해주기 위해서 중간에 있는 자식 component들을 반드시 거쳐야만 한다. 그러면 중간에 있는 component들은, 사실상 받을 필요가 없는 상태들도 최하위 componenet에 상태를 전달해주기 위해서 불필요하게 거쳐야 하는 문제가 발생.
=> 비유를 해보자면, 유선으로 연결되있는 느낌(Props Drilling) => 무선, 블루투스처럼 건내줄 수 있으면 좋지 않을까 => Redux를 이용해서 가능 => GlobalState(전역상태) 라는 개념으로 LocalState(지역상태)의 불편함을 해소. => Redux를 이요해서 Store를 만들어서 중앙화된 곳에서 state들을 관리
LcoalState => component안에서 useState를 이용해서 생성한 상태
GlobalState => 중앙화 된곳 (STORE)에서 state들을 관리하는 것