Redux DevTools
```js
$ yarn add redux-devtools-extension
// 리덕스 개발자 도구
```js
// 스토어를 만듭니다.
import { composeWithDevTools } from 'redux-devtools-extension';
// composeWithDevTools 를 사용하여 리덕스 개발자 도구 활성화
const store = createStore(rootReducer, composeWithDevTools());
```
redux-logger
```js
$ yarn add redux-logger
```
redux-thunk
```js
$ yarn add redux-thunk
* 액션 객체가 아닌 함수를 디스패치 할 수 있습니다.
* 함수를 디스패치 할 때에는, 해당 함수에서 ```dispatch``` 와 ``getState`` 를 파라미터로 받아와주어야 합니다.
* 주로 비동기적으로 처리해야 할 작업
* Ajax Web API 요청 : 만약 서버쪽에서 데이터를 받와아야 할 때는, 요청을 하고 서버에서 응답을 할 때 까지 대기를 해야 되기 때문에 작업을 비동기적으로 처리합니다.
* 파일 읽기 : 주로 서버 쪽에서 파일을 읽어야 하는 상황에는 비동기적으로 처리합니다.
* 암호화/복호화 : 암호화/복호화를 할 때에도 바로 처리가 되지 않고, 시간이 어느정도 걸리는 경우가 있기 때문에 비동기적으로 처리합니다.
* 작업 예약 : 단순히 어떤 작업을 몇초 후에 스케쥴링 해야 하는 상황에는, setTimeout 을 사용하여 비동기적으로 처리합니다.
# To-Do
1. 벨로퍼트와 함께하는 모던 리액트 문서
2. 자바스크립트 개발자라면 알아야 할 33가지 개념(참고문서 1)
3. 코어 자바스크립트 / 리액트를 다루는 기술 읽기
---
# 참고문서
1. https://velog.io/@jakeseo_me/2019-03-15-2303-%EC%9E%91%EC%84%B1%EB%90%A8-rmjta5a3xh