연결된 콘텐츠 응답 캐시
연결된 콘텐츠 응답은 발송 속도를 최적화하기 위해 동일한 워크스페이스 내의 여러 캠페인 또는 메시지에서 캐시할 수 있습니다.
Braze는 연결된 콘텐츠 응답 본문을 영구적으로 기록하거나 저장하지 않습니다. 메시지 렌더링 중에 응답은 Braze가 Liquid를 렌더링하고 메시지를 발송할 수 있도록 일시적으로 보관될 수 있습니다(예: 메모리 및 캐시).
캐싱을 방지하려면 :no_cache를 지정할 수 있으며, 이 경우 네트워크 트래픽이 증가할 수 있습니다. 문제 해결 및 시스템 상태 모니터링을 위해 Braze는 성공 및 실패한 호출에 대한 연결된 콘텐츠 요청 메타데이터(완전히 렌더링된 요청 URL 및 응답 상태 코드 등)를 기록합니다. 이 로그는 최대 30일 동안 보관됩니다.
연결된 콘텐츠 렌더링 및 데이터 처리(고급)
이 섹션에서는 Braze가 Liquid 및 연결된 콘텐츠를 렌더링하는 방법과 메시지가 발송되기 전에 데이터가 일시적으로 존재할 수 있는 위치에 대한 보다 상세한 엔드투엔드 뷰를 제공합니다. 이는 개인정보 보호 및 데이터 처리 검토에 도움이 될 수 있습니다.
저장되는 것과 저장되지 않는 것
- 연결된 콘텐츠 응답 본문: Braze에 영구적으로 저장되지 않습니다. 메모리에 일시적으로 보관될 수 있으며, 캐싱이 활성화된 경우 TTL(Time-to-Live)과 함께 캐시에 저장됩니다.
- 연결된 콘텐츠 요청 메타데이터: 완전히 렌더링된 URL, HTTP 상태 코드, 응답 소요 시간 등의 요청 메타데이터는 문제 해결 및 모니터링을 위해 기록됩니다. 이 로그는 최대 30일 동안 보관됩니다.
- 최종 렌더링된 메시지: 렌더링 중에 메모리에 존재합니다. 구성 및 채널에 따라 다른 곳에도 저장될 수 있습니다(예: 메시지 아카이브 또는 콘텐츠 카드).
렌더링 흐름(개요)
다음 흐름은 Braze가 이메일, SMS, 푸시와 같은 공급자 기반 채널에 대해 메시지를 렌더링하고 발송하는 방법을 설명합니다. 콘텐츠 카드와 같은 SDK 전달 채널은 동일한 기본 Liquid 및 연결된 콘텐츠 렌더링을 사용하지만, 콘텐츠가 생성되는 시점과 전달 방식이 다릅니다.
- 백그라운드 워커가 메시지 전달이 준비될 때 메시지의 Liquid 템플릿을 렌더링합니다.
- 연결된 콘텐츠 태그는 Liquid 렌더링 중에 평가됩니다.
- 각 연결된 콘텐츠 태그에 대해 Braze는 다중 계층 캐시를 확인합니다. 캐시된 값이 없거나 캐싱이 비활성화된 경우, Braze는 엔드포인트를 호출하고 응답을 수신합니다.
- 응답이 Liquid 템플릿에 주입되고 메시지가 완전히 렌더링됩니다.
- 공급자 기반 채널의 경우, 렌더링된 메시지가 채널 공급자에게 전송된 후 사용자에게 전달됩니다. 콘텐츠 카드와 같은 SDK 전달 채널의 경우, 렌더링된 콘텐츠가 Braze SDK에 동기화되며 첫 번째 노출 또는 표시 시점에 생성되어 사용자에게 표시됩니다.
연결된 콘텐츠 응답이 일시적으로 존재할 수 있는 위치
Braze는 :cache_max_age 사용 및 기타 캐싱 규칙에 따라 5분에서 4시간 사이의 TTL을 가진 다중 계층 캐시를 연결된 콘텐츠 응답에 사용합니다:
- 프로세스 내 메모리 캐시: 워커 프로세스 내의 일시적 캐시입니다. 데이터는 작업 기간 동안만 존재할 수 있습니다(워커 타임아웃 기준 최대 약 11분).
- 로컬 머신 캐시: 로컬 Memcached 인스턴스와 같은 워커별 캐시입니다.
- 클러스터 전체 캐시: Memcached 클러스터와 같이 워커 간에 공유되는 분산 캐시입니다.
이러한 캐시 계층은 휘발성이며 구성된 TTL보다 일찍 데이터를 제거할 수 있습니다.
:no_cache 사용 시 변경되는 사항
Braze 인프라 내부에 호스팅되지 않은 엔드포인트의 경우, :no_cache를 사용하면 연결된 콘텐츠 응답 본문이 Memcached에 저장되지 않습니다. 이 경우 응답은 렌더링 작업 기간 동안(최대 약 11분) 워커 프로세스 메모리에만 존재합니다. Braze 내부 호스트로 확인되는 엔드포인트의 경우, 캐시 무효화에 설명된 대로 응답이 여전히 캐시될 수 있습니다.
최종 렌더링된 출력이 존재할 수 있는 위치
- 메시지 아카이브: 메시지 아카이브가 활성화된 경우, Braze는 최종 렌더링된 메시지를 구성된 클라우드 스토리지 버킷에 기록할 수 있습니다. 연결된 콘텐츠 응답이 렌더링된 메시지에 포함된 경우, 아카이브된 사본에도 포함됩니다.
- 사용자 기기: 전달 후 완전히 렌더링된 메시지 콘텐츠는 알 수 없는 기간 동안 사용자 기기에 유지될 수 있습니다.
- 콘텐츠 카드: 콘텐츠 카드의 렌더링된 콘텐츠는 카드가 만료될 때까지 Braze 데이터베이스에 저장됩니다.
기본 캐시 설정
캐시 기간은 최대 5분(300초)입니다. 연결된 콘텐츠 호출에 :cache_max_age 매개변수를 추가하여 이를 업데이트할 수 있습니다. 예시는 다음과 같습니다:
1
{{ {% connected_content [https://example.com/webservice.json] :cache_max_age 900 %}}}
GET 요청은 캐시됩니다. 연결된 콘텐츠 호출에 :no_cache 매개변수를 추가하여 이를 구성할 수 있습니다.
POST 요청은 기본적으로 캐시되지 않지만, 연결된 콘텐츠 호출에 :cache_max_age 매개변수를 추가하여 캐시할 수 있습니다. 최소 캐시 시간은 5분이고, 최대 캐시 시간은 4시간입니다.
캐시 설정은 보장되지 않습니다. 캐싱은 엔드포인트에 대한 호출을 줄일 수 있으므로, 캐싱에 지나치게 의존하기보다는 캐시 기간 내에 엔드포인트당 여러 호출을 사용하는 것을 권장합니다.
캐시 크기 제한
연결된 콘텐츠 응답 본문은 최대 1 MB까지 가능합니다. 응답 본문이 1 MB보다 큰 경우 캐시되지 않습니다.
캐시 시간
연결된 콘텐츠는 GET 엔드포인트에서 반환하는 값을 최소 5분 동안 캐시합니다. 캐시 시간이 지정되지 않은 경우 기본 캐시 시간은 5분입니다.
연결된 콘텐츠 캐시 시간은 다음 예시와 같이 :cache_max_age를 사용하여 더 길게 구성할 수 있습니다. 최소 캐시 시간은 5분이고 최대 캐시 시간은 4시간입니다. 연결된 콘텐츠 데이터는 Memcached와 같은 휘발성 캐시 시스템을 사용하여 메모리에 캐시됩니다.
따라서 지정된 캐시 시간에 관계없이 연결된 콘텐츠 데이터는 지정된 시간보다 일찍 Braze의 메모리 내 캐시에서 제거될 수 있습니다. 이는 캐시 기간이 제안 사항이며, Braze가 데이터를 캐시하는 것이 보장되는 실제 기간을 나타내지 않을 수 있음을 의미합니다. 따라서 주어진 캐시 기간에서 예상보다 더 많은 연결된 콘텐츠 요청이 발생할 수 있습니다.
지정된 시간(초) 동안 캐시
이 예시는 900초(또는 15분) 동안 캐시합니다.
1
{% connected_content https://example.com/webservice.json :cache_max_age 900 %}
캐시 무효화
연결된 콘텐츠가 GET 요청에서 반환하는 값을 캐시하지 않도록 하려면 :no_cache 구성을 사용할 수 있습니다. 그러나 Braze 내부 호스트의 응답은 여전히 캐시됩니다.
1
{% connected_content https://example.com/webservice.json :no_cache %}
이 옵션을 사용하기 전에 제공된 연결된 콘텐츠 엔드포인트가 대량의 트래픽 급증을 처리할 수 있는지 확인하세요. 그렇지 않으면 Braze가 모든 단일 메시지에 대해 연결된 콘텐츠 요청을 수행하므로 발송 지연 시간이 증가할 가능성이 높습니다(지연 증가 또는 요청과 응답 사이의 시간 간격 확대).
POST의 경우 캐시 무효화가 필요하지 않습니다. POST 요청은 기본적으로 캐시되지 않기 때문입니다. POST 응답을 캐시하려면 :cache_max_age를 추가하고, 캐싱을 피하려면 :cache_max_age를 생략하세요.
알아두어야 할 사항
- 캐싱은 중복된 연결된 콘텐츠 호출을 줄이는 데 도움이 될 수 있습니다. 그러나 사용자당 단일 연결된 콘텐츠 호출이 항상 보장되는 것은 아닙니다.
- 연결된 콘텐츠 캐싱은 URL과 워크스페이스를 기반으로 합니다. 연결된 콘텐츠 호출이 동일한 URL로 이루어지면 캠페인과 캔버스 간에 캐시될 수 있습니다.
- 캐시는 사용자 ID나 캠페인이 아닌 고유 URL을 기반으로 합니다. 즉, URL이 동일한 경우 연결된 콘텐츠 호출의 캐시된 버전이 워크스페이스 내의 여러 사용자와 캠페인에서 사용될 수 있습니다.