ContextHub 구성

ContextHub는 컨텍스트 데이터를 저장, 조작 및 표시하기 위한 프레임워크입니다. ContextHub에 대한 자세한 내용은 개발자 설명서를 참조하십시오. ContextHub는 터치 UI에서 클라이언트 컨텍스트를 대체합니다.

ContextHub 도구 모음을 구성하여 미리 보기 모드에 나타나는지, ContextHub 저장소를 만들고, 터치에 적합한 UI를 사용하여 UI 모듈을 추가할 수 있도록 합니다.

ContextHub 비활성화

기본적으로 AEM 설치에서는 ContextHub가 활성화됩니다. ContextHub를 비활성화하여 js/css를 로드하거나 초기화할 수 없습니다. ContextHub를 비활성화할 수 있는 두 가지 옵션이 있습니다.

  • ContextHub 구성을 편집하고 ContextHub 비활성화 옵션을 선택합니다.

    1. 레일에서 도구 > 사이트 > ContextHub를 클릭하거나 탭합니다
    2. 기본 구성 컨테이너를 클릭하거나 탭합니다.
    3. ContextHub 구성을 선택하고 선택한 요소 편집을 클릭하거나 탭합니다.
    4. ContextHub 비활성화를 클릭하거나 탭하고 저장을 클릭하거나 탭합니다

또는

  • CRXDE Lite을 사용하여 속성 disabled ​을 /libs/settings/cloudsettings
노트

AEM 6.4의 저장소 재조정 때문에 ContextHub 구성 위치가 다음 /etc/cloudsettings 으로 변경되었습니다.

  • /libs/settings/cloudsettings
  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings

ContextHub UI 표시 및 숨기기

[MOCK] Configure the Adobe Granite ContextHub OSGi service to show or hide the ContextHub UI on your pages. 이 서비스의 PID는 com.adobe.granite.contexthub.impl.ContextHubImpl.

서비스를 구성하려면 웹 콘솔 또는 저장소의 JCR 노드를 사용할 수 있습니다.

  • 웹 콘솔: UI를 표시하려면 UI 표시 속성을 선택합니다. UI를 숨기려면 UI 숨기기 속성을 지우십시오.
  • JCR 노드: UI를 표시하려면 부울 com.adobe.granite.contexthub.show_ui 속성을 로 설정합니다 true. UI를 숨기려면 속성을 로 설정합니다 false.

ContextHub UI를 표시할 때는 AEM 작성자 인스턴스의 페이지에만 나타납니다. UI는 게시 인스턴스의 페이지에 표시되지 않습니다.

ContextHub UI 모드 및 모듈 추가

미리 보기 모드의 ContextHub 도구 모음에 표시되는 UI 모드 및 모듈을 구성합니다.

  • UI 모드: 관련 모듈 그룹
  • 모듈: 스토어의 컨텍스트 데이터를 노출하고 작성자가 컨텍스트를 조작할 수 있는 위젯

UI 모드는 도구 모음의 왼쪽에 일련의 아이콘으로 표시됩니다. 선택하면 UI 모드 모듈이 오른쪽에 나타납니다.

chlimage_1-319

아이콘은 Coral UI 아이콘 라이브러리의 참조입니다.

UI 모드 추가

관련 ContextHub 모듈을 그룹화하는 UI 모드를 추가합니다. UI 모드를 만들 때 ContextHub 도구 모음에 표시되는 제목과 아이콘을 제공합니다.

  1. Experience Manager 레일에서 도구 > 사이트 > 컨텍스트 허브를 클릭하거나 탭합니다.

  2. 기본 구성 컨테이너를 클릭하거나 탭합니다.

  3. 컨텍스트 허브 구성을 클릭하거나 탭합니다.

  4. 만들기 단추를 클릭하거나 탭한 다음, Context Hub UI 모드를 클릭하거나 탭합니다.

    chlimage_1-320

  5. 다음 속성에 대한 값을 제공합니다.

    • UI 모드 제목: UI 모드를 식별하는 제목
    • 모드 아이콘: 예를 들어 Coral UI 아이콘에 사용할 선택기 coral-Icon--user
    • 활성화됨: ContextHub 도구 모음에 UI 모드를 표시하려면 선택합니다.
  6. 저장을 클릭하거나 탭합니다.

