Model, View, Controller
어플리케이션을 3가지 역할로 구분한 소프트웨어 디자인 패턴
![](https://velog.velcdn.com/images/gemnsh/post/0e1bd877-bcdf-4b2b-9200-77888af8a367/image.svg)
유저가 컨트롤러를 조작해서 모델을 제어하고, 이를 바탕으로 뷰를 업데이트 해 시각적 표현을 구성함
Model
- 데이터를 가진 객체
- 데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 전송함
View
Controller
- 앱의 사용자로부터의 입력에 대한 응답
- 모델이나 뷰를 업데이트라는 로직을 포함함
웹의 초창기에는 서버 사이드에 구현되었지만 요즘에는 `XMLHttpRequest` 같은 많은 로직들이 클라이언트 사이드에 추가됨
XMLHttpRequest
: 페이지 전체를 새로고침하지 않고 원하는 데이터를 제공받기 위해 사용(ex: Ajax)