MVC 디자인 패턴

·2023년 1월 26일
0
post-thumbnail

MVC 디자인 패턴이란?

MVC(Model-View-Controller)는 사용자 인터페이스(View), 데이터(Model), 논리 제어(Controller)를 구현하기 위해 흔히 쓰이는 소프트웨어 디자인 패턴 중에 하나입니다.
MVC는 소프트웨어에서 View, Model 및 Controller로 주요 구성 요소를 분리합니다.

사용자 인터페이스(View)
유저에게 시각적 표현을 제공합니다.간단히 말해서 실제 출력을 사용자에게 표시하는 작업을 처리합니다. 또한 사용자의 이벤트(입력, 요청 등)를 컨트롤러에 전달합니다.

데이터(Model)
소프트웨어에 사용되는 모든 데이터 객체를 정의하고 데이터와 관련된 비지니스 로직을 관리합니다.

논리 제어(Controller)
컨트롤러는 뷰에서 사용자 출력을 가져와 모델 또는 뷰에 업데이트하는 로직을 포함합니다.

이를 간단하게 도식화한다면 아래의 그림과 같습니다.

여기서 유저를 제외하고 MVC만 생각한다면 이렇게 표현될 수 도 있습니다.

왜 사용할까?

MVC는 1979년에 최초로 소개되어 현재까지도 널리 쓰이는 패턴입니다. MVC에 어떤 장점이 있기에 지금까지 흔히 쓰일까요? 한 번 알아보도록 하겠습니다.

  • 대규모 소프트웨어에 적합하다.
    MVC는 사용자 인터페이스로부터 비지니스 로직을 분리하여 소프트웨어의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 소프트웨어를 만들 수 있습니다.
    이는 대규모 소프트웨어를 개발할 때 로직을 나누고 구성하기 매우 쉬워지고, 코드의 특정 부분을 빠르게 찾고 새로운 기능을 쉽게 추가할 수 있습니다.

  • 코드 수정이 쉬워진다
    MVC을 사용하면 각 구역은 다른 구역과 독립적이기 때문에 특정 구역의 수정과 추가는 쉽고 아키텍쳐에 영향을 끼지지 않습니다. 즉, MVC 패턴은 소프트웨어의 유연성과 확장성을 높여줍니다.

  • 개발 과정이 빨라진다
    MVC는 세 가지 구역으로 나누어져 있기 때문에 한 개발자가 특정 구역을 개발하는 동안 다른 개발자는 다른 구역을 동시에 개발할 수 있습니다. 이는 MVC 패턴을 사용하면 빠른 개발 과정이 가질 수 있다는 점을 의미합니다.

이 외에도 테스트 기반 개발, 유지관리 등 많은 장점이 존재합니다.

단점

규모가 커지면 너무 많은 의존성~~

파생 디자인 패턴

MVC는 오래 됬고 간단한 디자인 패턴이기 때문에 이를 바탕으로 파생 디자인 패턴이 많이 생겨났습니다. 한 번 무엇이 있는지 간단히 알아보겠습니다.

MVVM

M V VM

MVP

M V P

FLUX

D S V A

결론

간혹, View는 프론트엔드, Controller은 백엔드, Model은 데이터베이스라고 이해하는 분이 계십니다. 하지만 백엔드와 프론트엔드는 각각 독립적으로 MVC를 구현할 수 있습니다.
MVC는 프론트엔드와 백엔드라는 개념이 생기기도 전부터 존재했기 때문에 MVC에 프론트엔드와 백엔드를 대입해서 이해하기보다는, 하나의 방법론 또는 아키텍처 패턴이라고 이해하는 게 좀 더 올바른거 같습니다.

참조 및 인용

Benefit of using MVC - GeeksforGeeks
Model–view–controller - Wikipedia
MVC - MDN Web Docs Glossary: Definitions of Web-related terms | MDN

profile
...

0개의 댓글