MVC 패턴

Seol·2020년 10월 26일
0

MVC패턴이란?

Model-View-Controller의 약자로 소프트웨어 디자인 패턴 중 하나이다.
에플리케이션을 개발할 때 Model, View, Controller 세가지의 역할로 분리시켜 코드 가독성, 관리성이 좋아진다는 장점이 있다.


Model

데이터의 정보를 직접 가지고 있거나 데이터베이스와 상호작용하여 데이터를 다루는 역할을 한다.
Controler에서 Model에게 데이터를 요청하면 Model은 데이터를 처리하고 Controller에게 반환하는 동작을 한다.

View

사용자가 보는 화면을 보여주는 역할(UI)을 한다.
Model이나 Database에 직접 접근하지 않고 View에서 일어나는 액션이나 이벤트를 Controller에게 전달해주고 Controller로부터 처리된 결과를 반환받아 View를 업데이트하는 동작을 한다.

Controller

Model과 View의 중개 역할을 한다.
사용자로부터 요청을 받아 Model과 View의 업데이트를 처리하는 동작을 한다.


MVC패턴의 한계

MVC패턴의 가장 큰 단점은 양방향 데이터 흐름이다. 복잡하지 않은 에플리케이션에서 양방향 데이터 흐름은 문제가 되지 않을 수 있지만 아래의 이미지처럼 Model이나 Model과 관련된 View가 대량으로 시스템에 추가되면 복잡도가 폭발적으로 증가하게 된다.

MVC패턴에서 Controller는 Model의 데이터를 조회하거나 업데이트하는 요청을 하게되고 View는 업데이트된 Model을 화면에 반영하게 되는데 업데이트된 View가 다시 Model 업데이트하고 또 다른 View가 업데이트될 수 있다.
이런 양방향 데이터 흐름은 새로운 기능이 추가될수록 예측 불가능한 코드를 만들어낸다.
페이스북은 이러한 문제를 해결하기 위해 좀 더 예측 가능한 형태로 코드를 구조화하는 것이 필요하며 이것은 Flux와 React를 이용해서 달성할 수 있다고 한다.

참고
(https://blog.coderifleman.com/2015/06/19/mvc-does-not-scale-use-flux-instead/)

profile
🔥공부🔥

0개의 댓글