TIL-47, MVC
MVC (Model-View-Controller)
소프트웨어 설계와 관련된 디자인 패턴으로,
소프트웨어 공학에서 흔히 사용되는 설계 패턴이다.
리액트에서 배웠던 단방향 데이터 흐름,
리덕스에서 배웠던 Flux 패턴 역시 일종의 디자인 패턴이다.
- Model
- Data의 정보를 가지고 있다. (자신이 갖고있거나, 데이터베이스에서 갖고오거나)
-
자신이 갖고있는 정보를 Controller와 상호작용한다
-
Controller가 Model에게 정보를 물어보거나, Model이 Controller에게 정보를 반환하거나.
- Model이 View와 직접 정보를 주고받는 일은 거의 없다
- View
- User가 보는 화면을 보여주는 역할 (UI)
- Model, Database에 직접 접근하지 않고, Controller와만 작용한다.
- Contoroller에게 무언가 데이터를 받아서 화면에 보여주는 역할에만 충실하면 된다
- View는 데이터를 받기까지 무슨 일이 벌어지는지 알 수 없다
- Controller
- View에게 정보를 전해준다
- View에서 어떠한 액션, 이벤트를 Controller에게 전달하면, Controller는 일련의 가공을 거친 뒤 Model에게 전달한다. Model은 자신이 갖고 있거나, Database에서 받아온 정보를 Controller에게 전달해주고, Controller는 다시 일련의 가공을 거쳐 View에게 전달해준다.
MVC 관계를 정확하게 파악하고, 왜 나눠야 하는지 등을 확실히 알아두자.