컨텐츠를 모델링하는 방법

AEM Headless 개발자 여정의 이 부분에서 컨텐츠 구조를 모델링하는 방법을 배울 수 있습니다. 그런 다음 컨텐츠 조각 모델 및 컨텐츠 조각을 사용하여 AEM(Adobe Experience Manager)의 구조를 사용하여 여러 채널에서 재사용할 수 있습니다.

지금까지 그 이야기

시작 CMS Headless Development에서 헤드리스 컨텐츠 전달과 이를 사용해야 하는 이유를 알아봅니다. 그런 다음 Cloud Service로 AEM Headless 시작하기 가 프로젝트 컨텍스트에서 AEM Headless를 설명합니다.

AEM 헤드리스 여정의 이전 문서, AEM Headless를 사용하여 첫 번째 경험에 대한 경로 에서는 첫 번째 프로젝트를 구현하는 데 필요한 단계를 알아보았습니다. 읽고 나면 다음을 수행해야 합니다.

  • 콘텐츠 디자인을 위한 중요한 계획 고려 사항 이해
  • 통합 수준 요구 사항에 따라 헤드리스를 구현하는 단계를 이해합니다.
  • 필요한 도구 및 AEM 구성을 설정합니다.
  • 헤드리스 여정을 원활하게 하고 컨텐츠 생성을 효율적으로 하며 컨텐츠가 신속히 전달되도록 하는 모범 사례를 알아봅니다.

이 문서는 이러한 기본 사항을 기반으로 하여 AEM 헤드리스 프로젝트를 준비하는 방법을 이해합니다.

목표

  • 대상: 초보
  • 목표: 컨텐츠 구조를 모델링하고 AEM 컨텐츠 조각 모델 및 컨텐츠 조각을 사용하여 해당 구조를 구현하는 방법을 알아봅니다.
    • 데이터/컨텐츠 모델링과 관련된 개념 및 용어를 도입합니다.
    • 헤드리스 콘텐츠 전달을 위해 콘텐츠 모델링이 필요한 이유를 알아봅니다.
    • AEM 컨텐츠 조각 모델(및 컨텐츠 조각으로 컨텐츠 작성)을 사용하여 이 구조를 구현하는 방법을 알아봅니다.
    • 컨텐츠를 모델링하는 방법을 알아봅니다. 기본 샘플을 사용하는 원칙.
노트

데이터 모델링은 관계형 데이터베이스를 개발할 때 사용되는 매우 큰 필드입니다. 많은 책들과 온라인 정보들이 이용할 수 있습니다.

AEM Headless에서 사용할 데이터를 모델링할 때만 관심이 있는 측면을 고려합니다.

컨텐츠 모델링

그건 크고 나쁜 세상이에요.

그럴지도 모르지만, 분명히 큰 복잡한 세계이고 데이터 모델링을 통해 특정 목적에 필요한 특정 정보를 사용하여 매우 작은 하위 섹션의 단순화 표현을 정의할 수 있습니다.

노트

AEM에서 컨텐츠를 처리함에 따라 데이터 모델링을 컨텐츠 모델링이라고 합니다.

예:

많은 학교가 있지만, 그들은 모두 다양한 공통점을 가지고 있다:

  • 위치
  • 수석 교사
  • 많은 교사
  • 많은 비교사 직원
  • 많은 학생들
  • 많은 전직 교사
  • 많은 이전 학생들
  • 많은 교실
  • 많은 책
  • 다수의 장비
  • 많은 추가 교육 과정 활동
  • 그리고…

이런 작은 예시에서도 그 목록은 끝이 없어 보인다. 그러나 애플리케이션이 간단한 작업을 수행하도록 하려면 정보를 핵심 요소로 제한해야 합니다.

예를 들어, 지역 내 모든 학교를 위한 특별 행사 광고를 할 수 있습니다.

  • 학교 이름
  • 학교 위치
  • 헤드교사
  • 이벤트 유형
  • 이벤트 날짜
  • 행사 준비 교사

개념

설명하려는 내용을 엔티티 - 기본적으로 정보를 저장할 "물건"이라고 합니다.

이러한 정보에 대해 저장하려는 정보는 속성(속성)입니다(예: 이름 및 교사 자격).

그러면 엔티티 간에 다양한 관계​가 있습니다. 예를 들어, 보통 학교에는 한 명의 수석선생님만 있고, 많은 선생님들(그리고 보통 수석선생님은 선생님도 선생님이기도 해).

이 정보를 분석하고 정의하는 프로세스를 컨텐츠 모델링​이라고 합니다.

기본 사항

엔티티와 해당 관계를 설명하는 개념적 스키마​를 그리는 것으로 시작해야 하는 경우가 많습니다. 일반적으로 높은 수준(개념)입니다.

