MVC 패턴

logY·2022년 7월 18일
0
post-thumbnail

MVC 는 Model, View, Controller의 약자이다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 이다.

디자인패턴

디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 규약을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.
대표적으로 라이브러리나 프레임워크가 디자인패턴의 예시라고 볼 수 있다.

MVC란

MVC는 Model, View, Controller의 약자이다. 하나의 어플리케이션, 프로젝트를 구성할 때 구성 요소를 세가지의 역할로 구분한 패턴이다.

위의 사진을 보면 컨트롤러는 모델과 뷰에 영향을 미칠 수 있지만 모델과 뷰는 서로 독립되어 있어 서로 영향을 줄 수 없다.

모델

  • 데이터를 가진 객체를 모델이라 지칭한다. 데이터는 내부에 상태에 대한 정보를 가질 수도 있고, 모델을 표현하는 이름 속성으로 가질 수 있다.

모델은 다음과 같은 규칙을 가지고 있다.

  1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.

  • 사용자에게 보여지는 유저 인터페이스 요소를 나타낸다. 다시 말해 데이터 및 객체의 입력, 그리고 출력을 담당하는 시각적 요소를 지칭한다.

뷰는 다음과 같은 규칙을 가지고 있다.

  1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  2. 모델과 같이 다른 구성요소들을 몰라야 된다.
  3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

컨트롤러

  • 모델이 어떻게 처리할 지를 알려주는 역할을 하는 것이고, 화면의 로직처리 부분이라고 볼 수 있다. 즉, 사용자가 데이터를 클릭하고, 수정하는 것에 대한 이벤트들을 처리하는 요소를 지칭한다.

컨트롤러는 다음고 같은 규칙을 가지고 있다.

  1. 모델이나 뷰에 대해서 알고 있어야 한다.
  2. 모델이나 뷰의 변경을 모니터링 해야 한다.

MVC패턴을 왜 사용해야 할까?

  • MVC가 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 유지보수성, 어플리케이션의 확장성, 유연성 등이 증가하게 되고 중복되는 코드를 재사용할 수 있다는 측면에서 많은 이득을 볼 수 있다.
profile
백엔드 개발자

0개의 댓글