본문으로 이동

모델-뷰-컨트롤러

위키백과, 우리 모두의 백과사전.
TedBot (토론 | 기여)님의 2017년 2월 7일 (화) 15:21 판 (봇: 분류 이름 변경 (분류:디자인 패턴 → 분류:소프트웨어 디자인 패턴))
모델, 뷰, 컨트롤러의 관계를 묘사하는 간단한 다이어그램. 주: 굵은 선은 직접적인 관계를, 점선은 간접적인 관계를 나타낸다(옵저버 패턴).
웹 애플리케이션에서 일반적인 MVC 구성요소 다이어그램

모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.

구성요소

모델-뷰-컨트롤러는 응용 프로그램을 세 가지의 구성요소로 나눈다. 각각의 구성요소들 사이에는 다음과 같은 관계가 있다. [1]

  • 컨트롤러는 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. (예: 워드 프로세서에서 문서를 편집하는 것) 또, 컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다. (문서를 스크롤하는 것)
  • 모델은 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가·제거·수정할 수 있다. 어떤 MVC 구현에서는 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어 오기도 한다.
  • 는 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다.

역사

MVC는 제록스 팰러앨토 연구소에서 스몰토크 관련 일을 하던 Trygve Reenskaug이 1979년 최초로 소개했다.[2] 관련 구현은 영향력있는 논문인 《스몰토크-80에서의 애플리케이션 프로그래밍: 모델-뷰-컨트롤러를 사용하는 방법》[3]에서 깊이 있게 설명되었다.

MVC는 여러 파생 패턴을 가지고 있다; 그 중 (마이크로소프트가 사용했기 때문에) 가장 널리 알려진 것은 1990년대 초기부터 등장하기 시작한 모델 뷰 프리젠터 패턴이다. 이 패턴은 MVC의 진화된 모습을 목표로 설계되었다. 그러나 모델-뷰-컨트롤러는 여전히 매우 널리 사용되고 있다.

2002년 11월 W3C는 미래의 웹 애플리케이션에 사용될 X폼즈(XForms) 아키텍처에 MVC 구조가 포함되도록 투표하여 가결하였다.[4] 이 규격은 XHTML 2.0 규격에 바로 통합될 것이다. 현재 20개가 넘는 업체가 애플리케이션 스텍에 MVC가 통합된 X폼즈 프레임워크를 지원하고 있다.


같이 보기

각주

  1. Buschmann, Frank (1996) Pattern-Oriented Software Architecture.
  2. Trygve M. H. Reenskaug/MVC—제록스 팍 1978-79
  3. Applications Programming in Smalltalk-80: How to use Model–View–Controller
  4. Forms 1.0 Basic Profile

바깥 고리