2023.11.07 - TIL

유니·2023년 11월 7일
0
post-custom-banner

MVC pattern

MVC pattern은 소프으웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. M은 Model, V는 View, C는 Controller를 의미한다.

MVC pattern은 어플리케이션을 M, V, C 세 개의 영역으로 분할하고, 각 구성 요소에게 고유한 역활을 부여하는 개발방식이다. 또한 각자의 고유한 규칙을 가지고 있다.

M - Model

Model은 데이터 가공을 책임지는 컴포넌트이다. 여기서 데이터는 데이터베이스나 초기화된 상수, 값, 혹은 변수 등이 있다. Model에서 비즈니스 로직을 처리한 후 모델의 변경 사항을 컨트롤러와 뷰에 전달한다.

Model이 가지고 있는 고유한 규칙으로는 다음과 같다.

  • User가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  • View, Controller에 대한 어떠한 정보도 알지 못하여야 한다.

V - View

View는 User에게 보여지는 부분, User Interface(UI)를 의미한다. MVC pattern은 여러개의 View가 존재할 수 있으며, Model을 통해 데이터를 전달 받아 데이터를 화면에 표시해준다.

View가 가지고 있는 고유한 규칙으로는 다음과 같다.

  • Model이 가지고 있는 정보를 따로 저장해선 안된다.
  • Model, Controller에 대한 어떠한 정보도 알지 못하여야 한다.

C - Controller

Controller는 User의 요청과 그에 맞는 데이터를 Model에게 요청하고 View에 반영하여 사용자에게 보여준다. Model의 데이터 가공이나 View의 상태를 변경해주는 로직을 Controller가 수행한다.

Controller가 가지고 있는 고유한 규칙으로는 다음과 같다.

  • Model, View에 대해 알고있어야한다.
  • Model과 View의 변경을 모니터링 해야한다.

Why?

왜 사용할까?

구글에 MVC에 대해 공부하며 왜 사용하는지에 대해 알아 보았는데 가장 주된 이유는 유지보수의 편리성이였다. 각자에게 고유한 역활을 주어졌다 보니 특정 역활에 대한 수정이 용이하다는점에서 쉬운 수정이 가능하다고 한다.

User에게 보여주는 화면을 고치고싶으면 View를, 데이터나 비즈니스로직을 수정하고싶다면 Model을, View나 Model의 변경에따라 Controller 수정을 하면 된다.

단, 규모가 커질수록 너무나도 복잡해지고 다수의 View와 Model이 생겨 이 모든 View, Model을 컨트롤하기위해 Controller가 커지는 문제점이 있다고 한다.

profile
Prospective Junior Front-end Developer
post-custom-banner

0개의 댓글