# ch4-controller

과거에 서버가 세션 쿠키로 상태를 관리 했다.

따라서 사용자가 새 페이지를 탐색하면 쿠키만 저장하고 기존 페이지의 상태는 잃어버릴 수 밖에 없었다.

그러나 JS 애플리케이션은 단일 페이지에서 실행되므로 클라 메모리에 상태를 저아할 수 있었다.

클라에 상태를 저장하면 여러 장점을 얻는다.

가장 큰 장점은 반응 속도가 빨라진다는 점이다.

상태가 저장되어 있으므로 다음 페이지 로드를 기다릴 필요 없이 즉시 피드백을 받을 수 있다.

데이터나 상태를 어디에 저장할까?

DOM은 미친짓이다. 지금까지는 검증된 MVC 구조를 이용해 애플리케이션의 컨트롤러에 상태를 저장했다.

* 페이지 로드시 컨트롤러는 이벤트 핸들러를 뷰에 부착한다.
* 콜백을 적절하게 처리한다
* 필요시 모델과 데이터를 주고받는다.

컨트롤러는 `모듈화`와 `독립성`만 갖추면 된다.

컨트롤러에 전역 변수를 하나도 정의하지 않으면서 비결합된 컴포넌트로 기능을 수행할 수 있다면 가장 이상적이다.

`module pattern`을 이용하면 이상적인 컨트롤러 만들 수 있다.

## 4.1 모듈 패턴

모듈 패턴은 로직을 캡슐화하고 전역 명칭공간의 남발을 방지하는 훌륭한 기법이다.

이 모든 것은 .. .. ..
