[React] 리덕스(Redux)는 JavaScript 애플리케이션의 상태(state) 관리를 위한 예측 가능한 상태 컨테이너
반응형
리덕스(Redux)는 JavaScript 애플리케이션의 상태(state) 관리를 위한 예측 가능한 상태 컨테이너입니다. 리덕스는 주로 리액트(React)와 함께 사용되지만, 다른 JavaScript 프레임워크 및 라이브러리와도 함께 사용할 수 있습니다. 리덕스의 주요 기능과 용도는 다음과 같습니다
주요 기능
- 중앙 집중식 상태 관리:
- 리덕스는 애플리케이션의 전체 상태를 하나의 중앙 집중식 스토어(store)에서 관리합니다. 이는 상태가 예측 가능하고 쉽게 추적될 수 있도록 합니다.
- 상태 불변성 유지:
- 리덕스는 상태가 불변(immutable)하도록 합니다. 이는 상태를 직접 변경하는 대신, 새로운 상태 객체를 반환하여 상태를 업데이트하는 방식을 채택합니다. 이를 통해 상태 변화를 추적하고 디버깅하기 쉽습니다.
- 액션(action)과 리듀서(reducer):
- 액션은 상태 변경을 설명하는 객체로, 타입(type)과 페이로드(payload)를 포함할 수 있습니다.
- 리듀서는 액션을 기반으로 새로운 상태를 생성하는 순수 함수입니다. 현재 상태와 액션을 인자로 받아 새로운 상태를 반환합니다.
- 미들웨어(middleware):
- 리덕스는 미들웨어를 통해 비동기 작업(예: API 호출)이나 로깅과 같은 사이드 이펙트(side effects)를 처리할 수 있습니다. 대표적인 미들웨어로는 redux-thunk와 redux-saga가 있습니다.
사용 용도
- 상태 관리:
- 리덕스를 사용하면 컴포넌트 간의 상태 공유가 쉬워집니다. 모든 컴포넌트가 중앙 스토어에서 상태를 읽고 업데이트할 수 있어, 상태가 일관되게 유지됩니다.
- 디버깅:
- 리덕스 개발 도구(DevTools)를 사용하면 상태 변경 내역을 추적하고 디버깅할 수 있습니다. 이는 상태 변화와 관련된 문제를 쉽게 해결할 수 있게 도와줍니다.
- 비동기 작업 처리:
- 리덕스 미들웨어를 사용하여 API 호출과 같은 비동기 작업을 관리할 수 있습니다. 이는 애플리케이션의 비동기 로직을 더 명확하고 구조적으로 유지할 수 있게 합니다.
리덕스의 작동 원리
- 액션 생성: 사용자가 애플리케이션 내에서 어떤 작업을 수행하면, 액션이 생성됩니다.
-
javascript
const action = { type: 'INCREMENT', payload: 1 };
- 액션 디스패치: 생성된 액션은 디스패치(dispatch) 함수를 통해 스토어에 전달됩니다.
-
javascript
store.dispatch(action);
- 리듀서 실행: 스토어는 현재 상태와 액션을 리듀서에 전달하여 새로운 상태를 생성합니다.
-
javascript
const reducer = (state = initialState, action) => { switch (action.type) { case 'INCREMENT': return { ...state, count: state.count + action.payload }; default: return state; } };
- 새로운 상태 저장: 리듀서가 반환한 새로운 상태가 스토어에 저장되고, 이를 구독하고 있는 컴포넌트들이 업데이트됩니다.
이와 같은 방식으로 리덕스는 애플리케이션의 상태를 효율적으로 관리하고 예측 가능한 상태 변화를 보장합니다. 리덕스를 사용하면 애플리케이션의 복잡한 상태 관리 로직을 더 쉽게 유지하고 확장할 수 있습니다.
반응형
'낙서장[1] > 1. React' 카테고리의 다른 글
[React] 리액트 JSX (0) | 2025.02.06 |
---|---|
[React] Axios Interceptor (0) | 2025.02.05 |
[React] 싱글플레이어 애플리케이션 단점 세션초기화 (1) | 2025.02.05 |
[React] Promise 객체 비동기 작업의 세 가지 상태 (0) | 2025.02.05 |
[React] 리액트(React)에서 훅(Hook) (0) | 2025.02.05 |