---
url: 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/tutorials/portfolio-gallery'
title: '캐싱 | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T08:59:29+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  DXPR Builder 페이지는 자체 캐시 메타데이터가 있는 Drupal
  필드 렌더 배열이며, 에디터와 라이선스 확인용으로 모듈이
  유지하는 내부 캐시 몇 개가 있습니다. 이 페이지에서는 코드가
  캐시하는 항목, 쓰는 태그와 컨텍스트, 무효화 조건, 업데이트 후
  직접 지울 항목을 나열합니다.
  빌더 필드
  다음 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다. DXPR Builder 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다.
tags:
  - 'Volg een tutorial'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 캐싱
      description: |-
        DXPR Builder 페이지는 자체 캐시 메타데이터가 있는 Drupal
        필드 렌더 배열이며, 에디터와 라이선스 확인용으로 모듈이
        유지하는 내부 캐시 몇 개가 있습니다. 이 페이지에서는 코드가
        캐시하는 항목, 쓰는 태그와 컨텍스트, 무효화 조건, 업데이트 후
        직접 지울 항목을 나열합니다.
        빌더 필드
        다음 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다. DXPR Builder 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T08:59:29+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/tutorials/portfolio-gallery'
      articleSection: 'Volg een tutorial'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ko/hc/documentation/learn-dxpr-builder/tutorials/portfolio-gallery'
      description: |-
        DXPR Builder 페이지는 자체 캐시 메타데이터가 있는 Drupal
        필드 렌더 배열이며, 에디터와 라이선스 확인용으로 모듈이
        유지하는 내부 캐시 몇 개가 있습니다. 이 페이지에서는 코드가
        캐시하는 항목, 쓰는 태그와 컨텍스트, 무효화 조건, 업데이트 후
        직접 지울 항목을 나열합니다.
        빌더 필드
        다음 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다. DXPR Builder 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: 홈
            item: 'https://dxpr.com/ko'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ko
---
[Help Center](/ko/node/75)/[Documentation](/ko/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Build pages](/hc/documentation/learn-dxpr-builder/build) /[Volg een tutorial](/hc/documentation/learn-dxpr-builder/tutorials/overview) # 캐싱.

 Learn DXPR BuilderBuild pagesVolg een tutorial

   ## In this guide

 Related guides

- [페이지에 Drupal 뷰 표시하기](/ko/hc/documentation/learn-dxpr-builder/integrations/drupal-views)
- [미디어 라이브러리에서 사진 배치하기](/ko/hc/documentation/learn-dxpr-builder/tutorials/case-study)
- [Image](/hc/documentation/learn-dxpr-builder/elements/image)

DXPR Builder 페이지는 자체 캐시 메타데이터가 있는 Drupal 필드 렌더 배열이며, 에디터와 라이선스 확인용으로 모듈이 유지하는 내부 캐시 몇 개가 있습니다. 이 페이지에서는 코드가 캐시하는 항목, 쓰는 태그와 컨텍스트, 무효화 조건, 업데이트 후 직접 지울 항목을 나열합니다.

## 빌더 필드

다음 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다. **DXPR Builder** 필드 포매터는 모든 빌더 필드에 다음 캐시 메타데이터를 설정합니다.

| Metadata | Value | Effect |
|---|---|---|
| 캐시 컨텍스트 | `user.roles:authenticated` | 익명 방문자와 인증된 방문자는 별도 캐시 항목을 받습니다. |
| 캐시 태그 | 엔터티 자체 태그, `config:dxpr_builder.settings`, `config:language.entity.<langcode>` 태그(렌더링 언어용) | 엔터티 저장, 모듈 설정 저장, 언어 구성 변경 시 렌더링된 필드가 무효화됩니다. |
| `max-age` | `0` 인증된 모든 사용자용 | 로그인 사용자에게는 Dynamic Page Cache가 빌더 필드를 절대 캐시하지 않습니다. 렌더 배열에 사용자별 `drupalSettings`(이메일, CSRF 토큰, 프로필)가 들어 있기 때문입니다. |

