MVC 패턴이란

김민영·2023년 1월 14일
0

CS 스터디

목록 보기
5/32

요약

  • Model: 백그라운드에서 동작하는 비즈니스 로직(데이터) 처리
  • View: 정보를 화면으로 보여주는 역할
  • Controller: 사용자의 입력 처리와 흐름 제어 담당. 화면과 Model, View를 연결

디자인 패턴

  • 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여
    특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것
  • ex. 라이브러리, 프레임워크

MVC 패턴

  • 디자인 패턴의 일종
  • Model View Controller. 하나의 애플리케이션, 프로젝트를 구성하는 구성 요소를 세 가지의 역할로 구분한 패턴

Model 모델

  • 어플리케이션의 정보, 데이터. 데이타베이스, 처음 정의하는 상수, 초기값, 변수 등을 뜻. 이러한 데이터의 가공을 책임지는 컴포넌트.
  • 어플리케이션이 포함해야 할 데이터가 무엇인지 정의.

규칙

  1. 사용자가 편집하기 원하는 모든 데이터를 가지고 있어야 함.
  2. 뷰, 컨트롤러에 대해 어떤 정보도 알지 말아야 함.
  3. 변경 발생 시, 변경 통지에 대한 처리 방법 구현해야 함.

View 뷰

  • 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어옴. HTML, CSS, JS
  • 데이터 출력 방식을 정의

규칙

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

Controller 컨트롤러

  • 사용자가 접근한 URL에 따라 사용자 요청사항 파악한 후, 그 요청에 맞는 데이터를 Model에 의뢰하고, 데이터를 View에 반영.
  • 모델에 명령을 보내 뷰의 상태 변경
  • 컨트롤러가 관련 모델에 명령을 보내 뷰의 표시 방법 변경
  • 모델, 뷰를 업데이트

규칙

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

사용 이유

  • 데이터 관리하는 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행 가능
  • Model과 View가 다른 컴포넌트에 종속되지 않아 어플리케이션의 확장, 유연에 유리
  • 중복 코딩 문제점 제거

한계

  • Model은 Cotroller를 통해 View와 연결된다.
  • Controller에 연결되어 화면을 구성하는 View가 여러 개가 될 수 있다.
  • Controller에 연결된 Model 또한 여러 개가 될 수 있다.
  • Controller에 다수의 Model과 View가 복잡하게 연결되면 View와 Model이 의존성을 가지게 될 수 있다.
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글