프록시 구성 요소 패턴

각 콘텐츠 리소스에는 구성 요소 렌더링을 참조하는 sling:resourceType 속성이 있기 때문에 이러한 속성을 사용하여 여러 사이트에서 공유하는 구성 요소를 지정하는 대신 사이트별 구성 요소를 지정하는 것이 좋습니다. 한 사이트에서 서로 다른 구성 요소 비헤이비어가 필요한 경우 추가 유연성이 제공되고 콘텐츠 리팩터링이 배제되는 이유는 사이트별 구성 요소의 맞춤화가 다른 사이트에 영향을 미치지 않기 때문입니다.

단, 프로젝트별 구성 요소가 코드를 복제하지 않으면 sling:resourceSuperType 속성이 공유된 상위 구성 요소를 참조하십시오. 주로 상위 구성 요소를 참조하는 이 프로젝트별 구성 요소는 “프록시 구성 요소”라 합니다. 기능이 완전히 상속되면 프록시 구성 요소 전체가 비거나 구성 요소의 일부 측면이 재정의될 수 있습니다.

TIP
프록시 구성 요소를 만드는 방법에 대한 자세한 내용은 핵심 구성 요소 사용을 참조하십시오.

구성 요소 버전 관리

지속적으로 구성 요소의 호환성을 최대한 유지해야 하지만 경우에 따라 호환될 수 없는 변경 사항이 필요합니다. 반대 요구 조건에 대한 솔루션으로 리소스 유형 경로와 정규화된 Java 구현 클래스 이름에 번호를 추가하여 구성 요소 버전 관리를 도입할 수 있습니다. 이 버전 번호는 시맨틱 버전 관리 가이드라인에서 정의된 주요 버전을 나타내고, 이전에 호환되지 않은 경우에만 버전이 증가합니다.

다음 구성 요소 측면에 대한 변경 사항이 호환되지 않으면 새로운 버전의 구성 요소가 생성됩니다.

  • 슬링 모델 (다음 시맨틱 버전 관리 가이드라인)
  • HTL 스크립트 및 템플릿
  • HTML 마크업 및 CSS 선택기
  • JSON 표시
  • 대화 상자

자세한 내용은 GitHub의 버전 관리 정책 문서를 참조하십시오.

리팩터링이 언제 수행되는지 명시되기 때문에 구성 요소 버전 관리는 업그레이드에 중요한 계약 양식을 만듭니다. 다양한 맞춤화 양식을 업그레이드하는 데 필요한 고려할 사항에 대해 설명하는 섹션 맞춤화의 호환성 업그레이드를 참조하십시오.

어려운 콘텐츠 마이그레이션을 피하려면 버전 관리된 구성 요소를 콘텐츠 리소스에서 바로 지정하지 않는 것이 좋습니다. 일반적으로 콘텐츠의 sling:resourceType에는 버전 번호가 포함되면 안 됩니다. 또는 구성 요소가 업그레이드되면 콘텐츠도 리팩터링될 수 있습니다. 이를 최대한 피하기 위해서 위에서 설명한 프록시 구성 요소 패턴을 따르십시오.

모델 인터페이스

이 패턴은 Java 인터페이스를 지정하는 HTL용 data-sly-use 지침인 반면에 슬링 모델 구현은 구성 요소의 리소스 유형에 자체 등록됩니다.

위에서 설명한 프록시 구성 요소 패턴과 결합되면 이러한 이중 바인딩이 제공하는 확장 지점은 다음과 같습니다.

  1. HTL 파일이 인터페이스를 계속 지정하는 경우 사이트는 이를 무시하면서 프록시 구성 요소의 리소스 유형에 등록하여 슬링 모델의 구현을 재정의할 수 있습니다.
  2. 구성 요소가 구현 논리를 지정해야 하는 경우 사이트는 이를 무시하면서 HTM 마크업을 재정의할 수 있습니다.

결합하기

다음에서 제목 핵심 구성 요소를 사례로 전체 리소스 유형 바인딩 구조를 검토합니다. 콘텐츠 리소스에 버전 번호가 포함되지 않도록, 사이트별 프록시 구성 요소를 통해 구성 요소 버전 관리를 해결하는 방법을 보여 줍니다. 구성 요소의 title.html HTL 파일이 모델 인터페이스에 어떻게 사용되는지 보여 주지만 구현은 슬링 모델 주석을 통해 특정 버전의 구성 요소에 바인딩됩니다.

리소스 바인딩 개요

아래 검토에는 구현 POJO에 대한 세부 정보가 표시되지 않지만 관련 템플릿 및 정책을 참조하는 방법은 표시됩니다.

cq:allowedTemplates 속성을 통해 사이트에 사용되는 템플릿을 알려 주고 cq:template를 통해 각 페이지에 관련 템플릿에 대한 정보를 제공할 수 있습니다. 모든 템플릿은 다음 세 가지 부품으로 구성됩니다.

  • 구조 - 각 페이지에 전달되고 페이지 작성자가 삭제할 수 없는 리소스(예: 페이지 머리말 및 바닥글 구성 요소)가 포함됩니다.
  • 최초 콘텐츠 - 제작 시 페이지에 복제되는 최초 콘텐츠가 포함됩니다.
  • 정책 - 각 구성 요소에 구성 요소를 사전 구성하는 정책에 대한 매핑이 포함됩니다. 이 매핑을 통해 템플릿에서 정책을 재사용할 수 있으므로 집중 관리해야 합니다.

템플릿 및 정책 개요

AEM Project Archetype

AEM Project Archetype은 프로젝트 시작점으로 논리용 슬링 모드가 포함된 맞춤형 HTL 구성 요소의 예제와 권장 프록시 패턴이 포함된 핵심 구성의 적절한 구현 등 최소 Adobe Experience Manager 프로젝트를 만듭니다.

다음 참조:

Experience Manager