- 대표적인 UI와 비지니스 로직, 모델을 분리하여 개발하는 소프트웨어 공학의 방법론이다.
- MVC란 소프트웨어가 작동하는 디자인 패턴으로, application의 여러 처리를 기능별로 나눈다.
- 이를 통해서 코드의 가독성과 퀄리티가 높아지고, 개발과 협업의 효율이 오를 수 있다.
Model은 데이터 정보를 가지거나 데이터베이스와 연결되어 데이터를 가져올 수 있다.
데이터베이스와 직접 상호작용하여 Controller에 필요한 데이터를 주고, 새로운 데이터를 받는 등 Controller와도 상호작용을 할 수 있다.
사용자가 직접 보게 되는 화면을 만들어낸다. (User Interface, UI)
Controller와 상호작용하여 사용자의 행동이나 이벤트 발생을 전달한다.
Controller를 통해서 필요한 데이터를 받아서 화면을 그려낸다.
View의 action, event를 input값으로 받는다.
이 받은 값들을 Model에 건네기 전에 일련의 가공과정을 거친다.
그리고 Model에 가공된 데이터를 전달한다.
Model에게서 받은 데이터를 View에 알맞게 가공하여 View에게 전달한다.
간단하 예시
- 브라우저에서 사용자의 활동이 발생하면, Router에서 활동이 일어난 특정 endpoints를 routing한다.
- 각 router는 routing endpoint에 맞는 controller의 함수를 부른다.
- controller는 view에 데이터를 바로 전달하거나, model을 거쳐서 데이터베이스로부터 데이터를 받아 view에 전달한다.