Braze 입문 1편. Customer Engagement Platform (CEP) 으로서의 Braze. 5 핵심 개념 (User · Segment · Campaign · Canvas · Content Card), 6 채널 (Email · Push · SMS · In-app · Web Push · Content Card), 데이터 모델 (User Attribute · Event · Purchase · Custom Attribute), SDK 종류, Liquid templating, Connected Content, Currents (이벤트 export), 도입 결정 + 경쟁 도구 (Iterable · Klaviyo · Customer.io · Salesforce MC) 비교까지 풀어쓴 학습 노트.
오늘부터 Braze 입문에서 운영까지 시리즈를 시작해요. 1편은 Braze 가 도대체 뭘 해주는 플랫폼인가 — 큰 그림.
이 시리즈는 Braze 공식 문서와 일반 marketing automation (마케팅 자동화 도구 전반) 지식을 참고해 한국어 학습 노트로 풀어쓴 자료예요.
Braze 무료 trial 또는 다른 marketing tool 의 sandbox 로 작은 캠페인 한두 개를 직접 보내 보면 본문이 머리에 훨씬 잘 박혀요.
처음 들으면 어렵게 느껴지는 이유
Braze 가 처음 헷갈리는 건 이름이 비슷한 도구 들이 5개+ 라서예요. 큰 카테고리로 나누면 이렇게 다섯입니다 — 고객 소통 전반을 한 화면에서 다루는 Customer Engagement Platform (CEP) 에 Braze · Iterable, 고객 데이터 통합이 본업인 Customer Data Platform (CDP) 에 Segment · Rudderstack, 이메일·캠페인 자동화 위주의 Marketing Automation 에 HubSpot · Marketo · Mailchimp, 메일 발송 인프라인 Email Service Provider (ESP) 에 Mailgun · SendGrid · Postmark, 그리고 푸시만 다루는 Push 전용 에 OneSignal · Firebase Cloud Messaging.
이 5 카테고리의 경계 가 흐릿 해요. Braze 는 어디에 속하나? — CEP 이 정답인데, CDP · Marketing Automation · ESP · Push 전용 의 기능을 다 일부 포함 해서 헷갈려요.
해결법은 비유 하나로. Braze = "고객과 multi-channel 로 대화하는 통합 운영실". 어느 채널 (email · push · SMS · in-app · web push) 이든 + 어떤 시점에 무엇 보낼지 의 결정과 자동화 + 결과 측정 을 한 plat 에서. 비슷한 도구들 (Iterable · Klaviyo · Salesforce Marketing Cloud · Customer.io · MoEngage) 도 같은 카테고리 — 세부 강점이 다를 뿐.
Braze 한 줄 정의
Braze 는 고객과 더 영향력 있는 경험을 조성 하도록 설계된 고성능 마케팅 플랫폼. — 공식 docs
쉽게 풀면 — 고객의 라이프사이클 (가입 · 활성 · 결제 · 이탈) 마다 적절한 시점 + 적절한 채널 로 메시지 보내는 인프라.
대표 사용은 이런 식이에요. 가입 후 1시간 에 welcome email 한 통, 카트 추가 후 24시간 미결제 사용자에게는 "장바구니에 두고 가셨네요" push 알림, 결제 직후 에는 "주문 확인" SMS, 비활성 7일 된 사용자한테는 in-app 으로 "오랜만에 오셨어요", 그리고 이탈 위험 detect 시점에 할인 쿠폰 이메일.
이런 고객 여정 (journey) 을 코드 없이 운영자가 설계 + 자동 실행 이 Braze 의 본질.
5 핵심 개념
Braze 의 모든 기능은 5 개념의 조합.
개념 1: User — 모든 데이터의 단위
User 데이터 = REST API 또는 SDK 로 Braze 에 전송. — 공식 docs
비유 — 회사의 CRM 의 한 고객 레코드. Braze 의 모든 메시지 · 자동화 · 분석 의 기준 단위.
User 의 구성:
| 항목 | 의미 |
|---|---|
| External ID | 우리 시스템의 user ID (DB의 user.id) |
| Braze User ID | Braze 내부 ID (자동 생성) |
| Standard Attributes | email · phone · country · language · first_name 등 |
| Custom Attributes | tier · signup_year · last_order_date 등 (자유) |
| Events | 사용자 행동 (login · purchase · page_viewed 등) |
| Purchases | 결제 이력 (별도 모델) |
개념 2: Segment — 사용자 그룹 정의
비유 — SQL WHERE 절을 대시보드에서 클릭 으로 정의.
Segment "VIP 한국 사용자":
- Custom.tier = "premium" OR "enterprise"
- Standard.country = "KR"
- Custom.lifetime_purchases > 10
- Last seen < 30 days ago
Segment 의 역할:
- 캠페인의 대상 정의
- Canvas (journey) 의 entry 조건
- 분석의 group by 차원
한 번 정의한 segment 를 여러 캠페인 · journey 에서 재사용. Statsig 의 Segment 와 같은 개념.
개념 3: Campaign — 단일 메시지
비유 — 한 시점, 한 채널, 한 메시지 의 단순 발송.
Campaign "여름 세일 알림":
Channel: Email
Audience: Segment "Active 사용자"
Schedule: 2026-07-01 09:00 KST
Content: "여름 세일 30% 할인"
Campaign 의 종류:
- One-time — 특정 시간 1회 발송
- Trigger-based — 사용자 행동 trigger (예: 카트 추가)
- API-triggered — 우리 시스템 API 호출 시 발송
- Recurring — 매주 · 매월 반복
→ 단순한 메시지 발송은 Campaign 으로 충분.
개념 4: Canvas — 다단계 Journey Orchestration
비유 — Campaign 이 단일 메시지 라면, Canvas 는 드라마 시나리오. 여러 단계 + 분기 + 시간 지연 + 조건부 메시지.
Canvas "신규 가입 onboarding":
Step 1 (entry): 가입 직후
→ Email "환영합니다"
Step 2: 24시간 후
→ 사용자 첫 결제 했나? 분기
├─ Yes: Email "감사합니다"
└─ No: Push "첫 결제 5% 할인"
Step 3: 7일 후 (No branch)
→ SMS "다시 와 주세요"
Step 4: 30일 후
→ 비활성 사용자 segment 로 이동
여기서 정말 강력한 자리 — journey 의 모든 단계 + 분기 + 시점 을 대시보드에서 시각적으로 설계. 코드 없이 PM · 마케터 가 직접.
Canvas vs Campaign 한 줄 비교:
- Campaign = 단일 메시지 (이메일 · 푸시 · ...)
- Canvas = 여러 단계 + 분기의 journey
대부분 복잡한 lifecycle 자동화 = Canvas. 단순 알림 = Campaign.
개념 5: Content Card — In-app inbox 메시지
비유 — push 알림은 밀어내는 메시지. Content Card 는 앱 안에 쌓이는 inbox.
앱 안 "알림함" 탭:
- "이번 주 신상품 도착" (3시간 전)
- "친구 초대하고 5,000원 받기" (어제)
- "VIP 등급 도달 축하" (3일 전)
Content Card 의 특징:
- 영구 노출 (사용자가 dismiss 할 때까지)
- 앱 안 전용
- 풍부한 UI (이미지 · CTA 버튼)
- 읽음/dismissed 추적
push 와 보완 관계 — 긴급 = push, 지속 노출 = Content Card.
6 채널 — 어디서 사용자와 만나나
| 채널 | 특성 | 대표 사용 |
|---|---|---|
| 긴 콘텐츠 · 모든 사용자 | 뉴스레터 · 영수증 · 마케팅 | |
| Push | 짧고 즉시 · 앱 사용자 | 알림 · 긴급 · re-engagement |
| SMS | 매우 짧음 · 거의 모든 사용자 | 인증 · 주문 확인 · 긴급 |
| In-app Message | 앱 안 모달 · 활성 사용자만 | 신기능 안내 · 가이드 |
| Web Push | 브라우저 push · 동의 사용자 | 웹 사용자 retention |
| Content Card | 앱 inbox · 영구 노출 | 비긴급 안내 · 캠페인 |
→ 모든 채널 = 한 plat 에서 통합 운영. 같은 사용자가 어떤 채널 어디서 만났는지 통합 추적.
채널 선택 가이드
긴급 + 즉시 (예: 결제 실패) → SMS · Push
정보 풍부 (예: 영수증) → Email
앱 사용 중 안내 → In-app Message
지속 노출 → Content Card
브라우저 사용자 → Web Push
우리 사용자가 어디 있나 + 메시지 긴급성 으로 채널 결정.
데이터 모델 — Braze 가 추적하는 4 단위
1. User Attributes
// SDK
braze.getUser().setEmail("user@example.com");
braze.getUser().setCountry("KR");
braze.getUser().setLanguage("ko");
braze.getUser().setCustomAttribute("tier", "premium");
braze.getUser().setCustomAttribute("signup_year", 2025);
고객 프로필 — 비교적 안정적 정보. 변경 시 update.
2. Custom Events
// 사용자 행동
braze.logCustomEvent("checkout_completed", {
cart_value: 50000,
items_count: 3,
payment_method: "card"
});
braze.logCustomEvent("product_viewed", {
product_id: "P-123",
category: "shoes"
});
시점 + 속성 의 행동 기록. Canvas entry · 분석의 trigger.
3. Purchases
// 결제는 별도 모델
braze.logPurchase(
"product_id",
50000,
"KRW",
1, // 수량
{ ... 추가 속성 }
);
결제는 별도 추적 권장. LTV (Lifetime Value) · ARPU (Average Revenue Per User) 같은 표준 분석 자동.
4. Subscription State
braze.getUser().setEmailNotificationSubscriptionType("subscribed");
braze.getUser().setPushNotificationSubscriptionType("opted_in");
채널별 동의 상태. GDPR (EU 개인정보보호 규정) · KISA (한국인터넷진흥원) · CAN-SPAM (미국 마케팅 메일 법) 컴플라이언스 의 기본.
Dashboard 구조 — 6 큰 섹션
| 섹션 | 무엇 |
|---|---|
| User Guide | 마케터/PM 의 캠페인 · Canvas · Segment 운영 |
| Developer Guide | SDK 통합 · client/server 통합 |
| API Guide | REST API 기반 자동화 |
| Technology Partners | 사외 도구 통합 |
| What's New | 새 기능 · release notes |
| Compliance | GDPR · KISA · CAN-SPAM 안내 |
→ 우리 역할 (마케터 vs 개발자) 에 따라 시작점 다름.
SDK 종류 — 거의 모든 환경
Braze 가 지원하는 SDK 큰 묶음:
Client SDK
- Web — JavaScript
- iOS — Swift · Objective-C
- Android — Java · Kotlin
- React Native
- Flutter
- Roku
- Unity (게임)
Server-side
- REST API — 모든 언어
- 공식 라이브러리 = Node.js · Python · Ruby · Go · PHP 등
대부분 환경 = Web SDK + iOS/Android SDK + Server REST API.
Liquid Templating — 메시지 동적 콘텐츠
Liquid 는 Shopify 가 만든 templating 언어. Braze 에서 메시지 콘텐츠 동적 생성 에 활용.
사용 예제
안녕하세요, {{ ${first_name} | default: '회원님' }}님!
지난 주문 {{ ${last_order_id} }} 의 적립금 {{ ${reward_points} }}원이 적립됐어요.
{% if ${tier} == 'premium' %}
Premium 회원 전용 할인 쿠폰 SUMMER30 도 함께 드려요.
{% endif %}
같은 메시지를 사용자별 다른 콘텐츠 로. 이름·tier·과거 행동 모두 자동 치환.
여기서 시험 함정이 하나 있어요 — default 값 박지 않으면 attribute 없는 사용자 가 "안녕하세요, 님!" 같은 어색한 메시지 받음. 모든 personalization = default fallback 필수.
Connected Content — 외부 데이터 lookup
비유 — 메시지 보낼 때 우리 회사 API 호출 해서 실시간 데이터 포함.
{% connected_content
https://api.example.com/recommendations?user_id={{external_id}}
:save recommendations
%}
{{ recommendations.title }} 같은 상품들이 잘 어울려요!
발송 직전에 external API 호출 → JSON 응답을 메시지에 박음. 실시간 개인화.
대표 사용처를 묶으면, 상품 재고·가격 의 실시간 확인, AI 추천 결과 호출, 날씨·환율 데이터 조회, 그리고 우리 DB 의 사용자별 정보 lookup 까지 한 자리에서.
Currents — 이벤트 export
Currents — Braze 의 모든 이벤트 데이터 를 외부 시스템 (S3 · Kafka · Snowflake · ...) 으로 stream.
작동
[Braze]
사용자 email_sent · email_opened · email_click · push_received · ...
↓ Currents
[우리 시스템]
- Amazon S3 (data lake)
- Snowflake (분석 웨어하우스)
- Apache Kafka (실시간)
- Google Cloud Storage
- Azure Blob
→ Braze 의 모든 발송 · 응답 이벤트 가 우리 데이터 시스템 으로. 통합 분석 · long-term storage · BI 연결.
Currents 의 의미
Braze 의 closed 시스템 회피. 데이터 우리가 통제 + 어떤 BI 도 활용.
통합 — 이미 쓰는 도구와 결합
| 카테고리 | 통합 대상 |
|---|---|
| CDP | Segment · Rudderstack · mParticle · Tealium |
| 광고 | Google Ads · Meta Ads · TikTok |
| 분석 | Mixpanel · Amplitude · Adobe · Google Analytics |
| 데이터 웨어하우스 | Snowflake · BigQuery · Databricks · Redshift (Currents) |
| CRM | Salesforce · HubSpot |
| e-commerce | Shopify · BigCommerce |
| AI · ML | OpenAI · Anthropic Claude · 자체 모델 (Connected Content) |
→ 대부분 환경 = 기존 도구 stack + Braze 추가 통합.
도입 결정 — 언제 가야 하나
도입 시그널 — 3 이상 해당 = 검토 시점
- 마케팅 메시지 발송 이 수작업 · 분산 도구 (이메일은 SendGrid, 푸시는 OneSignal, ...)
- 사용자 lifecycle 캠페인 운영 — retention · re-engagement · churn 방지
- segmentation 기반 마케팅 필요
- 멀티 채널 메시지 일관성 필요
- 마케터 자율 운영 (개발자 의존 X) 가 필요
- 사용자 10K 이상 (자동화 가치 발생)
도입 시기 아님
- 사용자 < 1K (overkill)
- 마케팅 자체가 거의 없음 (B2B 내부 도구 등)
- 예산 부족 (Braze 는 enterprise 가격)
경쟁 도구 비교
Braze 만이 정답 X. 우리 회사 fit 이 중요.
같은 CEP 카테고리
| 도구 | 강점 | 약점 |
|---|---|---|
| Braze | Multi-channel 완성도 · Canvas 강력 · enterprise 인기 | 비쌈 · 학습 곡선 |
| Iterable | Workflow studio · email 강점 | UI 가독성 · 기능 분산 |
| Customer.io | 개발자 친화 · API 유연 | UI 한계 · enterprise 약함 |
| Klaviyo | e-commerce 최강 · Shopify 깊은 통합 | e-commerce 외엔 약함 |
| MoEngage | APAC 친화 · 가격 합리적 | enterprise 완성도 |
다른 카테고리 도구
- Salesforce Marketing Cloud — enterprise · CRM 통합 · 비싸고 복잡
- HubSpot — inbound marketing · CRM 통합 · B2B 중심
- Mailchimp — small business · email 중심 · 단순
- OneSignal — push 전용 · 저비용
Braze 가 가장 강한 자리
- multi-channel orchestration (Canvas)
- enterprise 사용자 (Burger King · Disney · Sephora 등 reference)
- 대규모 데이터 (수억 사용자)
- technical 깊이 (Connected Content · Currents · Liquid)
Braze 가 약한 자리
- Shopify 깊은 통합 = Klaviyo 우세
- 작은 회사 · 단순 use case = overkill
- 완전 self-host = Braze 는 SaaS 만
- 오픈 소스 = X
자주 만나는 사고 — 도입 단계
사고 1: External ID 매핑 부재
원인 — Braze user 와 우리 DB user 의 연결 키 없음 → 같은 사용자가 두 entity 로.
해결 — External ID = DB user.id 일치. SDK 초기화 시 항상 setExternalId.
사고 2: Subscription 상태 무시
원인 — opt-out 한 사용자 에게 계속 마케팅 메시지 발송 → CAN-SPAM 위반.
해결 — channel 별 subscription state 추적 + 발송 시 자동 필터.
사고 3: Custom attribute cardinality 폭증
원인 — signup_timestamp 같은 고유 timestamp 를 attribute 로 저장.
해결 — 5편 Cardinality 통제 와 동일. 카테고리 가능한 값만 attribute, 고유 값은 event property.
사고 4: Liquid default 누락
원인 — {{first_name}} 의 default 없음 → "안녕하세요, 님!" 메시지.
해결 — 모든 personalization = default 필수.
사고 5: Connected Content 의 latency
원인 — Braze 가 우리 API 응답 대기 → 발송 지연.
해결 — 우리 API timeout 500ms 이내 보장 + cache 활용.
사고 6: Canvas 너무 복잡
원인 — 20+ step 의 Canvas → 디버깅 어려움.
해결 — 5~10 step 단위 로 분할. 복잡한 분기는 별도 Canvas.
사고 7: Currents 비용 폭증
원인 — 모든 이벤트 를 모든 destination 으로 stream → S3 · Snowflake 비용 ↑.
해결 — 필요한 event 만 filter. retention 설정.
운영 권장 패턴
Pattern 1: 표준 SDK 통합
// Web (Next.js 등)
import * as braze from "@braze/web-sdk";
braze.initialize("YOUR_API_KEY", {
baseUrl: "sdk.iad-01.braze.com", // 지역별 endpoint
enableLogging: false // production
});
braze.changeUser(user.id); // External ID
braze.getUser().setEmail(user.email);
braze.getUser().setCustomAttribute("tier", user.tier);
braze.openSession();
Pattern 2: 표준 event 명명
// 동사_명사 + snake_case
braze.logCustomEvent("signup_completed", { source: "google" });
braze.logCustomEvent("product_viewed", { product_id, category });
braze.logCustomEvent("cart_added", { product_id, quantity });
braze.logCustomEvent("checkout_started", { cart_value });
// Purchase 는 별도
braze.logPurchase("product_id", 50000, "KRW", 1, { ... });
5편 Event 설계 원칙 과 동일.
Pattern 3: Onboarding Canvas
Step 1 (entry: signup_completed event):
→ Email "환영합니다 + 첫 구매 5% 쿠폰"
Step 2 (24시간 후):
분기: 사용자가 첫 결제 했나?
Yes → 종료
No → Push "쿠폰 곧 만료"
Step 3 (3일 후, No branch):
→ In-app message "튜토리얼 보기"
Step 4 (7일 후, 여전히 No):
→ SMS "5,000원 추가 할인"
Step 5 (14일 후):
→ 비활성 segment 로 분류
가장 흔한 표준 패턴.
Pattern 4: Cart Abandonment Canvas
Trigger: cart_added event 후 24시간 미결제
Step 1: Email "장바구니에 두고 가셨네요"
Step 2 (12시간 후, 여전히 미결제): Push "10% 할인 + 무료배송"
Step 3 (24시간 후): SMS "마지막 기회 — 1시간 안 결제하시면 추가 5%"
E-commerce 의 가장 강력한 retention 패턴.
Pattern 5: Subscription 안전선
모든 캠페인:
- 발송 전: subscription state 확인
- opt-out 사용자: 자동 제외
- bounce/complaint: 자동 unsubscribe
- 정기 audit: 죽은 email · 잘못된 phone 정리
법적 안전 + sender reputation 보호.
시험 직전 한 번 더 — Braze 입문 함정 압축 노트
- Braze = Customer Engagement Platform (CEP)
- vs CDP / Marketing Automation / ESP / Push 전용 — 5 카테고리 경계 흐림
- multi-channel + journey orchestration + 분석 한 plat
- 5 핵심 개념 = User · Segment · Campaign · Canvas · Content Card
- User — External ID + Standard/Custom Attribute + Event + Purchase
- External ID = 우리 DB user.id (매핑 필수)
- Segment — SQL WHERE 의 시각화, 캠페인 대상 정의
- Campaign — 단일 메시지 (one-time · trigger · API · recurring)
- Canvas — 다단계 journey (entry → 분기 → 지연 → 종료)
- Campaign 단일 vs Canvas journey
- Content Card — 앱 안 inbox · 영구 노출 (push 의 보완)
- 6 채널 = Email · Push · SMS · In-app · Web Push · Content Card
- 채널 선택 = 긴급성 · 사용자 위치 · 메시지 양
- 데이터 4 단위 = User Attribute · Custom Event · Purchase · Subscription State
- Purchase = 별도 모델 (LTV · ARPU 자동)
- Subscription = GDPR · CAN-SPAM 기본
- SDK = Web · iOS · Android · React Native · Flutter · Roku · Unity · REST API
- Liquid templating = Shopify 의 templating 언어
{{ first_name | default: '회원님' }}패턴- 함정 — default 없으면 "안녕하세요, 님!" 어색
- Connected Content = 발송 직전 외부 API 호출 → 실시간 개인화
- 함정 — API latency (500ms 이내 권장)
- Currents = Braze 이벤트 → S3 · Snowflake · Kafka 등 stream
- closed 시스템 회피 + 데이터 우리 통제
- 함정 — 비용 폭증 (filter · retention)
- 통합 = CDP · 광고 · 분석 · 웨어하우스 · CRM · e-commerce · AI
- 도입 시그널 3+ = 발송 분산 · lifecycle 캠페인 · segmentation · multi-channel · 마케터 자율 · 10K+ 사용자
- 도입 아님 = < 1K · 마케팅 거의 없음 · 예산 부족
- 경쟁 도구 = Iterable · Customer.io · Klaviyo · MoEngage · Salesforce MC · HubSpot · Mailchimp · OneSignal
- Braze 강점 = multi-channel · Canvas · enterprise · 대규모
- Braze 약점 = Shopify 통합 (Klaviyo 우세) · 작은 회사 · self-host X · open-source X
- 사고 — External ID 매핑 · subscription 무시 · cardinality · Liquid default · Connected Content latency · Canvas 복잡 · Currents 비용
- 패턴 — SDK 표준 init · event 명명 (동사_명사) · Onboarding Canvas · Cart Abandonment · Subscription 안전선
공식 문서: Braze Documentation 에서 원문을 확인할 수 있어요.
시리즈 다른 편 (앞뒤 글 모음)
다음 글: