[javascript] 리덕스 미들웨어(Middleware)의 역할과 사용 방법

리덕스 미들웨어는 리덕스 스토어의 동작을 확장하고, 액션을 디스패치한 후 리듀서에서 상태를 변경하기 전에 추가적인 작업을 수행할 수 있게 하는 소프트웨어 계층입니다. 미들웨어는 액션과 리듀서 사이에서 동작하며, 비동기 작업 처리, 로깅, 예외 처리 등 다양한 작업을 처리할 수 있습니다.

미들웨어의 주요 역할

리덕스 미들웨어의 주요 역할은 다음과 같습니다:

미들웨어 사용 방법

리덕스에서 미들웨어를 사용하려면, redux-thunk, redux-saga, redux-observable 등의 미들웨어 라이브러리를 사용하거나, 직접 미들웨어 함수를 구현하여 미들웨어를 스토어에 적용할 수 있습니다.

redux-thunk를 사용한 미들웨어 예시

import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';

const store = createStore(
  rootReducer,
  applyMiddleware(thunk)
);

직접 미들웨어 함수를 구현하여 적용하는 예시

const customMiddleware = store => next => action => {
  // 미들웨어 로직 구현
  // ...
  return next(action);
};

const store = createStore(
  rootReducer,
  applyMiddleware(customMiddleware)
);

위 예시에서 redux-thunk는 함수 형태의 액션을 처리하기 위한 미들웨어 라이브러리이며, 직접 구현한 미들웨어 함수에서는 store, next, action을 인자로 받아 사용합니다.

미들웨어를 추가하면, 스토어에서 액션을 디스패치할 때 미들웨어의 로직이 실행되어 추가 작업이 수행됩니다. 이를 통해 리덕스의 기능을 확장하고, 코드를 더욱 모듈화하며, 유지보수성을 향상시킬 수 있습니다.

결론

리덕스 미들웨어는 액션과 리듀서 사이에서 다양한 작업을 처리하고, 리덕스의 확장성과 모듈화에 기여하는 중요한 역할을 합니다. 적절히 활용하면 복잡한 상태관리 로직을 보다 쉽게 처리할 수 있으며, 코드의 품질을 향상시킬 수 있습니다.


참고 문헌: