Model-View-Controller의 개념
-애플리케이션의 객체를 모델, 뷰, 컨트롤러 세 가지 역할 중 하나의 역할로 할당하는 것으로, 애플리케이션 내에서 객체가 수행하는 역할 뿐만 아니라 객체가 서로 통신하는 방식을 정의합니다.
-세 가지 유형의 객체는 각각 추상적인 경계에 의해 다른 객체와 구분되며, 그 경계를 넘어 다른 유형의 객체와 통신합니다.
-애플리케이션 내의 특정 MVC 유형을 한데 모아 레이어라고도 합니다.
Model(모델 객체)
-애플리케이션과 관련된 데이터를 캡슐화하고 해당 데이터를 조작하고 처리하는 로직과 계산을 정의합니다.
-하나의 모델 객체는 다른 모델 객체와 1:1 또는 1:N 대응 관계를 맺을 수 있습니다. ex) 게임 속 캐릭터, 주소록의 연락처
-모델 객체는 데이터를 사용자에게 제공하거나 사용자가 이를 편집할 수 있는 뷰 객체에 명시적으로 연결되어서는 안 됩니다. 즉, 사용자 인터페이스나 표시 문제와 관련이 있어서는 안 됩니다.
View(뷰 객체)
-애플리케이션 내에서 사용자가 볼 수 있는 객체를 말합니다. ex) html 파일로 나타내어지는 화면
-자신이 보이는 방법을 알고 있고 사용자 동작에 응답할 수 있습니다.
-주된 목적: 애플리케이션의 모델 객체의 데이터를 보여주고 해당 데이터를 편집할 수 있도록 하는 것입니다.
-뷰 객체는 MVC 애플리케이션의 모델 객체와는 일반적으로 분리됩니다. ex) 주소록에서 전화번호 및 정보가 보이는 화면들
Controller(컨트롤러 객체)
-하나 이상의 애플리케이션 뷰 객체와 하나 이상의 모델 객체 사이의 코디네이터 또는 중재자 역할을 합니다.
-컨트롤러 객체는 사용자가 버튼을 탭/클릭하거나 텍스트 필드에서 텍스트를 입력하는 것처럼, 뷰 객체에서 이루어진 사용자 동작 및 의도를 해석하며, 신규 혹은 변경된 데이터를 모델 객체에 전달합니다.
-컨트롤러 객체는 뷰 객체로 하여금 모델 객체의 변경사항을 인지하거나, 그 반대의 경우가 가능하도록 하는 매개체가 됩니다.
-애플리케이션의 설정 및 조정 작업을 수행할 수도 있으며, 다른 객체들의 생애주기(Life Cycle)를 관리하기도 합니다.
'기타' 카테고리의 다른 글
[운영체제론] IPC(Inter-Process Communication) (0) | 2021.12.11 |
---|---|
[운영체제론] System Call (0) | 2021.12.11 |
[프로그래밍] C++과 JAVA의 차이점 (0) | 2021.12.09 |
[Jupyter] 주피터 노트북 사용하기 (0) | 2021.10.25 |
Git-flow 이해하기 (0) | 2021.01.03 |