1. webpack의 핵심 구조

2. 예제로 확인하는 React, Redux, Saga, typeScript

import { createStore, applyMiddleware } from "redux"; // redux는 특정 라이브러리에 종속되지 않는다.
import { Provider } from "react-redux"; // redux를 React 내에서 사용하기 위해 react-redux 사용

render(
  <Provider store={store}>
    <App />
  </Provider>,
  rootElement
);
export interface StoreState {
  monitoring: boolean;
  success: number;
  failure: number;
};

import { StoreState } from "../types";
const initializeState: StoreState = {
  monitoring: false,
  success: 0,
  failure: 0
};
import { createAction } from "typesafe-actions";

export const startMonitoring = createAction(
  "@command/monitoring/start",
  resolve => {
    return () => resolve();
  }
);

export const stopMonitoring = createAction(
  "@command/monitoring/stop",
  resolve => {
    return () => resolve();
  }
);

export const fetchSuccess = createAction("@fetch/success", resolve => {
  return () => resolve();
});

export const fetchFailure = createAction("@fetch/failure", resolve => {
  return () => resolve();
});
import { ActionType, getType } from "typesafe-actions";
import * as Actions from "../actions";

// ...
// 상태 인터페이스 및 상태 선언
// ...

export default (
  state: StoreState = initializeState,
  action: ActionType<typeof Actions>
) => {
  switch (action.type) {
    case getType(Actions.fetchSuccess):
      return {
        ...state,
        success: state.success + Math.floor(Math.random() * (100 - 1) + 1)
      };
    case getType(Actions.fetchFailure):
      return {
        ...state,
        failure: state.failure + Math.floor(Math.random() * (2 - 0))
      };
    default:
      console.log(action.type);
      return Object.assign({}, state);
  }
};

3. Q&A 그리고 참고링크

  1. 어떤 목표로 뭘 배우고 있는 것인지 명확하게 해야 더 효율적인 공부를 할 수 있다.
  2. 코드를 볼 때 그 너머를 예상하지 말고, 이해하고 마무리하는 버릇을 들이자
  3. parcel Uglyfy, redux → parcel, rollup 적용해보자