Magento 2는 MVC가 아닌 Model View, View Model System입니다.

게시 됨: 2017-10-04

Magento 2의 출시는 개발자가 웹사이트를 위한 코드를 계획하고 작성하는 방식을 크게 바꿨습니다. Magento는 전 세계 수천 명의 판매자에게 완벽한 전자 상거래 플랫폼을 제공하여 더 많은 청중에게 제품을 쉽게 진열할 수 있도록 합니다. Magento 2는 상인들이 오랫동안 사용해 온 놀라운 아키텍처와 일맥상통합니다.

예를 들어 온라인으로 안경을 구입할 수 있는 GlassesUSA.com과 같은 주요 전자 상거래 플랫폼은 Magento를 사용하고 있습니다. GlassesUSA 팀에 따르면 Magento는 매일 진화하는 다양한 비즈니스 요구 사항에 맞게 웹 사이트를 쉽게 확장할 수 있도록 만들었습니다. 시장 역학이 변화하고 고객 기반이 계속 확대됨에 따라 Magento를 채택하는 것은 가장 중요한 결정 중 하나였습니다. 이는 긍정적인 영향을 미쳤고 웹사이트 유지 관리를 위한 가동 중지 시간을 거의 0으로 줄였습니다. 비즈니스 연속성 또는 사용자 경험을 방해하지 않고 웹 사이트에서 원하는 변경 사항을 반영하도록 모듈을 추가하거나 수정하기만 하면 됩니다.

Magento의 아키텍처 디자인은 개발자에 의해 만들어졌으며 비즈니스 특정 요구 사항에 쉽게 사용자 지정할 수 있는 일종의 소스 코드를 제공합니다. 개발자와 판매자가 Magento 전자 상거래 테마의 기능을 확장하고 모듈을 추가할 수 있도록 하는 것은 아키텍처의 아름다움입니다.

대부분의 플랫폼은 최종 제품을 개인화하기 위해 핵심 코드를 수정해야 하지만 Magento는 일반적인 문제를 훨씬 뛰어넘습니다. Magento 플러그인을 설치하면 옵션이나 기능을 더 쉽게 추가할 수 있습니다. 예를 들어 제품 페이지에 구조화된 스니펫을 추가해야 하는 경우 Magento 리치 스니펫 확장 프로그램이나 유사한 애플리케이션을 간단히 설치하면 됩니다. 코드를 변경하고 각 방문 페이지에 개별적으로 추가 제품 정보를 삽입할 필요가 없습니다.

아키텍처 디자인은 전자 상거래 웹 사이트의 판매자와 관리자가 새로운 기능을 쉽게 사용자 정의, 업데이트 및 추가할 수 있는 이점이 있습니다. Magento의 제품에 대해 논평하기 전에 몇 가지 아키텍처 모델에 대해 논의해 보겠습니다.

관련 게시물: Magento 2에서 주문을 편집하고 삭제하는 방법

MVC(모델 보기 컨트롤러) 모델

MVC는 모델을 통해 데이터 액세스를 분할하고 뷰로 프런트 엔드를, 컨트롤러를 통해 비즈니스 로직을 차별화하는 디자인 애플리케이션입니다. 이 디자인 패턴은 1970년대에 모델에서 사용자 인터페이스를 분리하기 위해 도입되었습니다. MVC 통합의 결과로 응용 프로그램을 수리, 유지 관리 및 테스트하기가 더 쉬워졌습니다. 디자인 패턴의 핵심 테마는 모델, 보기 및 컨트롤러를 포함하는 세 가지 아키텍처 측면에서 애플리케이션을 나누는 것입니다.

모델은 클래스 집합을 통해 응용 프로그램의 비즈니스 논리를 상징합니다. 데이터 모델일 수도 있고 비즈니스 모델일 수도 있습니다. 모델은 또한 데이터가 수정, 변경 또는 조작되는 방식을 보여줍니다.

보기는 사용자 인터페이스 또는 응용 프로그램의 프런트 엔드입니다. 여기에는 jQuery, CSS, HTML 등과 같은 UI 구성 요소가 포함됩니다. 애플리케이션의 컨트롤러에서 가져온 데이터를 결과 정보로 보여줍니다. View는 사용자 인터페이스로 모델을 복제합니다.