UI 모듈 추가

페이지 컨텐츠를 미리 보기 위해 ContextHub 도구 모음에 표시되도록 UI 모드에 ContextHub UI 모듈을 추가합니다. UI 모듈을 추가하면 ContextHub에 등록된 모듈 유형의 인스턴스를 만드는 것입니다. UI 모듈을 추가하려면 관련 모듈 유형의 이름을 알아야 합니다.

AEM에서는 UI 모듈을 기반으로 하는 몇 가지 샘플 UI 모듈 유형뿐만 아니라 기본 UI 모듈 유형을 제공합니다. 다음 표에서는 각 항목에 대한 간단한 설명을 제공합니다. 사용자 지정 UI 모듈 개발에 대한 자세한 내용은 ContextHub UI 모듈 만들기를 참조하십시오.

UI 모듈 속성에는 모듈별 속성에 대한 값을 제공할 수 있는 세부 구성이 포함됩니다. JSON 형식으로 세부 구성을 제공합니다. 표의 [모듈 유형] 열은 각 UI 모듈 유형에 필요한 JSON 코드에 대한 정보에 대한 링크를 제공합니다.

모듈 유형 설명 저장소
contexthub.base 일반 UI 모듈 유형 UI 모듈 속성에 구성됨
contexthub.browserinfo 브라우저에 대한 정보를 표시합니다. surferinfo
contexthub.datetime 날짜 및 시간 정보를 표시합니다. datetime
contexthub.device 클라이언트 장치 표시 에뮬레이터
contexthub.location 클라이언트의 위도 및 경도와 지도의 위치를 표시합니다. 위치를 변경할 수 있습니다. 위치 정보
contexthub.screen-orientation 장치의 화면 방향(가로 또는 세로)을 표시합니다. 에뮬레이터
contexthub.tagcloud 페이지 태그에 대한 통계를 표시합니다. tagcloud
granite.profile authorizableID, displayName 및 familyName 등 현재 사용자에 대한 프로필 정보를 표시합니다. displayName 및 familyName의 값을 변경할 수 있습니다. 프로필
  1. Experience Manager 레일에서 도구 > 사이트 > ContextHub를 클릭하거나 탭합니다.

  2. UI 모듈을 추가할 구성 컨테이너를 클릭하거나 탭합니다.

  3. UI 모듈을 추가할 ContextHub 구성을 클릭하거나 입력합니다.

  4. UI 모듈을 추가할 UI 모드를 클릭하거나 탭합니다.

  5. 만들기 단추를 클릭하거나 탭한 다음 ContextHub UI 모듈(일반)을 클릭하거나 탭합니다.

    chlimage_1-321

  6. 다음 속성에 대한 값을 제공합니다.

    • UI 모듈 제목: UI 모듈을 식별하는 제목
    • 모듈 유형: 모듈 유형
    • 활성화됨: ContextHub 도구 모음에 UI 모듈을 표시하려면 선택합니다.
  7. (선택 사항) 기본 저장소 구성을 무시하려면 JSON 개체를 입력하여 UI 모듈을 구성합니다.

  8. 저장을 클릭하거나 탭합니다.

ContextHub 저장소 만들기

사용자 데이터를 유지하고 필요에 따라 데이터에 액세스하는 Context Hub 저장소를 만듭니다. ContextHub 저장소는 등록된 스토어 후보자를 기반으로 합니다. 스토어를 만들 때 스토어 후보가 등록된 storeType의 값이 필요합니다. (사용자 지정 스토어 후보자 만들기를 참조하십시오.)

자세한 저장소 구성

스토어를 구성할 때 [세부 사항 구성] 속성을 사용하면 스토어별 속성에 대한 값을 제공할 수 있습니다. 값은 스토어 함수의 매개 변수 config 를 기반으로 init 합니다. 따라서 이 값과 값의 형식을 제공해야 하는지 여부는 스토어에 따라 다릅니다.

세부 구성 속성 값은 JSON 형식의 config 개체입니다.

Sample Store Candidates

AEM에서는 스토어를 기반으로 다음과 같은 샘플 스토어 지원자를 제공합니다.

