-
(4) MVC 패턴CS 지식/▷ Software Engineering 2021. 10. 5. 00:54
1. MVC 패턴이란?
1-1) 정의
MVC패턴은 디자인패턴 중 하나
- 자주 사용되는 기준을 3개(Model, View, Controller)로 분리하여 개발하여 유지보수 및 가독성을 높이는 것
- 비지니스 처리 로직 + 사용자 인터페이스 요소로 분리하여 개발
a) 디자인 패턴이란?
디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것
ex) Build Pattern, Factory Pattern, Strategy Pattern, Observer Pattern...
내글 참조 : https://korshika.tistory.com/37?category=962145
1-2) 특징
- 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴
- Model
- 정의 : 어플리케이션이 “무엇”을 할 것인지를 정의, 내부 비지니스 로직을 처리하기 위한 역할
- 예시 : 정보/input 처리 알고리즘, DB와 interaction(CRUD), 데이터 처리, 처음 정의되는 상수, 초기화값 등등
- 특징 :
사용자가 편집되기를 원하는 모든 데이터를 가지고 있어야 함
Model은 View 및 Controller와 독립적이어야 함 - Controller
- 정의 : 웹에서는 모델이 “어떻게” 처리할 지를 알려주는 역할, 모바일에서는 화면의 로직처리 부분
모델이 “어떻게” 처리할 지를 알려주는 역할을 할 것이고, 모바일에서는 화면의 로직처리 부분
- 예시 : 사용자로 부터의 입력 을 받고 Model 또는 View중개인 역할
- 특징 :
모델이나 뷰에 대해서 알고 있어야 함
모델이나 뷰의 변경을 모니터링 해야 함 - View
- 정의 : 화면에 “무엇” 인가를 “보여주기 위한 역할”
컨트롤러 하위에 종속되어, 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여줌
- 예시 : 최종 사용자에게 “무엇”을 화면(UI)으로 보여줌
- 특징 :
모델이 가지고 있는 정보를 따로 저장해서는 안됨
모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야함(독립적이어야 함)
변경이 일어나면 변경통지에 대한 처리방법을 구현
※ 추가 설명
- Controller : "user"의 entrypoint의 역할로 맨 처음 불리고, 로직에 따라 <어떻게> 처리할지 구성이 됨
- Model : <어떻게>에 따라, model에서 데이터 가공 및 저장, 및 데이터 read등을 수행
<핵심> 및 무엇을 처리할지 정의된 부분
- View : Controller의 로직에 따라 <핵심> 결과를 다시 보여주는 부분, 또한 entry에 값을 받아오는 부분
1-3) 한계
- MVC에서 View는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View들을 가짐
(MVC로 제작하면, view를 모델을 통해서 값들을 주고 Controller가 최종적으로 rendering 하게 되어있음)- Model은 Controller를 통해서 View와 연결되어지지만, 이렇게 Controller를 통해서 하나의 View에 연결될 수 있는 Model도 여러개가 될 수 있음
- View 업데이트를 위한 Model들이 여러개가 쓰일 수 있기 때문에, 분리가 되지 않고 View가 모델에 종속이 되므로, 유지보수가 어렵게 됨( Massive View Controller 라고도 표현 )
참조
https://m.blog.naver.com/jhc9639/220967034588
반응형'CS 지식 > ▷ Software Engineering' 카테고리의 다른 글
(3) 테스트 주도 개발(TDD) (0) 2021.08.15 (2) 시큐어 코딩 (0) 2021.08.08 (1) 클린코드와 리팩토링 (0) 2021.08.04 - Model