3. redux-logger 사용 및 미들웨어와 DevTools 함께 사용하기

이번에는 redux-logger 를 설치해서 적용을 해보고, 또 Redux DevTools 와 리덕스 미들웨어를 함께 사용해야 할 때에는 어떻게 해야하는지 배워보겠습니다.

redux-logger 사용하기

우선 redux-logger 를 설치해주세요.

$ yarn add redux-logger

그 다음에 index.js 에서 불러와서 적용을 해보겠습니다. 리덕스에 미들웨어를 적용 할 때에는 다음과 같이 여러개의 미들웨어를 등록 할 수 있답니다.

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import rootReducer from './modules';
import myLogger from './middlewares/myLogger';
import logger from 'redux-logger';

const store = createStore(rootReducer, applyMiddleware(myLogger, logger)); // 여러개의 미들웨어를 적용 할 수 있습니다.

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

serviceWorker.unregister();

이제, 결과를 확인해볼까요? 버튼을 클릭하고 콘솔을 확인해보세요.

이제 리덕스 관련 정보들이 예쁘게 콘솔에 출력됐지요? 그럼 이제 우리가 만든 myLogger는 비활성화 해주세요. 불필요합니다.

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import rootReducer from './modules';
import logger from 'redux-logger';

const store = createStore(rootReducer, applyMiddleware(logger)); // 여러개의 미들웨어를 적용 할 수 있습니다.

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

serviceWorker.unregister();

비활성화 하고 나면 위와 같이 redux-logger 쪽에서만 출력이 될 것입니다.

Redux DevTools 사용하기

만약 Redux DevTools 를 미들웨어와 함께 사용해야 한다면 어떻게 코드를 작성해야하는지 알아봅시다.

매뉴얼 상의 사용법은 다음과 같습니다.

import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';

const store = createStore(reducer, composeWithDevTools(
  applyMiddleware(...middleware),
  // other store enhancers if any
));

그럼 이에 맞춰 우리 index.js 를 수정해볼까요? 그 전에 우선 redux-devtools-extension 을 설치해주세요.

$ yarn add redux-devtools-extension

다음, index.js 를 수정해보세요.

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import rootReducer from './modules';
import logger from 'redux-logger';
import { composeWithDevTools } from 'redux-devtools-extension';

const store = createStore(
  rootReducer,
  composeWithDevTools(applyMiddleware(logger))
); // 여러개의 미들웨어를 적용 할 수 있습니다.

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);


serviceWorker.unregister();

이제 Redux DevTool이 잘 작동하는지 확인해보세요.

results matching ""

    No results matching ""