스토어 유형 설명
aem.segmentation 해결된 및 해결되지 않은 ContextHub 세그먼트를 저장할 수 있습니다. ContextHub 세그먼트 관리자에서 세그먼트를 자동으로 검색합니다.
aem.resoundsegments 현재 해결된 세그먼트를 저장합니다. ContextHub SegmentManager 서비스를 수신하여 스토어를 자동으로 업데이트합니다.
contexthub.geolocation 브라우저 위치의 위도와 경도를 저장합니다.
contexthub.datetime 브라우저 위치의 현재 날짜, 시간 및 계절을 저장합니다.
granite.emulators 여러 장치의 속성과 기능을 정의하고 현재 클라이언트 장치를 감지합니다.
contexthub.generic-jsonp JSONP 서비스에서 데이터를 검색하고 저장
granite.profile 현재 사용자의 프로필 데이터를 저장합니다.
contexthub.surferinfo 장치 정보, 브라우저 유형, 창 방향 등 클라이언트에 대한 정보를 저장합니다
contexthub.tagcloud 페이지 태그 및 태그 카운트를 저장합니다.
  1. Experience Manager 레일에서 도구 > 사이트 > ContextHub를 클릭하거나 탭합니다.

  2. 기본 구성 컨테이너를 클릭하거나 탭합니다.

  3. 컨텍스트 구성 클릭 또는 탭

  4. 스토어를 추가하려면 만들기 아이콘을 클릭하거나 탭한 다음 ContextHub 저장소 구성을 클릭하거나 탭합니다.

    chlimage_1-322

  5. 기본 구성 속성에 대한 값을 제공한 다음 다음을 클릭하거나 탭합니다.

    • 구성 제목: 스토어를 식별하는 제목
    • 스토어 유형: 스토어를 기반으로 할 스토어 후보의 storeType 속성 값
    • 필수: 선택
    • 활성화됨: 스토어를 활성화하려면 선택
  6. (선택 사항) 기본 저장소 구성을 무시하려면 JSON(Detail Configuration) 상자에 JSON 개체를 입력합니다.

  7. 저장을 클릭하거나 탭합니다.

예: JSONP 서비스 사용

이 예에서는 스토어를 구성하고 UI 모듈에 데이터를 표시하는 방법을 보여 줍니다. 이 예에서는 jsontest.com 사이트의 MD5 서비스가 스토어의 데이터 소스로 사용됩니다. 서비스는 지정된 문자열의 MD5 해시 코드를 JSON 형식으로 반환합니다.

서비스 호출에 대한 데이터를 저장하도록 contexthub.generic-jsonp 스토어가 구성됩니다 https://md5.jsontest.com/?text=%22text%20to%20md5%22. 서비스는 UI 모듈에 표시되는 다음 데이터를 반환합니다.

{
   "md5": "919a56ab62b6d5e1219fe1d95248a2c5",
   "original": "\"text to md5\""
}

Contexthub.generic-jsonp 스토어 만들기

contexthub.generic-jsonp 샘플 저장소 후보를 사용하면 JSON 데이터를 반환하는 JSONP 서비스 또는 웹 서비스에서 데이터를 검색할 수 있습니다. 이 스토어 지원자의 경우 스토어 구성을 사용하여 사용할 JSONP 서비스에 대한 세부 정보를 제공합니다.

Javascript 클래스의 init 함수는 ContextHub.Store.JSONPStore 이 저장소 후보를 초기화하는 config 개체를 정의합니다. 이 config 개체에는 JSONP 서비스에 대한 세부 정보가 포함된 service 개체가 포함되어 있습니다. 스토어를 구성하려면 JSON 형식의 service 개체를 [세부 구성] 속성의 값으로 제공해야 합니다.

jsontest.com 사이트의 MD5 서비스에서 데이터를 저장하려면 다음 속성을 사용하여 ContextHub 저장소 만들기에서 절차를 사용하십시오.

  • 구성 제목: md5

  • 스토어 유형: contexthub.generic-jsonp

  • 필수: 선택

  • 활성화됨: 선택

  • 세부 정보 구성(JSON):

    {
     "service": {
     "jsonp": false,
     "timeout": 1000,
     "ttl": 1800000,
     "secure": false,
     "host": "md5.jsontest.com",
     "port": 80,
     "params":{
     "text":"text to md5"
         }
       }
     }
    

md5 데이터용 UI 모듈 추가

