초보자를 위한 MVC 프레임워크 튜토리얼:이란 무엇입니까? Archi강의 및 예시
MVC 프레임워크란 무엇입니까?
The 모델-뷰-컨트롤러(MVC) 프레임워크는 애플리케이션을 세 가지 주요 논리적 구성 요소인 모델, 뷰, 컨트롤러로 분리하는 아키텍처 패턴입니다. 따라서 MVC라는 약어가 있습니다. 각 아키텍처 구성 요소는 애플리케이션의 특정 개발 측면을 처리하도록 구축됩니다. MVC는 비즈니스 로직과 프레젠테이션 계층을 서로 분리합니다. 전통적으로 데스크톱 그래픽 사용자 인터페이스(GUI)에 사용되었습니다. 오늘날 웹 기술의 MVC 아키텍처는 웹 애플리케이션과 모바일 앱을 설계하는 데 인기를 얻고 있습니다.
MVC의 역사
- MVC 아키텍처는 1979년 Trygve Reenskaug에 의해 처음 논의되었습니다.
- MVC 모델은 1987년 Smalltalk 프로그래밍 언어로 처음 소개되었습니다.
- MVC는 1988년 기사에서 처음으로 일반적인 개념으로 받아들여졌습니다.
- 최근 MVC 패턴은 최신 웹 애플리케이션에서 널리 사용됩니다.
MVC의 특징
- 쉽고 마찰 없는 테스트 가능성. 테스트 가능성이 높고 확장 가능하며 플러그 가능한 프레임워크
- MVC 패턴을 사용하여 웹 애플리케이션 아키텍처를 설계하면 HTML과 URL에 대한 완전한 제어가 가능합니다.
- ASP.NET, JSP, Django 등이 제공하는 기존 기능을 활용합니다.
- 로직의 명확한 분리: 모델, 뷰, 컨트롤러. 비즈니스 로직, UL 로직, 입력 로직 등 애플리케이션 작업의 분리
- SEO 친화적인 URL을 위한 URL 라우팅. 이해 가능하고 검색 가능한 URL을 위한 강력한 URL 매핑
- 테스트 주도 개발(TDD) 지원
MVC Archi강의
MVC 프레임워크의 자세한 아키텍처는 다음과 같습니다.
세 가지 중요한 MVC 구성 요소는 다음과 같습니다.
- 모델: 모든 데이터와 관련 로직을 포함합니다.
- 보기: 사용자에게 데이터를 표시하거나 사용자 상호 작용을 처리합니다.
- Controller: Model과 View 구성 요소 간의 인터페이스
이 구성 요소를 자세히 살펴보겠습니다.
관측
뷰는 데이터 표시를 나타내는 애플리케이션의 일부입니다.
뷰는 모델 데이터에서 수집된 데이터로 생성됩니다. 뷰는 모델이 사용자에게 출력 프레젠테이션을 제공할 수 있도록 정보를 제공하도록 요청합니다.
뷰는 또한 차트, 다이어그램 및 표의 데이터를 나타냅니다. 예를 들어, 모든 고객 뷰에는 텍스트 상자, 드롭다운 등과 같은 모든 UI 구성 요소가 포함됩니다.
제어 장치
컨트롤러는 사용자 상호 작용을 처리하는 애플리케이션의 일부입니다. 컨트롤러는 사용자의 마우스 및 키보드 입력을 해석하여 모델과 뷰에 적절하게 변경하도록 알립니다.
컨트롤러는 상태를 업데이트하기 위해 모델에 명령을 보냅니다(예: 특정 문서 저장). 또한 컨트롤러는 보기의 표시를 변경하기 위해 연결된 보기에 명령을 보냅니다(예: 특정 문서 스크롤).
모델
모델 구성 요소는 데이터 및 관련 논리를 저장합니다. 이는 컨트롤러 구성 요소 또는 기타 관련 비즈니스 논리 간에 전송되는 데이터를 나타냅니다. 예를 들어 Controller 개체는 데이터베이스에서 고객 정보를 검색합니다. 데이터를 조작하여 데이터베이스로 다시 보내거나 이를 사용하여 동일한 데이터를 렌더링합니다.
뷰의 요청에 응답하고 컨트롤러의 지시에 응답하여 자체 업데이트합니다. 또한 데이터 유지를 담당하는 패턴의 가장 낮은 수준이기도 합니다.
MVC 예
일상생활에서 Model View Controller의 예를 살펴보겠습니다.
예제 1
- 당신이 레스토랑에 갔다고 가정해보자. 당신은 부엌에 가서 집에서 확실히 할 수 있는 음식을 준비하지 않을 것입니다. 대신 거기에 가서 웨이터가 올 때까지 기다리세요.
- 이제 웨이터가 와서 음식을 주문합니다. 웨이터는 당신이 누구인지, 당신이 무엇을 원하는지 알지 못합니다. 그는 단지 음식 주문의 세부 사항을 적어 놓았을 뿐입니다.
- 그런 다음 웨이터가 주방으로 이동합니다. 주방에서는 웨이터가 음식을 준비하지 않습니다.
- 요리사가 음식을 준비합니다. 웨이터는 테이블 번호와 함께 주문서를 받습니다.
- 당신을 위해 준비된 음식을 요리하세요. 그는 음식을 요리하기 위해 재료를 사용합니다. 귀하가 야채 샌드위치를 주문한다고 가정해 보겠습니다. 그런 다음 그는 냉장고에서 조달하는 빵, 토마토, 감자, 고추, 양파, 비트, 치즈 등이 필요합니다.
- 마지막으로 음식을 웨이터에게 넘겨주세요. 이제 이 음식을 부엌 밖으로 옮기는 것이 웨이터의 임무입니다.
- 이제 웨이터는 귀하가 주문한 음식이 무엇인지, 어떻게 제공되는지 알고 있습니다.
이 MVC 아키텍처 예제에서
View= You Waiter= Controller Cook= Model Refrigerator= Data
MVC 모델 예를 하나 더 살펴보겠습니다.
예제 2
자동차 운전 메커니즘은 MVC 모델의 또 다른 예입니다.
- 모든 자동차는 세 가지 주요 부분으로 구성됩니다.
- 보기 = 사용자 인터페이스 : (기어 레버, 패널, 스티어링 휠, 브레이크 등)
- 컨트롤러- 메커니즘(엔진)
- 모델 - 저장(휘발유 또는 디젤 탱크)
자동차는 엔진으로 작동하며 저장소에서 연료를 사용하지만 언급된 사용자 인터페이스 장치를 통해서만 작동합니다.
인기 있는 MVC 웹 프레임워크
다음은 인기 있는 MVC 프레임워크 목록입니다.
- Ruby on Rails
- 장고
- CakePHP
- 이이
- 체리 파이
- 봄 MVC
- 촉매
- 울타리
- 젠드 프레임 워크
- CodeIgniter
- Laravel
- 연료 PHP
- Symphony
MVC의 장점: 주요 이점
MVC 아키텍처를 사용하는 주요 이점은 다음과 같습니다.
- 확장 및 확장이 용이한 코드 유지 관리가 용이함
- MVC 모델 구성 요소는 사용자와 별도로 테스트할 수 있습니다.
- 새로운 유형의 클라이언트에 대한 더 쉬운 지원
- 다양한 구성 요소의 개발을 동시에 수행할 수 있습니다.
- 애플리케이션을 세 가지 단위로 나누어 복잡성을 피하는 데 도움이 됩니다. 모델, 뷰, 컨트롤러
- 단일 컨트롤러를 통해 웹 애플리케이션 요청을 처리하는 전면 컨트롤러 패턴만 사용합니다.
- 다음에 대한 최고의 지원을 제공합니다. 테스트 중심 개발
- 웹 디자이너와 개발자로 구성된 대규모 팀이 지원하는 웹 앱에 적합합니다.
- 명확한 관심사 분리(SoC)를 제공합니다.
- 검색 엔진 최적화(SEO) 친화적입니다.
- 모든 클래스와 개체는 서로 독립적이므로 별도로 테스트할 수 있습니다.
- MVC 디자인 패턴을 사용하면 컨트롤러의 관련 작업을 논리적으로 그룹화할 수 있습니다.
MVC 사용의 단점
- 이 모델을 읽고, 변경하고, 단위 테스트하고, 재사용하기가 어렵습니다.
- 프레임워크 탐색은 사용자가 MVC 분해 기준에 적응해야 하는 새로운 추상화 계층을 도입하므로 다소 복잡할 수 있습니다.
- 공식적인 검증 지원 없음
- 데이터의 복잡성 증가 및 비효율성
- 최신 사용자 인터페이스에서 MVC를 사용하는 데 따른 어려움
- 병렬 프로그래밍을 수행하려면 여러 프로그래머가 필요합니다.
- 다양한 기술에 대한 지식이 필요합니다.
- Controller의 수많은 코드 유지관리
3 계층 Archi강의 대 MVC Archi강의
매개 변수 | 3-Tier Archi강의 | MVC Archi강의 |
---|---|---|
의사 소통 | 이러한 유형의 아키텍처 패턴은 데이터 계층과 직접 통신하지 않습니다. | 모든 레이어는 삼각형 토폴로지를 사용하여 직접 통신합니다. |
용법 | 3계층: 클라이언트, 데이터 계층 및 미들웨어가 물리적으로 분리된 플랫폼에서 실행되는 웹 애플리케이션에 널리 사용됩니다. | 일반적으로 단일 그래픽 워크스테이션에서 실행되는 응용 프로그램에 사용됩니다. |
요약
- MVC는 애플리케이션을 1) 모델, 2) 뷰, 3) 컨트롤러로 분리하는 아키텍처 패턴입니다.
- 모델: 모든 데이터와 관련 로직을 포함합니다.
- 보기: 사용자에게 데이터를 표시하거나 사용자 상호 작용을 처리합니다.
- Controller: Model과 View 구성 요소 간의 인터페이스
- MVC 아키텍처는 1979년 Trygve Reenskaug에 의해 처음 논의되었습니다.
- MVC 아키텍처 Java 테스트 가능성이 높고 확장 가능하며 플러그 가능한 프레임워크입니다.
- 인기 있는 MVC 프레임워크로는 Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP 등이 있습니다.