Model, View, Controller의 약자. 각각의 역할만 담당하면 되기 때문에 효율적이고 유지보수가 편해진다.
Model에 데이터를 저장하고 Controller로 Model을 데이터를 관리한다. Model이 변경되면 View를 업데이트 하는데, 중요한 점은 View 통해서 Model을 업데이트가 가능한 양방향 데이터 바인딩을 지원한다는 것이다.

문제는 어플리케이션의 규모가 커져서 Model과 View가 많아지면 데이터 처리가 복잡해지고 예측이 어려워진다.

그래서 페이스북은 데이터의 복잡성을 줄이고 어플리케이션의 확장성을 늘리고자 단방향 데이터 흐름을 가지는 Flux 패턴 구조의 라이브러리를 만든다.
단방향 데이터 흐름을 통해 예측 가능하게 어플리케이션의 상태를 관리한다.
Action(상호작용)이 발생하면 Dispatcher에 전달되고 Store에 변경된 데이터를 쌓다가 한번에 View에 렌더링한다.

View에서 Action이 발생하면 Store를 바로 업데이트하는 것이 아니라 Dispatcher를 거쳐 업데이트하기 때문에 데이터 흐름을 따라가기 용이하고 디버깅할 위치를 찾아내기 쉬워진다.