Redux 에서 비동기 처리를 위한 라이브러리 이다. (보다는 함수를 반환하게 해주는 것에 초점)
비동기 로직을 action 에서 다루게 한다.
액션 생성자가 단순히 액션 객체를 리턴하는 것이 아닌 함수를 리턴하게 하게 해주면 된다.
그렇기 때문에 Container 는 action 생성자를 컴포넌트에 전달하는 역할만 하면 된다.
const store = createStore(
  reducer,
  composeWithDevTools(applyMiddleware(thunk))
);

thunk 은 action 생성자가 함수를 return 할 때만 반응한다.
action 을 return 할때는 반응하지 않는다.