이 주제에 대해서 본인이 아는 한에 한해서 글을 써 내 보려고 한다.
일단,
M은 Model을 의미하고,
V는 View,
C는 Controller를 뜻한다.
Google을 통해, 'MVC'를 검색하고, 제일 처음 나온 글을 살펴보니,
WIkipedia에서 이렇게 정의하고 있다.
Model–view–controller (MVC) is a software architecture pattern that separates the representation of information from the user's interaction with it.
라고, 의미를 해석해보면,
모델-뷰-컨트롤러 는 사용자의 상호작용(그것과의)으로 부터의 정보 묘사를 분리시키는 소프트웨어 구조이다.
이다.
그리고 이어서 이렇게 설명하고 있다.
각각의 문장을 나누어서 살펴보자.
The model consists of application data, business rules, logic, and functions.
모델은 어플리케이션 자료, 비지니스 규칙들, 그리고 기능들로 구성되어 있다.
A view can be any output representation of data, such as a chart or a diagram.
뷰는 다이어그램 차트 같은 어떤 자료의 출력 묘사가 될 수 있다.
Multiple views of the same data are possible, such as a pie chart for management and a tabular view for accountants.
경영을 위한 파이 그래프, 회계를 위한 표 화면 같은, 같은 자료의 많은 뷰들이 가능하다.
The controller mediates input, converting it to commands for the model or view.
컨트롤러는 입력과 그것을 모델 또는 뷰를 위한 명령어로 변환시키는 것을 중재한다.
The central ideas behind MVC are code reusability and separation of concerns.
mvc의 중요한 개념은 코드 재사용과 관념의 분리이다.
wiki의 내용을 보면 위와 같이 MVC의 개념을 알 수 있다.
그 아래에 있는 내용들을 좀더 살펴보자.
Component interactions.
컴포넌트 상호 작용.
In addition to dividing the application into three kinds of components, the MVC design defines the interactions between them.
어플리케이션을 이 세 가지의 컴포넌트로 나눈 것에 더하여, mvc 디자인은 이것들의 상호작용을 정의한다.
A controller can send commands to its associated view to change the view's presentation of the model (e.g., by scrolling through a document). It can also send commands to the model to update the model's state.
컨트롤러는 모델의 뷰의 화면을 바꾸기 위해 관련된 뷰에 명령어를 보낼 수 있다.
또한, 모델의 상태를 업데이트하기 위해 모델에 명령을 보낼 수 있다.
A model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated output, and the controllers to change the available set of commands. A passive implementation of MVC omits these notifications, because the application does not require them or the software platform does not support them.
모델은 화면과 컨트롤러들의 상태가 바뀔 때마다 그것과 관련된 화면과 컨트롤러들을 알려준다. 지시