Week 3
Monetization & Agentic AI 맛보기
결제 시스템 연동 + 뉴스레터 자동화 Agent
사전 준비사항
- 어떤 뉴스를 수집할지 주제 선정하기
- 예시: 동남아 뉴스, AI 뉴스, 특정 산업 뉴스 등
실제 운영 사례: 태디뉴스
매일 아침 7시, AI/Tech 뉴스를 4명의 가상 패널이 토론하는 팟캐스트와 함께 발송
Part 1: 결제 시스템 연동
왜 결제가 필요한가?
AI API 비용은 사용량에 비례합니다. 지속 가능한 서비스를 위해 수익화가 필수입니다. 구독 모델은 예측 가능한 수익을 제공하고, 사용자에게도 일관된 가치를 제공합니다.
Stripe (글로벌)
- 전 세계 결제 지원
- 강력한 구독 관리
- 수수료: 2.9% + $0.30
- 한국 사업자도 사용 가능
토스페이먼츠 (국내)
- 국내 결제에 최적화
- 카카오페이, 네이버페이 지원
- 수수료: 2.5% ~ 3.5%
- 한국어 문서 및 지원
Stripe 구독 구현 예시
// 1. Stripe 설치
npm install stripe @stripe/stripe-js
// 2. 백엔드: 결제 세션 생성
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
export async function createCheckoutSession(priceId, userId) {
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
payment_method_types: ['card'],
line_items: [{ price: priceId, quantity: 1 }],
success_url: `${YOUR_DOMAIN}/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${YOUR_DOMAIN}/cancel`,
client_reference_id: userId,
});
return session;
}
// 3. 프론트엔드: 결제 페이지로 이동
import { loadStripe } from '@stripe/stripe-js';
const stripePromise = loadStripe(process.env.NEXT_PUBLIC_STRIPE_KEY);
async function handleSubscribe() {
const stripe = await stripePromise;
const { sessionId } = await fetch('/api/create-checkout-session').then(r => r.json());
await stripe.redirectToCheckout({ sessionId });
}가격 전략 팁: 무료 티어로 사용자를 유입하고, 프리미엄 기능(무제한 사용, 고급 분석 등)으로 전환을 유도하세요.
Part 2: 뉴스레터 자동화 Agent
자동화 파이프라인 구조
Cloud Scheduler→웹 검색→AI 요약→이메일 발송
Firebase Functions 설정
# Functions 초기화 firebase init functions # TypeScript 선택 (추천) # ESLint 활성화
뉴스 수집 함수 작성
import { onSchedule } from 'firebase-functions/v2/scheduler'; import Anthropic from '@anthropic-ai/sdk'; // 매일 아침 7시에 실행 (한국 시간) export const dailyNewsDigest = onSchedule( { schedule: '0 7 * * *', timeZone: 'Asia/Seoul' }, async (event) => { // 1. Claude로 최신 뉴스 검색 const client = new Anthropic(); const newsResult = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 4000, messages: [{ role: 'user', content: `오늘 날짜의 동남아 AI/Tech 뉴스를 5개 찾아서 각각 제목, 요약(2문장), 원문 링크를 JSON 형식으로 정리해줘.` }] }); // 2. 뉴스 요약 및 인사이트 생성 const digest = await generateDigest(newsResult); // 3. 이메일 발송 await sendNewsletter(digest); } );이메일 발송 설정
Firebase Extension 사용 (가장 쉬운 방법):
# Firebase Console에서 # Extensions > "Trigger Email from Firestore" 설치 # 또는 SendGrid/Mailgun 직접 연동 import sgMail from '@sendgrid/mail'; sgMail.setApiKey(process.env.SENDGRID_API_KEY); async function sendNewsletter(digest) { await sgMail.send({ to: subscribers, // 구독자 목록 from: 'newsletter@yourdomain.com', subject: `📰 오늘의 AI 뉴스 - ${new Date().toLocaleDateString('ko-KR')}`, html: digest.htmlContent, }); }스케줄링 및 배포
# Functions 배포 firebase deploy --only functions # 로그 확인 firebase functions:log # 수동 테스트 (HTTP 트리거 추가 시) curl https://your-project.cloudfunctions.net/testNewsDigest
실전 팁: 뉴스레터 컨텐츠 구성
효과적인 뉴스레터 구조
- 헤드라인 (1줄) - 오늘의 가장 중요한 뉴스
- 주요 뉴스 3-5개 - 각각 제목 + 2문장 요약
- AI 인사이트 - 뉴스들의 공통 트렌드 분석
- 추천 읽을거리 - 깊이 있는 기사 1-2개
- 마무리 - 다음 호 예고 또는 구독 유도
차별화 전략: 단순 뉴스 나열이 아닌, AI의 관점과 분석을 추가하세요. "왜 이 뉴스가 중요한지"를 설명하면 구독 유지율이 높아집니다.
이번 주 과제
- 결제 페이지 프로토타입 만들기 (Stripe 또는 토스페이먼츠)
- 뉴스레터 Agent 구현하고 본인 이메일로 테스트 발송하기
- 주제 선정: 어떤 뉴스를 자동화할 것인지 결정하기
- (도전) 구독자 관리 페이지 만들기