MVC 패턴

진성·2022년 7월 18일
0
post-thumbnail

MVC 패턴이란?

MVC 패턴은 디자인 패턴 중 하나이다.

보통 개발자들은 개발을 할 때 협업을 많이 진행하게 되는데 이때 폴더구조나 코드 스타일 또는 코드 작성 패턴 등을 맞혀서 진행을 해야 협업을 하는데 편하게 진행 할 수가 있다.
MVC 패턴 또한 같은 맥락이라고 볼 수 있다.

MVC 패턴은 폴더구조 패턴 중 하나이다.
MVC는 크게 Model, View, Controller 이 3가지의 폴더로 구조가 나뉘게 되고 각각의 폴더는 규칙이 정해져있다.

Model

model은 데이터 베이스와 연동하여 내부 로직을 처리하기 위한 역할을 하는 파일들을 모아놓는다.
쉽게 예를 들면 데이터 베이스의 컬렉션을 만들어주는 스키마 로직을 모아놓는 것이다.

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

  • 사용자가 편집하기를 원하는 모든 데이터를 가지고 있어야 한다.
  • view나 Controller에 대해서 어떤 정보도 알지 말아야 한다.

View

View는 프론트엔드에 해당하는 부분이다.
즉, 사용자의 UI에 해당한다고 보면 된다.
최근 개발 트렌드는 프론트엔드와 백엔드로 나뉘어 개발을 진행을 하게 되는데, 이전에는 프론트엔드와 백엔드에 개념이 없이 한 개발자가 모두 개발을 하였기에 이러한 패턴이 나왔다고 보면 된다.

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

  • Model이 가지고 있는 정보를 따로 저장해서는 안된다.
  • Model이나 Controller와 같이 다른 구성요소들을 몰라야 한다.

Controller

Controller는 Model과 View를 이어주는 로직이다.
쉽게 말해 백엔드 기능을 담당하고 있는 로직들을 모아놓은 곳이다.
View의 어떠한 요청이 있으면 Controller가 해당 요청을 수행하는 Model들을 호출하고 정상요청이 되면 다시 View로 전달을 하는 역할이다.

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

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

MVC의 장점

  • 코드의 재사용성이 증가한다.
  • 유지보수가 편해진다.
  • 기능별로 코드를 분리해 놓기에 코드 가독성이 매우 좋아진다.
  • 협업을 할때 코드 안전성 또한 올라간다.

MVC의 단점

프로젝트가 커지면 Controller의 무게가 너무 커지게 된다.
Model과 View는 서로 독립적인 상태이기 때문에 Controller를 통해 소통이 이루어진다.
그렇기에 의존성이 완전히 분리될 수가 없다.
이러한 현상을 Massive-View-Controller 현상이라고 한다.

참고 : MVC 패턴이란?

profile
풀스택 진행중...

0개의 댓글