Skip to main content
코딩 에이전트가 통합을 작성하도록 하려면 Dodo Agent Plugin을 설치하세요. 이 플러그인은 Claude Code, Codex CLI, Cursor, VS Code / GitHub Copilot, Kiro, OpenCode에 Dodo Payments skills와 MCP servers를 추가합니다.
PixelGen AI라는 샘플 AI 이미지 생성 서비스를 구축합니다. 이 서비스는 usage-based billing을 사용해 이미지 단위로 고객에게 요금을 청구합니다. billing meter와 product를 만들고, 이미지를 생성할 때마다 해당 이미지를 Dodo Payments에 보고하는 샘플 애플리케이션 코드를 작성합니다.
이 튜토리얼에서는 터미널 애플리케이션용 샘플 코드를 제공합니다. 코드를 React, Vue, Angular와 같은 framework 또는 애플리케이션이 사용자 입력을 수집하는 방식에 맞게 조정할 수 있습니다.
완료하면 다음 기능을 갖춘 작동하는 샘플 서비스를 사용할 수 있습니다:
  • OpenAI의 gpt-image-2.5-flare 모델로 이미지를 생성합니다.
  • 모든 이미지 생성을 추적하여 청구에 반영합니다.
  • 고객이 생성한 이미지에 요금을 청구합니다.
  • 두 가지 품질 등급인 medium 및 high를 처리합니다.

구축할 내용

PixelGen AI의 작동 방식은 다음과 같습니다:
  • 서비스: OpenAI Image API를 사용한 AI 이미지 생성
  • 가격 모델: 이미지당 과금(이미지당 $0.05)
  • 무료 등급: 고객당 월 10개의 무료 이미지
  • 품질 옵션: 동일한 가격으로 medium 및 high 품질 이미지 제공
시작하기 전에 다음이 필요합니다:
  • Dodo Payments 계정
  • OpenAI API 액세스 권한. GPT Image 모델을 사용하려면 OpenAI에서 API Organization Verification을 요구할 수 있습니다.
  • Node.js 22 이상 및 TypeScript와 Node.js에 대한 실무 지식

Step 1: Usage Meter 만들기

서비스가 생성하는 모든 이미지를 추적하는 meter를 Dodo Payments dashboard에서 만듭니다. meter는 billable event를 계산합니다.
Create Meter form in the Dodo Payments dashboard
구축할 내용: 모든 이미지 생성을 계산하는 “Image Generation Meter”라는 이름의 meter입니다.
1

Open the Meters Section

  1. Dodo Payments dashboard에 로그인합니다.
  2. 사이드바에서 Products → Meters로 이동합니다.
  3. Create Meter를 클릭합니다.
meter form이 열립니다.
2

Enter the Meter Details

PixelGen AI의 세부 정보를 입력합니다:Meter Name: Image Generation Meter설명: Tracks each AI image generation request made by customers using our OpenAI image serviceEvent Name: image.generated
event name image.generated은 애플리케이션 코드가 전송하는 event name과 일치해야 합니다. Event name은 대소문자를 구분합니다.
3

Configure How Images Are Counted

meter가 event를 결합하는 방식을 제어하는 aggregation을 설정합니다:Aggregation Type: CountMeasurement Unit: images
Count는 크기나 생성 시간이 아니라 생성된 이미지 수를 기준으로 요금을 계산합니다. 성공적으로 생성된 이미지 하나가 하나의 billable unit입니다.
4

Add Quality Filtering

Event filtering on the meter form with two quality conditions joined by OR
실제 이미지만 계산하고 test run이나 잘못된 event는 제외합니다:
  1. Enable Event Filtering을 켭니다.
  2. 일치 로직을 OR로 설정하여 조건 중 하나라도 일치하면 이벤트가 집계되도록 합니다.
  3. 첫 번째 조건을 추가합니다:
    • 키: quality
    • 연산자: equals
    • 값: medium
  4. Add condition을 클릭하고 두 번째 조건을 추가합니다:
    • 키: quality
    • 연산자: equals
    • 값: high
이 필터를 사용하면 품질이 medium 또는 high인 이벤트만 미터에서 집계하고, 테스트 이벤트나 잘못된 형식의 이벤트는 무시합니다.
5

Create Your Meter

  1. 모든 설정이 위의 값과 일치하는지 확인합니다. meter는 생성한 후 수정할 수 없습니다.
  2. Create Meter를 클릭합니다.
