본문 바로가기
소프트웨어공학론

Model-View-Controller (MVC) architecture

by 학식러 2023. 4. 27.

 

-Model-View-Controller (MVC) architecture

 

MVC-based Web Application Architecture

설명

1) 데이터를 보여주는 것과 처리하는 것을 분리

 

2) 세가지 논리적 요소로 시스템을 구성

 a) 모델: 데이터 처리 담당, 로직

 b) 뷰: 데이터 보여주기 ex) 동일한 데이터를 표나 그래프로 보여주기, 웹페이지 자체

 c) 컨트롤러: 모델과 뷰를 조합하여 사용자 입력을 처리, 뷰와 모델은 직접 호출하지 않고 컨트롤러를 통해 한다.

 

ex) 계산기 프로그램.

모델 : 순수하게 계산을 해주는 부분

뷰 : 버튼, 계산결과 창

컨트롤러 : 사용자가 누르면 해당하는 계산을 하라고 모델에게 요청, 모델이 계산하면 뷰에게 그리라고 요청

 

예시

: 거의 모든 UI 프로그램, web-based application

 

사용 상황

1) 여러 방법으로 데이터를 보여주고 다룰 때

ex) 어떤 같은 데이터를 막대그래프로, 표로, ...

 

2) 데이터를 보여주고 다루는 방법에 대한 요구사항이 명확하지 않을 때

: 사용자가 막대그래프를 원하는지, 표를 원하는지 명확하지 않을 때

 

장점

: 데이터 처리와 데이터 보여주는 방법을 각자 쉽게 변경 가능

ex) 표, 그래프, 텍스트 등 여러 방법으로 동일한 데이터를 보여줄 때 한 가지 보기 방법에서 데이터를 변경하면 나머지 보기 방법들에서도 변경된 데이터를 쉽게 보여줄 수 있음

 

단점

: 데이터 모델과 데이터를 사용하는 방법이 간단할 때 MVC를 적용하면 코드를 더 작성하게 되고 복잡한 코드가 될 수 있음

'소프트웨어공학론' 카테고리의 다른 글

Repository architecture  (0) 2023.04.28
Event-driven Control  (0) 2023.04.27
Client-Server architecture  (0) 2023.04.27
Architectural Patterns - Layered architecture  (0) 2023.04.27
Representation  (0) 2023.04.26

댓글