본문 바로가기

TIL

TIL 23.07.28 Redux 개념정리

Redux 

 

1. 전역 상태관리 라이브러리

2. 주로 React 와 함께 Vue, Angler 에서도 사용할 수 있다. 

3. Redux 는 애플리케이션의 상태를 단일한 "store" 에 저장하여 상태 변경 및 관리를 예측 가능한 방식으로 함.

 


Redux 가 해결하려고하는 문제

 

1. 상태관리의 복잡성 해소

애플리케이션의 상태관리는 주로 props 로 이루어지는데 (useState를 통한 관리), 애플리케이션이 커지고 복잡해질수록 상태 흐름을 파악하기 어려움. Redux는 전역상태에서 통합적으로 관리가 가능함 (접근 : useSelector , 제어 : useDispatch)

 

2. 데이터 흐름의 일관성 유지

Redux는 상태변경을 예측 가능한 Action 객체로 관리한다.

 

3. 상태변경 로직의 중앙집중화

리듀서 함수로 상태변경 로직을 중앙에서 관리한다. 유지보수가 용이해지고, 복잡한 상태변화 통제가 가능.

 


Redux 의 주요 개념

 

1. Store

애플리케이션의 상태를 담고 있는 객체 , 모든 상태는 단일한 store 에 저장. 리덕스의 createStore 함수로 store 생성 가능.

 

2. Action

액션은 상태변화를 발생시키기위해 스토어에 보내는 객체이다. 액션은 type(어떤 일이 일어났는지 기술), payload(해당 액션과 관련한 추가 정보를 담은 것)로 구성된다. payload 는 생략이 가능하다.

 

3. Reducer 

상태를 변화시키는 함수로 리듀서는 액션이 발생했을 때, 현재 상태와 해당 액션을 기반으로 새로운 상태를 반환. 리듀서는 순수 함수로 작성되어야 한다. 순수함수란 같은 입력값에 대해 항상 같은 출력을 반환해야 하고 부작용이 없는 함수를 의미한다. 

 


Redux의 장점 및 단점

 

1. 장점

- 상태관리의 예측가능성과 단방향 데이터 관리로 복잡성을 줄여준다.

- 상태변경 로직의 중앙집중화로 상태변화를 통제하기 용이 

- 개발자들 간의 상태관리 패턴을 표준화하여 협업이 용이 

 

2. 단점

- 보일러 플레이트 : 코드량이 많음

- 작은 규모의 애플리케이션에서는 Redux 사용이 비대해질 수 있음.