계층적 모델-뷰-컨트롤러

Hierarchical model–view–controller
PAC를 사용하는 응용 프로그램의 구조.

계층적 모델-뷰-컨트롤러(HMVC)소프트웨어 아키텍처 패턴으로, 2000년 자바월드 매거진 기사에서[1] 발표한 모델-뷰-컨트롤러(PAC)와 유사한 모델-뷰-컨트롤러(MVC)의 변형이다. 저자들은 13년 전에 출판된 PAC를 잘 모르는[2] 것 같다.

컨트롤러는 컨트롤러에 의한 승인 메커니즘을 실현하면서 먼저 모델을 선택하고 그 다음에 뷰를 선택한다는 점에서 어느 정도 감독을 받는다.모델은 보기가 데이터 소스에 직접 접근하는 것을 방지한다.

HMVC 아키텍처를 사용할 경우의 가장 큰 실질적인 이점은 컨텐츠 구조의 "위젯화"이다.[3]예를 들어 댓글, 등급, 트위터 또는 블로그 RSS 피드 표시 또는 전자상거래 웹 사이트의 쇼핑 카트 컨텐츠 표시 등이 해당될 수 있다.그것은 본질적으로 주 HTTP 요청의 컨텍스트에 따라 여러 페이지에 걸쳐, 그리고 어쩌면 다른 장소에서도 표시되어야 하는 컨텐츠의 한 부분이다.

기존의 MVC 프레임워크는 일반적으로 이러한 유형의 컨텐츠 구조에 대한 직접적인 대답을 제공하지 않으므로 프로그래머는 종종 레이아웃을 복제하고 전환하며, 사용자 지정 도우미를 사용하거나, 자체 위젯 구조나 라이브러리 파일을 만들거나, 또는 View로 밀고 들어가 렌더링하기 위해 요청된 메인 컨트롤러에서 관련 없는 데이터를 끌어온다.일부분으로단점은 특정 콘텐츠를 렌더링하거나 필요한 데이터를 로딩해야 하는 책임이 여러 영역으로 유출돼 해당 장소에 중복된다는 점이다.

HMVC 또는 이러한 책임을 처리하기 위해 컨트롤러에 하위 요청을 발송하는 기능은 이 문제를 해결하는 것을 목적으로 한다.그 구조는 전통적인 MVC와 흡사하다.예를 들어, 코멘트에 대한 데이터를 로드하고 HTML 형식으로 표시해야 하는 경우 코멘트 컨트롤러에 일부 매개 변수를 사용하여 요청을 보낼 수 있다.그런 다음 요청은 모델과 상호 작용하여 내용을 표시하는 보기를 선택한다.기존 MVC와 다른 점은 코멘트를 완전히 별도의 페이지에 표시하는 대신 사용자가 보고 있는 기사 아래에 인라인으로 표시된다는 점이다.이와 관련하여 HMVC는 코드 모듈화를 늘리고 재사용 가능성을 지원하며 우려의 분리를 더 잘 유지하기 위해 노력하고 있다.

참고 항목

참조

  1. ^ Cai, Jason; Kapila, Ranjit; Pal, Gaurav (July 21, 2000). "HMVC: The layered pattern for developing strong client tiers". JavaWorld. Retrieved 2020-07-18.
  2. ^ "TP" (September 8, 2000). "Is HMVC PAC?". Letters to the editor. JavaWorld. Archived from the original on 2006-03-19.
  3. ^ Vance Lucas (April 2011). "why HMVC pattern?". StackOverflow. Retrieved 2013-10-15.