less than 1 minute read

MVC (Model-View-Controller)

소프트웨어 설계와 관련된 디자인 패턴으로,

소프트웨어 공학에서 흔히 사용되는 설계 패턴이다.

리액트에서 배웠던 단방향 데이터 흐름,

리덕스에서 배웠던 Flux 패턴 역시 일종의 디자인 패턴이다.

  1. Model
  • Data의 정보를 가지고 있다. (자신이 갖고있거나, 데이터베이스에서 갖고오거나)
  • 자신이 갖고있는 정보를 Controller와 상호작용한다

  • Controller가 Model에게 정보를 물어보거나, Model이 Controller에게 정보를 반환하거나.

  • Model이 View와 직접 정보를 주고받는 일은 거의 없다
  1. View
  • User가 보는 화면을 보여주는 역할 (UI)
  • Model, Database에 직접 접근하지 않고, Controller와만 작용한다.
  • Contoroller에게 무언가 데이터를 받아서 화면에 보여주는 역할에만 충실하면 된다
  • View는 데이터를 받기까지 무슨 일이 벌어지는지 알 수 없다
  1. Controller
  • View에게 정보를 전해준다
  • View에서 어떠한 액션, 이벤트를 Controller에게 전달하면, Controller는 일련의 가공을 거친 뒤 Model에게 전달한다. Model은 자신이 갖고 있거나, Database에서 받아온 정보를 Controller에게 전달해주고, Controller는 다시 일련의 가공을 거쳐 View에게 전달해준다.

MVC 관계를 정확하게 파악하고, 왜 나눠야 하는지 등을 확실히 알아두자.

Updated: