Model-View-Controller 란 무엇입니까?
MVC (Model-View-Controller)는 프로그램의 각 요소를 잘 정의 된 기능 영역으로 분할하는 소프트웨어 아키텍처 및 디자인 패턴 유형입니다. 모델 뷰 컨트롤러 아키텍처에서 모델은 데이터를 조작, 저장, 검색 및 처리하고 계산하는 모든 내부 프로그램 논리를 처리합니다. 뷰 측면은 사용자의 모델 정보를 표시하고 사용자가 프로그램에 입력 할 수있는 방법을 제공합니다. 컨트롤러는 뷰에서 입력을 가져 와서 평가하거나 처리하고 모델과 상호 작용하여 데이터 또는 프로그램 상태를 변경합니다. 궁극적으로 뷰를 통해 사용자에게 표시됩니다. 모델-뷰어-컨트롤러 디자인은 기능을 캡슐화하기위한 프로그램을 요구하지만, 세 개의 섹션은 여전히 어떤 방식 으로든 서로 상호 작용해야하며 일반적으로 다른보다 공격적인 디자인 패턴과 달리 어떤 의미에서는 서로에 의존합니다.
종종 모델-뷰-컨트롤러 패턴은 GUI (Graphical User Interface)를 관리하는 애플리케이션에서 볼 수 있습니다. MVC 패턴을 사용하면 GUI의 다양한 시각적 요소가 뷰에 의해 처리되고 사용자가 클릭 한 위치 및 항목의 기록 및 처리는 컨트롤러에 의해 처리되며 실제로 정보 변경 또는 정보로드는 모델에 의해 수행됩니다. 응용 프로그램의 정확한 설계에 따라 MVC 패턴의 각 구성 요소는 다른 구성 요소와 상호 작용할 수있는 메커니즘을 가질 수 있습니다. 예를 들어 모델이 화면에 화면을 새로 고치도록 지시 할 수있는 뷰 또는 컨트롤러가 화면을 새로 고침하고 새 입력을받지 않도록합니다. 엄격한 블랙 박스 방식을 사용하는 일부 디자인 패턴과 달리 모델 뷰 컨트롤러 프로그램은 약간 더 융통성있는 경향이 있지만, 일부 구현에서는 MVC 프로그램을 모듈 식으로 변경하거나 디버깅하기가 어려울 수 있습니다.
경우에 따라 model-view-controller 패턴에는 각 구성 요소 중 하나만 포함 할 필요가 없습니다. 한 예는 여러 모니터와 같은 여러보기 또는 여러 클라이언트 장치에서 볼 수있는 디스플레이가있는 응용 프로그램입니다. 여러 사용자가 단일 모델에 응답하여 데이터베이스에 액세스 할 수있는 응용 프로그램에서 여러보기 및 컨트롤러를 사용할 수 있습니다. 그러나 모델-뷰-컨트롤러 구성 요소의 일대일 비율을 유지하는 시스템을 설계하는 것이 더 일반적입니다.
모델-뷰-컨트롤러 구성 요소가 서로 의존하지만, 특히 객체가 아닌 객체 지향의 경우에 패턴을 전혀 사용하지 않는 경우보다 MVC 패턴을 사용하는 시스템의 특정 부분을 수정하는 것이 훨씬 쉽습니다. 신청. 애플리케이션이 콜백 또는 리스너 및 옵저버를 사용하여 컴포넌트 간의 상호 작용을 구현하는 경우 다른 컴포넌트에 영향을주지 않고 각 컴포넌트를 변경할 수 있습니다. 이는 모델이나 컨트롤러에 영향을주지 않고 새로운 GUI를 구현할 수 있음을 의미합니다. 그러나 모델 뷰 컨트롤러 시스템에 대한 근본적인 변경은 각 개별 구성 요소에 대해 약간의 재 코딩이 필요할 수 있습니다.