이렇게 안정되면 모델을 속성 및 관계와 함께 개체를 설명하는 논리 스키마​로 변환할 수 있습니다. 이 수준에서 정의를 면밀히 검토하여 중복을 제거하고 디자인을 최적화해야 합니다.

노트

때로는 시나리오의 복잡성에 따라 이 두 단계가 병합되는 경우가 있습니다.

예를 들어 Head TeacherTeacher에 대해 별도의 엔티티가 필요합니까? 아니면 Teacher 모델에 대한 추가 속성이 필요합니까?

데이터 무결성 보장

전체 라이프 사이클에서 컨텐츠의 정확성과 일관성을 보장하려면 데이터 무결성이 필요합니다. 여기에는 컨텐츠 작성자가 저장할 위치를 쉽게 이해할 수 있도록 함으로써 다음 사항이 매우 중요합니다.

  • 명확한 구조
  • 정확성을 유지하면서 가능한 한 간결한 구조
  • 개별 필드 유효성 검사
  • 적절한 경우 특정 필드의 내용을 의미 있는 내용으로 제한합니다

데이터 중복 제거

동일한 정보가 컨텐츠 구조 내에 두 번 저장될 때 데이터 중복이 발생합니다. 이 기능은 컨텐츠를 만들 때 혼동을 일으키고 쿼리 시 오류를 초래할 수 있으므로 피해야 합니다. 저장 공간 오용은 말할 것도 없다.

최적화 및 성능

구조를 최적화하여 컨텐츠 생성과 쿼리 모두에 대한 성능을 향상시킬 수 있습니다.

모든 것은 균형 조정 동작이지만 너무 복잡하거나 수준이 너무 많은 구조를 만들 수 있습니다.

  • 작성자가 컨텐츠를 생성하는 경우 혼동을 줄 수 있습니다.

  • 필요한 컨텐츠를 검색하기 위해 쿼리가 여러 중첩(참조된) 컨텐츠 조각에 액세스해야 하는 경우 성능에 심각한 영향을 줍니다.

AEM 헤드리스를 위한 컨텐츠 모델링

데이터 모델링은 구축된 기법 세트로, 종종 개발 관계 데이터베이스에서 사용되므로 AEM Headless에 대해 컨텐츠 모델링이 의미하는 것은 무엇입니까?

왜?

애플리케이션이 AEM에서 필요한 컨텐츠를 일관되고 효율적으로 요청하고 수신할 수 있도록 하려면 이 컨텐츠를 구조화해야 합니다.

즉, 애플리케이션이 응답의 형식을 미리 알고 있으므로 처리하는 방법을 알 수 있습니다. 이 작업은 자유 형식 컨텐츠를 수신하는 것보다 훨씬 쉽습니다. 이 컨텐츠를 구문 분석하여 내용을 포함해야 하므로 사용 방법을 결정할 수 있습니다.

방법 소개

AEM은 컨텐츠 조각을 사용하여 컨텐츠를 애플리케이션에 헤드리스 전달에 필요한 구조를 제공합니다.

컨텐츠 모델의 구조는 다음과 같습니다.

  • 컨텐츠 조각 모델의 정의에 의해 구현됩니다.
  • 컨텐츠 생성에 사용되는 컨텐츠 조각의 기반으로 사용됩니다.
노트

컨텐츠 조각 모델은 컨텐츠 검색에 사용되는 AEM GraphQL 스키마의 기반으로 사용되기도 합니다. 자세한 내용은 이후 세션에서 사용됩니다.

컨텐츠에 대한 요청은 표준 GraphQL API의 사용자 정의된 구현인 AEM GraphQL API를 사용하여 수행됩니다. AEM GraphQL API를 사용하면 특정 모델 유형에 따라 각 쿼리를 사용하여 컨텐츠 조각에 대한 (복잡한) 쿼리를 수행할 수 있습니다.

그런 다음 반환된 컨텐츠를 애플리케이션에서 사용할 수 있습니다.

컨텐츠 조각 모델을 사용하여 구조 만들기

컨텐츠 조각 모델은 컨텐츠의 구조를 정의할 수 있는 다양한 메커니즘을 제공합니다.

컨텐츠 조각 모델은 엔티티를 설명합니다.

노트

새 모델을 만들 수 있도록 구성 브라우저에서 컨텐츠 조각 기능을 활성화해야 합니다.

컨텐츠 작성자가 컨텐츠 조각을 만들 때 선택할 모델을 알 수 있도록 모델의 이름을 지정해야 합니다.

