- 애플리케이션의 구성 요소를 세 가지 역할로 구분하고 개발 프로세스에서 각각의 구성 요소에만 집중해 개발하는 패턴
- 재사용성과 확장성에 용이함!
- 하지만 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해짐.
모델
- 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻함.
뷰
- inputbox, checkbox등 사용자 인터페이스 요소
- 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 화면에 인터페이스를 출력해주는 역할
- 변경이 일어나면 컨트롤러에 전달해야함
컨트롤러
리액트가 좋은 예시
- 가상 DOM을 통해 실제 DOM을 조작하는 것을 추상화해서 성능을 높임.
- state는 setState를 통해서만 수정이 가능한 불변성을 가짐.