익명 방문자에게는 필드가 정상적으로 캐시되므로 Internal Page Cache와 Dynamic Page Cache가 모듈 코드 실행 없이 빌더 페이지를 제공합니다. 빌더에서 저장하면 엔터티가 저장되므로 Drupal은 다른 저장과 마찬가지로 엔터티의 캐시 태그를 무효화합니다.

필드에서 에디터가 활성화되면 모듈이 `config:dxpr_builder.settings`를 다시 추가합니다. **Asset source**를 **Cloud**로 설정하고 제품 키를 구성하지 않으면 `max-age`도 `0`으로 설정하여 모든 페이지에 제품 키 메시지가 표시됩니다.

모듈 자체 관리 양식은 `config:dxpr_builder.settings`를 명시적으로 무효화합니다. **General Settings**, **AI**, 사용자 프로필 양식, 페이지 및 사용자 템플릿 양식이 해당합니다.

## 페이지 안의 Views와 블록

Blocks와 Views는 빈 `az-cms-element` 플레이스홀더로 저장된 HTML에 저장됩니다. 필드가 렌더링되면 모듈이 각 블록이나 View를 로드하고 코어 렌더러로 렌더링한 뒤 출력을 필드 마크업에 삽입합니다. View의 라이브러리와 `drupalSettings`는 필드에 복사되며, 캐시 메타데이터는 페이지 렌더링 중 빌드된 다른 렌더 배열처럼 렌더러를 통해 버블링됩니다.

결국 View의 행은 View의 캐시 태그 중 하나가 무효화될 때까지 캐시된 필드 안에 머뭅니다. 시간 기반 캐싱 View는 전체 수명 동안 이전 행을 유지합니다. 방문자에게 오래된 행이 보이면:

1. View를 열고 **Advanced**를 펼친 뒤 **Caching**을 **Tag based**로 설정합니다. **None**은 Dynamic Page Cache를 중단하지만 Internal Page Cache는 익명 방문자용 전체 페이지를 계속 보관합니다.
2. View를 저장합니다. 어떤 View를 저장해도 `config:view_list`가 무효화되며, 에디터용 모듈의 View 목록이 지워집니다.
3. 모든 캐시를 지웁니다.

에디터에서 추가하거나 변경한 블록이나 View는 `/dxpr_builder/ajax`를 통해 가져옵니다. 모듈은 해당 응답을 캐시하지 않습니다.

## 내부 캐시

모든 항목은 기본 캐시 빈(`cache.default`)에 있습니다. 요소 선택기 캐시에는 `dxpr_builder:cms_elements` 태그와 나열하는 엔터티 유형의 목록 캐시 태그가 있어 해당 엔터티가 바뀌면 스스로 지워집니다.

