IT/WEB

MVC 모델

개발자 두더지 2023. 1. 22. 22:02
728x90

MVC모델이란?


 MVC는 Web 프레임워크에서 일반적으로 다뤄지지고 있는 어플리케이션 설정을 정리하기 위한 개념의 하나로 Model, View, Controller로 역할을 분리하여 코딩하는 모델을 일컫는다. 각각의 역할은 다음과 같다.

  • Model : 시스템에서 비즈니스 모델을 담당한다.
  • View : 표시나 입출력을 처리한다.
  • Controller : 유저의 입력을 바탕으로 Model과 View를 제약한다.

 그림으로 표시하면 다음과 같다.

 Model은 본래 한 묶음의 데이터를 처리하는 부품으로, 그 성질 때문에 내부가 복잡한 기능이 포함된 구현, 여러 메소드나 속성에 접근할 수 있게 되어 있으며, 하나가 아닌 여러 개의 View 클래스의 필요한 데이터에 대응하는 것이 일반적이다.  따라서 View가 직접 Model을 참조하는 것은 View가 자신에게 필요로 하지 않는 속성이나 메소드에 접근할 수 있게 되어버리는 문제가 있다. 이러한 이유로 View가 Model을 직접 참고하는 것은 별로 좋지 않다. 

 

 

MVC 모델의 처리 흐름


 유저가 어떤 것을 입력했을 경우의 처리 흐름에 대해서 살펴보면 MVC모델에 대해 더욱 잘 이해가 될 것이다.

 Controller는 Model과 View의 조작만을 기재하면 되므로 거대화를 회피할 수 있으며, View는 받은 데이터를 표시하는 것이 아닌 Model을 참조하여 Model 내의 데이터 상태를 표시한다.

 

 

MVC 모델의 장점과 단점


 장점은 아래 두 가지이다.

  • 기능마다 역할을 나눠 효율적으로 어플리케이션 개발을 할 수 있다.
  • 각각 독립되어 있으므로 변경, 수정이 있어도 다른 곳에서 그에 따른 영향을 받지 않는다.

 반면에 단점은 아래 두 가지이다.

  • 정보 데이터의 관리가 힘들다.
  • View와 Controller의 의존성이 높다.

참고자료

https://www.geekly.co.jp/column/cat-technology/1911_040/

https://qiita.com/s_emoto/items/975cc38a3e0de462966a

728x90

'IT > WEB' 카테고리의 다른 글

좋지 않은 Repository 패턴(안티패턴)  (0) 2023.02.02
SPA, SSR, SSG는 무엇인가?  (0) 2023.01.24
Node.js를 사용하는 이유  (3) 2022.10.06
REST API란?  (0) 2022.10.04
[Django] Django에서 static file(정적파일) 다루기  (0) 2022.07.21