MVC패턴

·2023년 4월 28일
0

study

목록 보기
68/81
post-thumbnail

MVC 패턴

MVC 패턴은 Model - View - Controller의 약자이다.

MVC 패턴은 하나의 애플리케이션, 프로젝트를 구성할 떄 그 구성요소를 세 가지의 역할로 구분한 패턴이다.

사용자가 Contoller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달을 한다.

이 MVC 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션으로 제작할 수 있다.

Model

데이터를 가진 객체를 모델이라고 지칭한다.

데이터는 내부 상태에 대한 정보를 가질 수도 있고, 모델을 표현하는 이름, 속성으로 가질 수 있다.
모델의 상태 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다.
이와 같은 통보를 통해 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있다.

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

View

View는 사용자가 직접 마주하는 사용자 인터페이스로, 주로 프론트엔드 쪽 기술들을 모아놓은 컨테이너이다.
사용자가 볼 결과물을 생성하기 위하여 모델로부터 정보를 불러온다.

뷰의 규칙

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

Controller

사용자가 접근한 URL에 따라 사용자의 요청 사항을 파악한 후에 그 요청에 맞는 데이터를 Model에 의뢰하고 데이터를 Veiw에 반영해서 사용자에게 알려준다.

컨트롤러의 규칙

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

MVC 패턴의 장단점

장점

  • 비즈니스 로직과 UI 로직을 분리하여 유지 보수를 독립적으로 시행 가능
  • Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성과 유연성에 유리하다.
  • 중복 코딩의 문제점 제거

단점

  • View는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View를 가질 수 있다.
  • Model은 Controller를 통해서 View와 연결되지만, Controller에 의해 하나의 View에 연결될 수 있는 Model도 여러 개이므로 View와 Model이 의존성을 띄게 된다.
profile
개발자 꿈나무

0개의 댓글