모델 내에서:

  1. 데이터 유형개별 속성을 정의할 수 있습니다.
    예를 들어, 교사 이름을 Text​로 포함하는 필드와 해당 연도 서비스가 Number​으로 정의되어 있습니다.
  2. 데이터 유형 컨텐츠 참조조각 참조​를 사용하면 AEM 내의 다른 컨텐츠에 대한 관계를 만들 수 있습니다.
  3. 조각 참조 데이터 유형을 사용하면 모델 유형에 따라 컨텐츠 조각을 중첩하여 여러 수준의 구조를 구현할 수 있습니다. 이는 컨텐츠 모델링에 필수적입니다.

예:
컨텐츠 조각으로 컨텐츠 모델링

데이터 유형

AEM에서는 컨텐츠를 모델링하는 데 사용할 다음 데이터 유형을 제공합니다.

  • 한 줄 텍스트
  • 여러 줄 텍스트
  • 번호
  • 부울
  • 날짜 및 시간
  • 열거
  • 태그
  • 컨텐츠 참조
  • 조각 참조
  • JSON 개체

참조 및 중첩 컨텐츠

두 데이터 유형은 특정 조각 외부의 컨텐츠에 대한 참조를 제공합니다.

  • 컨텐츠
    참조모든 유형의 다른 컨텐츠에 대한 간단한 참조를 제공합니다.
    예를 들어 지정된 위치에서 이미지를 참조할 수 있습니다.

  • 조각
    참조다른 컨텐츠 조각에 대한 참조를 제공합니다.
    이 유형의 참조는 중첩된 콘텐츠를 만드는 데 사용되며 콘텐츠를 모델링하는 데 필요한 관계를 도입합니다.
    조각 작성자가 다음을 수행할 수 있도록 데이터 유형을 구성할 수 있습니다.

    • 참조된 조각을 직접 편집합니다.
    • 적절한 모델을 기반으로 새 컨텐츠 조각을 만듭니다

컨텐츠 조각 모델 만들기

시작할 때 사이트에 대한 컨텐츠 조각 모델을 활성화해야 합니다. 이 작업은 구성 브라우저에서 수행됩니다. 도구 -> 일반 -> 구성 브라우저에서 글로벌 항목을 구성하거나 새 구성을 만들도록 선택할 수 있습니다. 예:

구성 정의

노트

구성 브라우저에서 추가 리소스 - 컨텐츠 조각 을 참조하십시오.

그런 다음 컨텐츠 조각 모델 을 만들고 구조를 정의할 수 있습니다. 도구 -> 자산 -> 컨텐츠 조각 모델에서 이 작업을 수행할 수 있습니다. 예:

컨텐츠 조각 모델

노트

추가 리소스 - 컨텐츠 조각 모델 을 참조하십시오.

모델을 사용하여 컨텐츠 조각으로 컨텐츠 작성

컨텐츠 조각은 항상 컨텐츠 조각 모델을 기반으로 합니다. 모델은 구조를 제공하며 조각은 컨텐츠를 보유합니다.

적절한 모델 선택

컨텐츠를 실제로 만드는 첫 번째 단계는 컨텐츠 조각을 만드는 것입니다. 이 작업은 자산 -> 파일 아래의 필수 폴더에서 만들기 -> 컨텐츠 조각을 사용하여 수행됩니다. 마법사가 단계를 안내합니다.

컨텐츠 조각은 생성 프로세스의 첫 번째 단계로 선택하는 특정 컨텐츠 조각 모델을 기반으로 합니다.

구조화된 컨텐츠 만들기 및 편집

조각이 만들어지면 컨텐츠 조각 편집기에서 조각을 열 수 있습니다. 여기에서 다음을 수행할 수 있습니다.

  • 일반 또는 전체 화면 모드로 컨텐츠를 편집합니다.
  • 컨텐츠 형식을 전체 텍스트, 일반 텍스트 또는 Markdown으로 지정합니다.
  • 컨텐츠의 변형 을 만들고 관리합니다.
  • 컨텐츠 연결.
  • 메타데이터를 편집합니다.
  • 트리 구조를 표시합니다.
  • JSON 표현을 미리 봅니다.

컨텐츠 조각 만들기

적절한 모델을 선택하면 컨텐츠 조각 편집기에서 편집할 컨텐츠 조각이 열립니다.

컨텐츠 조각 편집기

노트

추가 리소스 - 컨텐츠 조각 작업 을 참조하십시오.

일부 예제 시작하기

샘플 기본 구조에 대해서는 샘플 컨텐츠 조각 구조 를 참조하십시오.

다음은 무엇입니까?

구조를 모델링하고 그에 따라 컨텐츠를 만드는 방법을 배웠으므로 이제 다음 단계는 GraphQL 쿼리를 사용하여 컨텐츠 조각 컨텐츠에 액세스하고 검색하는 방법을 배우는 것입니다. 이렇게 하면 GraphQL이 도입되고 이에 대해 논의된 다음 몇 가지 샘플 쿼리를 보고 작동 방식을 확인할 수 있습니다.

추가 리소스

이 페이지에서는