MVC

Smile:)today·2024년 7월 19일

디자인 패턴

소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴

사용이유

개발의 효율성, 유지보수성, 운용성, 최적화

MVC(Model, View, Controller)

하나의 어플리케이션, 프로젝트를 구성할 때 그 구성요소를 세 가지의 역할로 구분한 디자인 패턴
잘 구현하면 UI로부터 비즈니스 로직을 분리하여 시각적 요소와 비즈니스 로직을 서로 영향 없이 독립적으로 유지보수 가능

  • 비즈니스 로직(도메인 로직): 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 부분

Model

  • 프로그램이 작업하는 세계관의 요소들을 개념적으로 정의한 것
  • 작업에 필요한 물리적 개체, 규칙, 작업 등의 요소들을 구분하는 역할
  • 도메인 이해가 중요
  • 물리적 요소 + 추상적인 요소를 특정 책임과 역할로서 구분될 수 있다면 최대한 구체적이고 작은 entity를 유지하면서 모델을 설계하는 것이 중요

View

  • 사용자가 보는 화면에 입출력 과정 및 결과를 보여주기 위한 역할(UI)
  • 입출력의 순서나 데이터 양식은 Controller에 종속되어 결정됨, 이때 뷰는 도메인 모델의 상태를 변환하거나 받아서 렌더링하는 역할
  • View에서는 도메인 객체의 상태를 따로 저장하고 관리하는 클래스 변수나 인스턴스 변수가 필요 없음

Controller

  • Model과 View를 연결시켜주는 다리
  • View로부터 사용자의 Action을 받아 Model에 어떤 작업을 해야하는지 알려주거나 Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할 지 알려줌
  • 도메인 객체들의 조합을 통해 프로그램의 작동 순서나 방식을 제어

MVC 패턴 흐름

Model과 View는 Controller를 통해 소통

소통 방법

Controller -> Model 언제든지 얘기
Model은 Controller 얘기 못함


참고문헌

링크텍스트

비즈니스 로직

profile
Hi, I'm vitamin

0개의 댓글