---
title: "Cloudflare Workers 연동 가이드"
description: "본 문서에서는 Cloudflare Workers를 사용하여 도브러너의 CDN 임베더를 구성하고 배포하는 방법을 설명합니다."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

CDN 임베더는 Cloudflare Workers를 활용하여 콘텐츠 전송 네트워크를 통해 포렌식 워터마크가 적용된 콘텐츠를 제공합니다. 
이 가이드는 도브러너 포렌식 워터마킹 구현을 위한 임베더 구성 및 배포 과정을 안내합니다.

샘플 코드는 GitHub에서 확인할 수 있습니다.
[CloudFlare Embedder CDK 샘플](https://github.com/doverunner/fwm-cdn-embedder-cloudflare-workers)

CDN 임베더의 역할은 다음과 같습니다:
- **세션 관리자**가 발급한 워터마크 토큰 검증  
- 올바른 **워터마크 파일 경로** 확인 (사용자/세션/변형 기반)  
- **Cloudflare R2**에서 파일을 가져와 CDN 도메인을 통해 제공  

주요 구성은 다음을 통해 수행됩니다:
- `src/config.js` – 워터마크 토큰 및 폴더 구조 구성  
- `wrangler.jsonc` – Cloudflare Worker 및 R2 바인딩 구성  

## 구성

#### 소스 구성 (`src/config.js`)

배포에 적합한 설정으로 `config.js` 파일을 업데이트하는 것부터 시작하세요:

```javascript
export const config = {
  "aesKey": "YOUR_DOVERUNER_SITE_KEY",
  "type": "unlabeled_a_variant",
  "availableInterval": 60000,
  "prefixFolder": ["folder1", "folder2"],
  "wmtPublicKey": "YOUR_PUBLIC_KEY", // Akamai WMT용 PEM 형식 공개 키
  "wmtPassword": "YOUR_PASSWORD" // WMT 토큰 생성/검증을 위한 비밀번호
}
```

#### 구성 매개변수

| 매개변수 | 토큰 유형 | 설명 |
|---------|---------|------|
| `aesKey` | AES | 도브러너 콘텐츠 보안 서비스에서 발급한 사이트 키 |
| `type` | AES, JWT | 워터마크 토큰 요청 사양 유형. 기본값: `unlabeled_a_variant` |
| `availableInterval` | AES, JWT | 토큰 유효 기간(밀리초 단위, 무제한 유효성을 위해 `0`으로 설정) |
| `prefixFolder` | AES | 워터마크된 파일이 포함된 최상위 폴더 배열. 워터마크 토큰 요청 사양의 `prefix_folder`에 해당 |
| `wmtPublicKey` | JWT | Akamai WMT 통합을 위한 PEM 형식 공개 키 |
| `wmtPassword` | JWT | WMT 토큰 생성 및 검증을 위한 비밀번호 자격 증명 |

:::info
`wmt_type` 매개변수는 워터마크 토큰이 AES 암호화를 사용할지 JWT 형식을 사용할지 결정합니다. 이는 도브러너에서 워터마크 토큰을 요청할 때 제공된 사양과 일치해야 합니다.
:::

### Worker 구성 (`wrangler.jsonc`)

`wrangler.jsonc` 파일에서 Cloudflare Worker 배포 설정을 구성하세요:

```json
{
  "name": "doverunner-fwm-cdn-embedder",
  "main": "src/index.js",
  "compatibility_date": "2024-01-01",
  
  // R2 버킷 바인딩
  "r2_buckets": [
    {
      "binding": "FWM_BUCKER",
      "bucket_name": "your-watermark-bucket-name"
    }
  ],
  
  // 사용자 정의 라우트 (선택 사항)
  "routes": [
    {
      "pattern": "cdn.yourdomain.com/*",
      "zone_name": "yourdomain.com"
    }
  ]
}
```

#### 주요 구성 옵션

- **name**: Cloudflare 계정 내에서 워커의 고유 식별자
- **main**: 워커의 진입점 경로 (일반적으로 `src/index.js`)
- **compatibility_date**: API 버전 관리를 위한 Cloudflare Workers 호환성 날짜
- **r2_buckets**: 워터마크된 콘텐츠가 저장되는 R2 스토리지에 대한 바인딩 구성
- **routes** (선택 사항): 프로덕션 환경을 위한 사용자 정의 도메인 라우팅 규칙

## 배포

### 사전 요구사항

배포를 진행하기 전에 다음 사항을 확인하세요:

- Workers가 활성화된 Cloudflare 계정
- 워터마크된 콘텐츠 저장을 위해 생성 및 구성된 Cloudflare R2 버킷
- 개발 머신에 설치된 Node.js 및 npm

### 1단계: Wrangler CLI 설치

Cloudflare Workers 배포를 관리하기 위해 Wrangler 커맨드 라인 인터페이스를 설치하세요. 
자세한 설치 지침은 [Wrangler 설치 가이드](https://developers.cloudflare.com/workers/wrangler/install-and-update/)를 참조하세요.

``bash
npm install -g wrangler
``

### 2단계: 개발자 테스트

프로덕션에 배포하기 전에 로컬 개발 환경에서 워커를 테스트하세요:

``bash
npm run dev ``
 또는
``wrangler dev
``

이 명령은 `http://localhost:8787/`에서 접근 가능한 로컬 개발 서버를 시작하여 프로덕션 배포 전에 임베더 기능을 테스트할 수 있습니다.

### 3단계: 프로덕션 배포

테스트가 완료되면 워커를 Cloudflare 엣지 네트워크에 배포하세요:

`bash
npm run deploy
`
또는
`
wrangler deploy
`

배포가 성공하면 Cloudflare는 다음 형식의 워커 URL을 제공합니다:

```
https://worker-name.your-subdomain.workers.dev
```

:::note
이 URL은 워터마크된 콘텐츠를 제공하기 위한 CDN 엔드포인트 역할을 합니다.
:::

## 워터마크 파일 폴더 구조

`prefixFolder` 구성 매개변수에 지정된 폴더 구조에 따라 R2 스토리지에 워터마크가 적용된 콘텐츠를 구성하세요. 최상위 폴더는 워터마크 토큰 요청 사양에 정의된 `prefix_folder` 값과 일치해야 합니다.

## 추가 리소스

- [Cloudflare Workers 문서](https://developers.cloudflare.com/workers/)
- [Wrangler CLI 참조](https://developers.cloudflare.com/workers/wrangler/)
- [R2 문서](https://developers.cloudflare.com/r2/)
- [도브러너 포렌식 워터마킹 임베딩 문서](https://docs.doverunner.com/content-security/forensic-watermarking/embedding/)

## 지원

CDN 임베더 구성 또는 배포에 대한 추가 지원이 필요한 경우 [도브러너 지원팀에 문의](https://support.doverunner.com/)하거나 포렌식 워터마킹 임베딩 문서를 참조하세요.