| Cache ID | Content | Cleared by |
|---|---|---|
| `dxpr_builder:cms_elements_blocks`, `dxpr_builder:cms_block_categories` | 요소 선택기용 블록 목록과 블록 카테고리 | 콘텐츠 블록이나 웹폼 저장 또는 삭제(`block_content_list`, 웹폼 목록 태그), 모듈 제거 시 항목 삭제, `drush cr` |
| `dxpr_builder:cms_disallowed_elements:<uid>:<roles hash>` | 현재 사용자가 쓸 수 없는 블록 | 동일한 태지와 사용자 각 역할의 `config:user.role.<role>` 태그 |
| `dxpr_builder:cms_elements_views`, `dxpr_builder:cms_view_elements_settings`, `dxpr_builder:cms_views_tags` | 에디터용 View 디스플레이, 해당 설정, 식별자 | View 저장, 추가, 삭제(`config:view_list`), `drush cr` |
| `dxpr_builder:button_styles` | Button 요소용 버튼 스타일 | 태그 `dxpr_builder:cms_elements`, `drush cr` |
| `dxpr_builder_license_info` | 라이선스 상태 호출 결과 | 승인 시 24시간, 그 외 30분 뒤 만료(`LICENSE_CHECK_INTERVAL`, `LICENSE_NOT_AUTHORIZED_INTERVAL`). 사이트가 사용자 변경을 라이선스 서버에 보낸 뒤 무효화됩니다. |
| `dxpr_builder_license_users` | 라이선스 서버의 에디터 목록 | 24시간 뒤 만료. 사이트가 사용자 변경을 라이선스 서버에 보낸 뒤 무효화됩니다. |
| `dxpr_builder_blacklisted` | 도메인 차단 목록 결과 | 1시간 뒤 만료, 도메인이 차단된 동안은 1분 뒤 만료 |
| `dxpr_builder:jwt_decoded:<sha256 of the key>` | 디코딩된 제품 키, 키마다 항목 하나 | 태그 `config:dxpr_builder.settings` |

테마 유틸리티 클래스 `dxpr_builder_classes`(테마 `.info.yml`에 있음)는 Drupal의 캐시된 테마 정보에서 오므로 변경 후 에디터에 반영하려면 `drush cr`이 필요합니다. 아이콘 세트 파일 (`*.dxpr_icon_sets.yml`)은 에디터 페이지 로드마다 읽지만, 해당 파일이 지정하는 라이브러리는 다른 새 라이브러리처럼 `drush cr`이 필요합니다.

## 애셋과 집계

6개 에디터 스크립트는 외부(Cloud)거나 `preprocess: FALSE`로 선언되므로 집계가 닿지 않습니다. 집계는 Sortable이 있는 `dxpr_builder/editor.core` 같은 에디터 헬퍼 라이브러리와 방문자용 파일(`dxpr_builder/core`, `dxpr_builder/editor.frontend`, `elements.*` 라이브러리, `bootstrap_5`)에 적용됩니다. 두 가지 증상은 집계 캐시에서 비롯됩니다.

- 업데이트 후 에디터가 깨지거나 집계 켜짐에서만 `Sortable is not defined` 오류가 보고됩니다. [The editor does not appear](/hc/documentation/learn-dxpr-builder/troubleshooting/editor-not-loading)를 따릅니다.
- 업데이트나 설정 변경 후 방문자에게 스타일이나 아이콘이 보이지 않습니다. [Visitors see something different](/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else)를 따릅니다.

## 업데이트 후 지울 항목

1. 데이터베이스 업데이트를 실행한 뒤 캐시를 지웁니다.

    ```bash
    drush updb -y
    drush cr

    ```

    `drush cr`은 모듈 버전과 애셋 소스를 따르는 빌더 라이브러리 정의, 집계된 애셋 파일, 위 내부 캐시를 다시 빌드합니다.
2. 에디터로 빌더 페이지 하나를 열고 저장합니다. 현재 릴리스 마크업으로 페이지가 쓰이고 엔터티 태그가 무효화됩니다.
3. Varnish나 CDN 뒤에서는 빌더 페이지를 제거하거나 최대 수명이 지나기를 기다립니다. 모듈은 제거 요청을 보내지 않습니다.

방문자에게 여전히 이전 콘텐츠가 표시되면 [Problems after updating](/hc/documentation/learn-dxpr-builder/troubleshooting/after-updating)을 참조합니다.

## 다음 단계

- [Performance](/ko/hc/documentation/learn-dxpr-builder/advanced/performance)에서 방문자와 에디터 페이지의 다운로드 항목을 확인합니다.
- [Architecture](/ko/hc/documentation/learn-dxpr-builder/development/architecture)에서 빌더 필드를 렌더링, 저장, 캐시하는 코드를 확인합니다.
- [Visitors see something different](/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else)에서 캐시 관련 증상과 해결법을 확인합니다.