logo

MVC 프레임워크 소개

지난 몇 년 동안 웹사이트는 약간의 CSS가 포함된 단순한 HTML 페이지에서 수천 명의 개발자가 동시에 작업하는 믿을 수 없을 정도로 복잡한 애플리케이션으로 전환되었습니다. 이러한 복잡한 웹 애플리케이션을 사용하기 위해 개발자는 다양한 디자인 패턴을 사용하여 프로젝트를 배치하고 코드를 덜 복잡하고 작업하기 쉽게 만듭니다. 이러한 패턴 중 가장 인기 있는 것은 MVC입니다. 또한 ~으로 알려진 모델 뷰 컨트롤러.

MVC란 무엇입니까?

그만큼 모델-뷰-컨트롤러(MVC) 프레임워크는 애플리케이션을 세 가지 주요 논리적 구성 요소로 분리하는 아키텍처/디자인 패턴입니다. 모델 , 보다 , 그리고 제어 장치 . 각 아키텍처 구성 요소는 애플리케이션의 특정 개발 측면을 처리하도록 구축되었습니다. 이는 비즈니스 로직과 프리젠테이션 레이어를 서로 분리합니다. 전통적으로 데스크탑에 사용되었습니다. 그래픽 사용자 인터페이스(GUI) . 요즘 MVC는 확장 가능하고 확장 가능한 프로젝트를 만들기 위해 가장 자주 사용되는 업계 표준 웹 개발 프레임워크 중 하나입니다. 모바일 앱을 디자인하는데도 사용됩니다.

MVC는 다음에 의해 만들어졌습니다. Trygve Reenskaug . 이 디자인 패턴의 주요 목표는 대규모 애플리케이션을 고유한 목적을 가진 특정 섹션으로 분할하여 사용자가 크고 복잡한 데이터 세트를 제어하는 ​​문제를 해결하는 것이었습니다.

MVC의 특징:

  • 이는 명확한 분리를 제공합니다. 비즈니스 로직, UI 로직, 입력 로직.
  • HTML과 URL을 완벽하게 제어할 수 있어 웹 애플리케이션 아키텍처를 쉽게 설계할 수 있습니다.
  • 이는 이해 가능하고 검색 가능한 URL이 있는 애플리케이션을 구축할 수 있는 강력한 URL 매핑 구성 요소입니다.
  • 지원합니다 테스트 주도 개발(TDD).

MVC Framework 사용의 이점에 대해 자세히 알아보려면 다음 문서를 참조하세요. MVC 프레임워크 사용의 이점

MVC의 구성요소:

MVC 프레임워크에는 다음 3가지 구성 요소가 포함됩니다.

  • 제어 장치
  • 모델
  • 보다

MVC 아키텍처 디자인

제어 장치:

컨트롤러는 뷰와 모델 간의 상호 연결을 가능하게 하여 중개자 역할을 하는 구성 요소입니다. 컨트롤러는 데이터 로직 처리에 대해 걱정할 필요가 없으며 모델에 수행할 작업만 알려줍니다. 모든 비즈니스 로직과 들어오는 요청을 처리하고, 모델 구성 요소와 상호 작용합니다. 보다 최종 출력을 렌더링합니다.

뭐야?

보다:

그만큼 보다 컴포넌트는 애플리케이션의 모든 UI 로직에 사용됩니다. 사용자를 위한 사용자 인터페이스를 생성합니다. 뷰는 모델 구성 요소에서 수집한 데이터로 생성되지만 이러한 데이터는 직접 가져오지 않고 컨트롤러를 통해 가져옵니다. 컨트롤러와만 상호작용합니다.

모델:

그만큼 모델 구성 요소는 사용자가 작업하는 모든 데이터 관련 논리에 해당합니다. 이는 View와 Controller 구성 요소 간에 전송되는 데이터 또는 기타 비즈니스 논리 관련 데이터를 나타낼 수 있습니다. 데이터베이스에서 데이터를 추가하거나 검색할 수 있습니다. 컨트롤러는 자체적으로 데이터베이스와 상호 작용할 수 없기 때문에 컨트롤러의 요청에 응답합니다. 모델은 데이터베이스와 상호 작용하고 필요한 데이터를 컨트롤러에 다시 제공합니다.

예를 들어 MVC 프레임워크 작업:

최종 사용자가 수업에서 공부하는 학생 목록을 얻기 위해 서버에 요청을 보낸다고 가정해 보겠습니다. 그런 다음 서버는 학생을 처리하는 특정 컨트롤러에 해당 요청을 보냅니다. 그런 다음 해당 컨트롤러는 학생을 처리하는 모델에 수업에서 공부하는 모든 학생의 목록을 반환하도록 요청합니다.

