본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
Tech.log/개발 상식

[MVC 패턴이란?]

by SpaciousKitchen 2021. 5. 19.

MVC 패턴

Model-View-Controller의 약자로 개발 시의 3가지의 행태로 역할을 나누는 개발 방법 론이다.

비즈니스 처리로직과 사용자 인터페잇 요소들을 분리시켜 서로 영향 없이 개발하기 수월하다는 장점을 지닌다. 

 

Model

'무엇'에 대한 정의 를 한다. 내부 비즈니스를 처리하기 위한 역할을 진행한다.

(처리되는 알고리즘, DB 와 상호작용(CRUD Create Read Update Delete), 데이터 등등..)

 

Controller

'어떻게'에 대한 처리를 알려주는 역할을 한다. 화면의 로직처리 부분이다.사용자의 요청을 받아 처리되는 부분을 구현하며,

요청 내용을 분석해  Model과 View 에 업데이트를 요청한다.

 

Controller는 Model과 View가 각각 무엇을 해야 할 지를 알고 있고, 통제한다.

비지니스 로직을 처리하는 Model과 완전히 UI에 의존적인 View가 서로 직접 통할 수 없게 하는 역할을한다.

 

 

View

화면에 “무엇” 인가를 보여주는 역할을 한다. Controller에 종속되어 모델이나 컨트롤러가 보여주려고 하는 모든것을 보여준다.

 

 

출처:https://qh5944.tistory.com/79?category=418956

 

MVC 패턴의 한계

View는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View를 가진다.

Model은 Controller을 통해서 View와 연결되지만 이렇게 Controller를통해서 하나의 View에 연결 되기 때문에 Model또한 여러개가 될수있다.

 

 

MVC가 복잡해지고 비대해짐에 따라 새로운 기능이 추가되면 크고 작은 문제가 존재하고 소스 분석이나 테스트가 어렵다.

이런 형태를 Massive ViewController (대규모 MVC 어플리케이션)라고 한다.

 

 

Controller는 View와 라이프 사이클이 강하게 연결되어 있기데 분리할 수도 없고 코드분석/수정과 테스트가 모두 힘들어 진다.여러 Side-이는 여러 Side-Effect를 불러온다.

 

이를 위한 다양한 패턴들이 존재한다...! 

 

..to be continued...

 

 

 

'Tech.log > 개발 상식' 카테고리의 다른 글

[함수형 프로그래밍]  (0) 2021.05.19
[RESTFul API]  (0) 2021.05.19
[객체 지향 프로그래밍(Object Oriented Programming)]  (0) 2021.04.27

댓글