UI 모듈을 ContextHub 도구 모음에 추가하여 예제 md5 저장소에 저장된 데이터를 표시합니다. 이 예에서 contexthub.base 모듈은 다음 UI 모듈을 생성하는 데 사용됩니다.

chlimage_1-323

UI 모듈 의 추가 프로세스를 사용하여 샘플 개인 UI 모드와 같은 기존 UI 모드에 UI 모듈을 추가합니다. UI 모듈의 경우 다음 속성 값을 사용하십시오.

  • UI 모듈 제목: MD5

  • 모듈 유형: contexthub.base

  • 세부 정보 구성(JSON):

    {
     "icon": "coral-Icon--data",
     "title": "MD5 Converstion",
     "storeMapping": { "md5": "md5" },
     "template": "<p> {{md5.original}}</p>;
                  <p>{{md5.md5}}</p>"
    }
    

ContextHub 디버깅

ContextHub에 대한 디버깅 모드를 활성화하여 문제 해결을 허용할 수 있습니다. 디버그 모드는 ContextHub 구성 또는 CRXDE를 통해 활성화할 수 있습니다.

구성을 통해

ContextHub 구성을 편집하고 디버그 옵션을 선택합니다.

  1. 레일에서 도구 > 사이트 > ContextHub를 클릭하거나 탭합니다
  2. 기본 구성 컨테이너를 클릭하거나 탭합니다.
  3. ContextHub 구성을 선택하고 선택한 요소 편집을 클릭하거나 탭합니다.
  4. 디버그를 클릭하거나 탭하고 저장을 클릭하거나 탭합니다

CRXDE를 통해

CRXDE Lite을 사용하여 다음 debug 에서 속성을 true로 설정합니다.

  • /conf/global/settings/cloudsettings 또는
  • /conf/<tenant>/settings/cloudsettings
노트

ContextHub 구성이 여전히 이전 경로 아래에 있는 경우, 이 구성 debug property 을 설정하는 위치는 입니다 /libs/settings/cloudsettings/legacy/contexthub.

자동 모드

자동 모드를 사용하면 모든 디버그 정보가 표시되지 않습니다. 각 ContextHub 구성에 대해 독립적으로 설정할 수 있는 일반 디버그 옵션과 달리, 자동 모드는 ContextHub 구성 수준의 모든 디버그 설정에 대한 전례를 가져오는 전역 설정입니다.

디버그 정보를 전혀 원하지 않는 게시 인스턴스에 유용합니다. 전역 설정이므로 OSGi를 통해 활성화됩니다.

  1. 다음 위치에서 Adobe Experience Manager 웹 콘솔 구성을 엽니다. http://<host>:<port>/system/console/configMgr
  2. Granite ContextHub Adobe 검색
  3. 구성 Adobe [Granite ContextHub]를 클릭하여 해당 속성을 편집합니다.
  4. 자동 모드 옵션을 선택하고 저장을 클릭합니다

업그레이드 후 ContextHub 구성 복구

AEM 업그레이드하면 ContextHub 구성이 백업되어 안전한 위치에 저장됩니다. 업그레이드 중에 기본 ContextHub 구성이 설치되고 기존 구성이 교체됩니다. 수행한 변경 사항이나 추가 사항을 보존하려면 백업이 필요합니다.

ContextHub 구성은 다음 노드 아래의 폴더 contexthub 에 저장됩니다.

  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings

업그레이드 후 백업은 이름이 다음과 같은 노드 contexthub 아래에 있는 폴더에 저장됩니다.

/conf/global/settings/cloudsettings/default-pre-upgrade_yyyymmdd_xxxxxxx 또는
/conf/<tenant>/settings/cloudsettings/default-pre-upgrade_yyyymmdd_xxxxxxx

노드 이름의 yyyymmdd 부분은 업그레이드가 수행된 날짜입니다.

ContextHub 구성을 복구하려면 CRXDE Lite을 사용하여 저장 장치, UI 모드 및 UI 모듈을 나타내는 노드를 노드 아래에서 default-pre-upgrade_yyyymmdd_xxxxxx 아래로 복사합니다.

  • /conf/global/settings/cloudsettings 또는
  • /conf/<tenant>/settings/cloudsettings

이 페이지에서는