Meter가 생성되었습니다. “Image Generation Meter”가 이미지 생성을 계산할 준비를 마쳤습니다. 다음으로 billing product에 연결합니다.

Step 2: Billing Product 만들기

이미지당 $0.05의 가격과 이미지 10개의 free tier를 정의하는 product를 만듭니다. product는 meter를 billing에 연결합니다.
구축할 내용: 매월 첫 10개 이미지는 무료로 제공하고 이후 이미지당 $0.05를 청구하는 “PixelGen AI - Image Generation” product입니다.
1

Navigate to Products

  1. Dodo Payments dashboard의 사이드바에서 Products를 클릭합니다.
  2. Add Product를 클릭합니다.
  3. Pricing Type에서 Usage Based Billing을 선택합니다.
이 pricing type을 사용하면 Dodo Payments는 고정 subscription price가 아니라 meter usage를 기준으로 청구합니다.
2

Enter Product Details

다음 값을 입력합니다:Product Name: PixelGen AI - Image GenerationDescription: AI-powered image generation service with pay-per-use billingProduct Image: 명확하고 관련성 있는 이미지를 업로드합니다.
name과 description은 고객 invoice에 표시됩니다.
3

Connect Your Meter

Usage Based Billing pricing on the product form with the Associated Meters section
product의 pricing type이 Usage Based Billing인지 확인합니다.Price를 0로 설정하면 base fee 없이 usage에 대해서만 고객에게 요금을 청구합니다.그런 다음 생성한 meter를 연결합니다:
  1. Associated Meters section으로 스크롤합니다.
  2. Add meters를 클릭합니다.
  3. dropdown에서 **“Image Generation Meter”**를 선택합니다.
  4. product configuration에 meter가 표시되는지 확인합니다.
meter가 product에 연결되었습니다.
4

Set Your Pricing

이미지당 가격과 free tier를 정의합니다:
Meter pricing with price per unit and free threshold fields
Price per unit: 0.05, 즉 이미지당 $0.05입니다.Free Threshold: 10. 고객마다 매월 이미지 10개가 무료입니다.
Billing 작동 방식: 한 달에 이미지 25개를 생성한 고객은 이미지 15개에 대한 요금을 지불합니다(25 − 무료 10개). 15 × $0.05 = $0.75입니다.
5

Save Your Product

  1. 설정을 검토합니다:
    • Name: PixelGen AI - Image Generation
    • Meter: Image Generation Meter
    • Price: 이미지당 $0.05
    • Free tier: 이미지 10개
  2. Save Changes를 클릭합니다.
Product가 생성되었습니다. billing이 구성되었으며 고객은 자신이 생성한 이미지에 대한 요금을 지불합니다.

Step 3: Test Purchase하기

test mode에서 product를 한 번 구매합니다. 구매하면 애플리케이션이 usage event를 전송할 customer가 생성됩니다.
1

Get Your Payment Link

  1. Dodo Payments dashboard에서 Products로 이동합니다.
  2. “PixelGen AI - Image Generation” product를 찾습니다.
  3. product 옆의 Share를 클릭합니다.
  4. payment link를 복사합니다.
payment link는 https://test.checkout.dodopayments.com/buy/pdt_IgPWlRsfpbPd5jQKezzW1?quantity=1와 같은 형태입니다.
2

Complete a Test Purchase

  1. 새 browser tab에서 payment link를 엽니다.
  2. test payment details를 입력하고 구매를 완료합니다.
payment가 성공하면 구매를 통해 customer가 생성됩니다. 애플리케이션 코드는 해당 customer의 ID를 사용합니다.
3

Find Your Customer ID

  1. Dodo Payments dashboard로 돌아갑니다.
  2. 사이드바에서 Sales → Customers로 이동합니다.
  3. test email address로 생성한 customer를 찾습니다.
  4. customer ID를 복사합니다. cus_abc123def456와 같은 형태입니다.
이 customer ID를 저장합니다. 샘플 애플리케이션은 코드에서 이 ID를 설정하므로 모든 event가 해당 customer에 기록됩니다.

Step 4: Sample Application 구축하기

billing을 설정하고 test customer를 생성했으므로 샘플 PixelGen AI 애플리케이션을 구축합니다. 애플리케이션은 이미지를 생성하고 billing을 위해 Dodo Payments에 보고합니다.
이 샘플은 Image API를 통해 OpenAI의 gpt-image-2.5-flare 모델을 호출합니다. Image API는 base64로 인코딩된 이미지 데이터를 반환하므로, 샘플은 각 이미지를 PNG 파일로 저장합니다. Dodo Payments 부분(미터, product 및 image.generated usage event)은 모델에 종속되지 않습니다.
1

