Redux

    Redux] 불변성 유지

    상태 관리에서 불변성을 유지하는 이유 리액트와 리덕스는 setState나 dispatch 되었을 때 re-rendering이 일어나게 됩니다. 불필요한 재렌더링은 웹 성능을 저하시킬 수 있기 때문에 useCallback을 사용하게 되는데요~ 이 메소드는 state와 props의 변화를 감지해 변화가 일어날 경우만 렌더링을 허용합니다! 여기서 불변성이 필요한 이유는 무엇일까요? setState나 Dispatch를 이용해서 상태를 바꾸지 않는다면 re-rendering이 일어나지 않기 때문입니다. 또한 이전 state와 현재 state를 비교하여 최신 상태를 유지하기 때문에 불변성을 유지해야 합니다. 만약 state를 직접적으로 변경한다면 기존 상태도 수정이 되어버려 이전 state와 비교하는 것이 불가능합..

    Redux] 리덕스를 사용하는 이유는 무엇일까? (feat.전역상태관리)

    리덕스를 사용하는 이유 리액트로 프로젝트를 진행한다면 App 컴포넌트를 거쳐서 필요한 값을 업데이트하고 리렌더링 하는 방식으로 프로젝트가 개발되는데 위의 구조는 부모 컴포넌트에서 모든 걸 관리하고 아래로 내려주는 것이기 때문에 직관적이고 관리하는 것이 편하다는 장점이 있지만 프로젝트의 규모가 커졌을 때 보이는 컴포넌트의 개수가 늘어나면서 다루는 데이터도 늘어나고 그 데이터를 업데이트하는 함수들도 늘어나게 됩니다. 따라서 프로젝트의 규모가 커진다면 App의 코드가 길어지고 유지 보수하는 것이 힘들어집니다. 리덕스를 사용 시 프로젝트의 규모가 커진다면 상태관리를 컴포넌트 밖에서 할 수 있기 때문에 상태 값을 컴포넌트에 종속시키지 않고, 상태 관리를 컴포넌트의 밖에서 관리할 수 있습니다! 리덕스를 프로젝트에 ..