컨트롤러는 애플리케이션이 프런트 엔드에서 받는 요청을 처리하는 역할을 합니다. View를 통해 최종 사용자로부터 정보를 가져오고 Model을 통해 데이터를 처리한 다음 다시 프런트 엔드(view)로 넘어갑니다. 모델과 뷰 사이의 다리 역할을 합니다.

추천 게시물: 시장에 Magento 2 확장을 제출하는 방법은 무엇입니까?

Model View ViewModel(MVVM) 시스템

MVVM은 프로그래밍 및 소프트웨어 개발에 사용되는 아키텍처 패턴입니다. 시스템은 View와 ViewModel 사이에 있는 양방향 데이터 바인딩 메커니즘에서 작동합니다. 이렇게 하면 ViewModel 내에서 변경 사항을 자동화하여 View에 표시하는 작업이 간소화됩니다.

MVVM에는 MVC에 있는 것처럼 Model과 View가 있지만 컨트롤러는 ViewModel로 대체됩니다.

Magento 2는 MVVM 시스템입니까 아니면 MVC입니까?

Magento 2는 Model View ViewModel 시스템이며 더 이상 MVC로 구조화된 디자인이 아닙니다. MVC 모델은 이전 버전에 통합되었으며 MVVM과 매우 유사해 보이지만 MVVM은 애플리케이션에서 보기와 모델을 나누는 데 훨씬 더 풍부합니다.

MVVM에는 Model, View 및 ViewModel을 포함하는 3개의 계층이 있습니다. 확장 또는 응용 프로그램의 비즈니스 논리는 모델로 표시되는 반면 프론트 엔드는 보기로 표시됩니다. 컨트롤러가 MVC 모델에서 중재자 역할을 하는 것처럼 ViewModel은 MVVM 시스템에서 모델과 보기 사이의 간격을 연결합니다.

Magento 2용으로 개발된 확장은 위에서 논의한 기본 디자인 요소로 구성되어 있다고 합니다. 반면, 컨트롤러의 역할은 사용자 요청에 대한 시스템 통신을 포함하는 사용자 흐름 관리를 담당하므로 Magento 2에서 완전히 제거되지 않았습니다.

예제를 통해 동일하게 설명하겠습니다. 예를 들어 새 URL을 설정하고 이에 대한 phtml 템플릿을 만들 수 있습니다. http://magento.abc.com/hi/friend와 같이 Magento 2에서 새 URL을 요청하면 MVVM 시스템이 요청을 컨트롤러에 보내 MVC에서 수행되는 방식처럼 처리합니다. 그러나 MVVM에서 컨트롤러의 책임에는 큰 차이가 있습니다. 담당하고 있다

  • 선택할 페이지 레이아웃 결정
  • 사용자 요청의 데이터를 보존하기 위한 관리
  • 그리고 HTTP로 응답하도록 시스템과 통신하거나
  • 사용자를 다음 또는 이전 페이지로 안내

예제 URL을 설정하면 각 View 구성 요소가 모델 계층, 개체 또는 외부 소스에서 데이터 또는 정보 자체를 파생시키는 책임이 있기 때문에 View에 단일 변수가 언급되지 않는다는 것을 알 수 있습니다. MVVM은 Magento가 HTML 페이지를 컨테이너라고 하는 여러 섹션으로 분할하도록 합니다. 이러한 컨테이너는 나무와 같은 구조를 통해 연결된 블록을 가지고 있습니다. 블록에는 phtml 템플릿 파일이 더 포함됩니다.

MVVM 시스템에 대해 구체적으로 말하면 Magento 블록 개체가 ViewModel 역할을 합니다. 객체 블록은 비즈니스 모델, 사용자 요청, 외부 시스템에서 데이터 획득 등을 스캔하고 읽을 수 있습니다. 템플릿 파일은 View Model인 블록 객체와 단독으로 협업하는 View라고 합니다.

결론

Magento 2는 필요에 따라 Model View ViewModel 시스템으로 이동하기로 결정했습니다. MVVM 모델은 비즈니스 로직에서 템플릿 로직을 분할하는 데 한 걸음 더 나아갑니다. 이 시스템은 판매자와 최종 사용자를 용이하게 하기 위해 확실히 추측되는 반면, 개발자는 처음에 Magento 2 및 MVVM 시스템으로 구동되는 웹사이트에 대한 확장 코딩에 대처하는 데 어려움을 겪을 수 있습니다.