Set Up Your Project

directory를 만들고 project를 초기화합니다:
2

Install Dependencies

package를 설치합니다:
3

Create the Main Application

index.ts라는 이름의 file을 만들고 아래의 application code를 붙여 넣습니다.
billing이 포함된 완전한 PixelGen AI application과 이에 대응하는 .env 및 package.json입니다:

Step 5: Sample Application 테스트하기

PixelGen AI를 end to end로 테스트하고 usage가 Dodo Payments에 도달하는지 확인합니다.
테스트할 내용: 이미지 몇 개를 생성하고 event가 Dodo Payments에 도달하는지 확인한 다음 billing calculation을 확인합니다.
1

Set Up Your Environment

  1. pixelgen-ai directory에 .env file을 만듭니다.
  2. API key를 추가합니다:
  1. dependency를 설치하고 app을 실행합니다:
실제 API key를 사용하고 index.ts의 hardcoded customer ID를 Step 3의 customer ID로 교체합니다.
2

Generate Your First Test Image

app가 시작되면 다음을 출력합니다:
다음 prompt를 입력합니다: “A cute robot painting a landscape”출력은 다음과 같습니다. sendUsageEvent가 출력하는 request debug line은 생략했습니다:
출력에 “Usage event sent successfully”가 포함되면 billing integration이 작동하는 것입니다.
3

Generate a Few More Images

여러 event를 테스트하려면 이미지를 두세 개 더 생성합니다. 이미지마다 npm start를 한 번 실행하고 다음 prompt를 사용합니다:
  1. “A sunset over mountains with purple clouds”
  2. “A steampunk coffee machine in a Victorian kitchen”
  3. “A friendly dragon reading a book in a library”
매번 “Usage event sent successfully” message가 표시되는지 확인합니다.
4

Check Your Dodo Payments Dashboard

Dodo Payments가 event를 수신하는지 확인합니다:
  1. Dodo Payments dashboard를 엽니다.
  2. Products → Meters로 이동하여 Image Generation Meter를 엽니다.
  3. Events tab을 선택합니다.
  4. 목록에서 image generation event를 찾습니다.
확인할 내용:
  • Event name: image.generated
  • Customer ID: test customer ID
목록에는 생성한 각 이미지마다 하나의 event가 표시됩니다.
5

Verify Billing Calculations

usage count를 확인합니다:
Customers tab of the meter showing consumed units per customer
  1. meter에서 Customers tab을 선택합니다.
  2. test customer를 찾습니다.
  3. Consumed Units column을 확인합니다.
6

Test the Billing Threshold

free tier를 초과하여 billing을 확인합니다:
  1. 이미지를 8개 더 생성하여 총 12개로 만듭니다.
  2. 다시 meter의 Customers tab을 엽니다.
  3. 다음 값을 확인합니다:
    • Consumed Units: 12
    • Chargeable Units: 2 (12 − 무료 10개)
    • Total Price: $0.10
Usage-based billing이 작동합니다. 고객은 자신이 생성한 이미지에 대한 요금을 지불합니다.

문제 해결

일반적인 문제와 해결 방법은 다음과 같습니다:
가능한 원인:
  • Event name이 meter configuration과 정확히 일치하지 않음
  • Customer ID가 account에 존재하지 않음
  • API key가 유효하지 않거나 만료됨
  • Network connectivity 문제
해결 방법:
  1. event name이 meter와 정확히 일치하는지 확인합니다. 대소문자를 구분합니다.
  2. customer ID가 Dodo Payments에 존재하는지 확인합니다.
  3. 간단한 API call로 API key를 테스트합니다.
  4. network connectivity와 firewall settings를 확인합니다.

축하합니다! PixelGen AI를 구축했습니다

usage-based billing을 사용하는 샘플 AI 이미지 생성기를 구축했습니다:

Usage Meter

모든 image generation event를 계산하는 “Image Generation Meter”입니다.

Billing Product

이미지당 $0.05이며 매월 이미지 10개가 무료인 pricing입니다.

AI Application

OpenAI image API로 이미지를 생성하는 TypeScript app입니다.

Automated Billing

이미지가 생성될 때마다 이를 event로 보고하는 tracking을 통해 고객에게 usage 기반으로 요금을 청구합니다.
마지막 수정일 2026년 9월 26일