MVC 구성 요소의 데이터 흐름

모델은 데이터베이스에 모든 학생 목록을 쿼리한 다음 해당 목록을 다시 컨트롤러에 반환합니다. 모델의 응답이 성공하면 컨트롤러는 학생과 연결된 뷰에 학생 목록 프레젠테이션을 반환하도록 요청합니다. 이 보기는 컨트롤러에서 학생 목록을 가져와 브라우저에서 사용할 수 있는 HTML로 목록을 렌더링합니다.

그런 다음 컨트롤러는 해당 프레젠테이션을 가져와 사용자에게 다시 반환합니다. 이로써 요청을 종료합니다. 이전에 모델이 오류를 반환한 경우 컨트롤러는 오류를 처리하는 뷰에 특정 오류에 대한 프레젠테이션을 렌더링하도록 요청하여 해당 오류를 처리합니다. 그러면 해당 오류 프레젠테이션이 학생 목록 프레젠테이션 대신 사용자에게 반환됩니다.

위의 예에서 볼 수 있듯이 모델은 모든 데이터를 처리합니다. 뷰는 모든 프리젠테이션을 처리하고 컨트롤러는 모델과 뷰에 수행할 작업을 알려줍니다. 이것이 MVC 프레임워크의 기본 아키텍처이자 작동 방식입니다.

MVC 아키텍처 패턴을 사용하면 다음 디자인 원칙을 준수할 수 있습니다.
1. 나누어서 정복하세요. 세 가지 구성 요소는 어느 정도 독립적으로 설계될 수 있습니다.
2. 응집력을 높이세요. 구성 요소는 뷰와 컨트롤러가 단일 UI 레이어에 함께 있는 경우보다 레이어 응집력이 더 강력합니다.
삼. 결합을 줄입니다. 세 구성 요소 간의 통신 채널은 최소화되어 쉽게 찾을 수 있습니다.
4. 재사용을 늘립니다. 뷰와 컨트롤러는 일반적으로 다양한 종류의 UI 컨트롤을 위해 재사용 가능한 구성 요소를 광범위하게 사용합니다. 그러나 UI는 애플리케이션별로 달라지므로 쉽게 재사용할 수 없습니다.
5. 유연성을 고려한 디자인. 일반적으로 뷰, 컨트롤러 또는 둘 다를 변경하여 UI를 변경하는 것은 매우 쉽습니다.

MVC의 장점:

  • 코드는 유지 관리가 쉽고 쉽게 확장할 수 있습니다.
  • MVC 모델 구성 요소를 별도로 테스트할 수 있습니다.
  • MVC의 구성요소는 동시에 개발될 수 있습니다.
  • 애플리케이션을 세 개의 단위로 나누어 복잡성을 줄입니다. 모델, 뷰, 컨트롤러.
  • 지원합니다 테스트 주도 개발(TDD).
  • 이는 웹 디자이너와 개발자로 구성된 대규모 팀이 지원하는 웹 앱에 적합합니다.
  • 이 아키텍처는 모든 클래스와 개체가 서로 독립적이므로 구성 요소를 독립적으로 테스트하는 데 도움이 됩니다.
  • 검색 엔진 최적화(SEO) 친숙한.

MVC의 단점:

  • 이 모델을 읽고, 변경하고, 테스트하고, 재사용하기가 어렵습니다.
  • 소규모 애플리케이션을 구축하는 데는 적합하지 않습니다.
  • 데이터 액세스의 비효율성을 고려하세요.
  • 프레임워크 탐색은 사용자가 MVC의 분해 기준에 적응해야 하는 새로운 추상화 계층을 도입하므로 복잡할 수 있습니다.
  • 데이터의 복잡성 및 비효율성 증가

인기 있는 MVC 프레임워크:

가장 인기 있고 광범위하게 사용되는 MVC 프레임워크 중 일부는 다음과 같습니다.

Java를 int로 변환
  • 루비 온 레일즈
  • 장고
  • 체리파이
  • 스프링 MVC
  • 촉매
  • 울타리
  • Zend 프레임워크
  • 연료 PHP
  • 라라벨
  • 교향곡

MVC 일반적으로 단일 그래픽 워크스테이션에서 실행되는 응용 프로그램에 사용됩니다. 논리적 구성 요소의 분할은 가독성과 모듈성을 가능하게 하며 테스트 부분을 더욱 편안하게 만듭니다.