1 minute read

Redux, Redux-saga

큰 프로젝트에서 모듈화된 상태관리가 좋으면 쓰라.

처음에 사용했을때는 useState 를 이용한 useContext 를 쓰는게 더 편하다고 생각됐다 아무리 간단한 상태관리 및 변경이라도 Redux 를 사용하면 Action 이름, Action 객체 생성, 초기 state 정의, Reducer 함수, 추가적으로 비동기 통신이 있을 경우 Redux-Saga 코드까지 작성하는 수고스러움이 있었지만 useState 를 이용하면 위의 길고 긴 코드가 함축이 됐다. 사실 이 부분은 Redux의 단점 중 하나라고 본다

하지만 시간이 지날 수록 이 부분은 장점 중 하나라고 생각이 되었다 프로젝트가 커질 수록 코드는 길어지지만 그만큼 모듈화가 됐고 때에 맞는 액션 Dispatch, Payload 관리, Reducer 관리 등을 통해 에러가 난 부분이나 문제점을 더욱 쉽게 볼 수 있어서 유지보수가 용이해졌다 긴 코드는 여전히 단점이지만 이를 감수하기 위해서는 어쩔 수 없다고 생각된다

그리고 성능 부분에서 차이가 난다고 숙지하고 있다. 이는 추후 테스트를 통해서 더욱 수치화 해보고자 한다.

동시에 고민이 되는 부분도 있다 Redux 와 useState 를 어느 선에서 관리할 지 이다. 모든 자잘한 상태까지 전부 Redux 에서 관리하면 너무 코드도 길어진다고 생각하기 때문에 모든 것을 Redux 에서 관리할 필요는 없다고 생각한다. 그러므로 Redux, useState 의 선이 필요하다고 생각한다 개인적으로 생각하고 있는 건 여러 페이지에서 쓰거나 전역에서 쓴다면 Redux, 하나의 컴포넌트에서 사용되고 Redux 의 모듈형 감시체계가 필요없다고 생각되는 상태는 useState 라고 보는데 이 부분은 추후 따로 정리해야 할 것 같다.