블로그 뉴스레터 구독 기능 추가하기 - Resend 완벽 가이드
블로그 뉴스레터 구독 기능 추가하기 - Resend 완벽 가이드
5분이면 완료! 블로그에 이메일 구독 기능을 추가하세요.
왜 뉴스레터인가?
📊 뉴스레터의 힘
- 이메일 오픈율: 평균 20-30% (SNS 도달률 2-5%보다 10배 높음)
- 직접 소통: 독자와 1:1로 소통
- 플랫폼 독립성: 블로그가 사라져도 구독자 목록은 내 것
🚀 Resend를 선택한 이유
| 기능 | Resend | Mailchimp | SendGrid |
|---|---|---|---|
| 무료 한도 | 3,000통/월 | 500통/월 | 100통/일 |
| 개발자 경험 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| React Email | ✅ 지원 | ❌ | ❌ |
| 가격 (유료) | $20/월 (50K) | $13/월 (500) | $20/월 (50K) |
| UI | 현대적 | 복잡 | 복잡 |
결론: Resend가 가장 개발자 친화적이고 무료 한도도 넉넉합니다!
🚀 5분 빠른 시작
1단계: Resend 계정 생성 (2분)
- https://resend.com 접속
- Start Building 클릭
- GitHub 계정으로 가입 (무료)
2단계: API 키 발급 (1분)
- Dashboard → API Keys 메뉴
- Create API Key 클릭
- Name:
Newsletter, Permission: Full Access - API 키 복사 ⚠️ 한 번만 표시됩니다!
예시: re_A1b2C3d4E5f6G7h8I9j0K1l2M3n4O5p63단계: Audience 생성 (1분)
- Dashboard → Audiences 메뉴
- Create Audience 클릭
- Name:
Blog Subscribers입력 - Audience ID 복사
예시: aud_A1b2C3d4E5f6G7h8I9j0K1l24단계: 환경 변수 설정 (1분)
Cloudflare Pages인 경우
- Cloudflare Dashboard → Workers & Pages → 프로젝트 선택
- Settings → Environment variables
- 다음 3개 변수 추가:
| Name | Value | Environment |
|---|---|---|
RESEND_API_KEY | re_your_api_key... | Production + Preview |
RESEND_AUDIENCE_ID | aud_your_audience_id... | Production + Preview |
FROM_EMAIL | [email protected] | Production + Preview |
로컬 개발 환경
.env 파일 생성:
RESEND_API_KEY=re_your_api_key_hereRESEND_AUDIENCE_ID=aud_your_audience_id_hereFROM_EMAIL 옵션:
- 테스트용:
[email protected](지금 바로 사용 가능) - 프로덕션용:
[email protected](도메인 인증 후)
🎉 완료! 이제 테스트해보세요
작동 방식
- 독자가 이메일 입력 → 구독 폼
- API 엔드포인트 호출 →
/api/newsletter/subscribe - Resend Audience에 추가 → 자동 저장
- 환영 이메일 발송 (선택사항)
테스트 방법
- 블로그 포스트 페이지 하단으로 스크롤
- 뉴스레터 구독 폼 확인
- 이메일 입력 후 구독하기 클릭
- Resend Dashboard → Audiences에서 구독자 확인!
📧 뉴스레터 실제로 발송하기
방법 1: Resend Broadcasts (간단)
- Resend Dashboard → Broadcasts
- Create Broadcast 클릭
- Audience 선택:
Blog Subscribers - 이메일 작성 (HTML 또는 React Email)
- Send 클릭!
방법 2: React Email (아름다운 템플릿)
npm install @react-email/componentsimport { Html, Button, Text } from "@react-email/components";
export default function Newsletter() { return ( <Html> <Text>안녕하세요! 새 글이 올라왔습니다.</Text> <Button href="https://log8.kr/blog/new-post">읽으러 가기</Button> </Html> );}💡 프로 팁
1. 이중 확인 (Double Opt-in)
스팸 방지를 위해 이중 확인 추가:
// 1단계: 확인 이메일 발송await resend.emails.send({ to: email, subject: "구독 확인", html: `<a href="${confirmUrl}">확인하기</a>`,});
// 2단계: 확인 후 Audience에 추가2. 환영 이메일 자동 발송
// 구독 후 바로 환영 이메일await resend.emails.send({ to: email, subject: "구독해주셔서 감사합니다!", html: welcomeTemplate,});3. 구독자 세그먼트
Resend에서 태그로 구독자 분류:
interested-in-react: React 관련 글에만 발송interested-in-ai: AI 관련 글에만 발송
🔒 보안 및 개인정보
GDPR 준수
- ✅ Resend는 GDPR 준수
- ✅ 구독 취소 링크 필수
- ✅ 개인정보 처리방침 명시
스팸 방지
- ✅ Rate limiting 추가
- ✅ reCAPTCHA 고려
- ✅ Honeypot 필드
📊 구독자 분석
Resend Dashboard에서 확인:
- 총 구독자 수
- 오픈율 (이메일 오픈 비율)
- 클릭률 (링크 클릭 비율)
- 구독 취소율
🚨 문제 해결
”API key is invalid”
→ API 키를 다시 확인하세요. re_로 시작해야 합니다.
”Audience not found”
→ Audience ID를 다시 확인하세요. aud_로 시작해야 합니다.
이메일이 발송되지 않음
→ FROM_EMAIL이 [email protected]인지 확인하세요. 또는 도메인 인증을 완료하세요.
”Rate limit exceeded”
→ 무료 플랜은 월 3,000통 제한입니다. 사용량을 Dashboard에서 확인하세요.
💰 비용 계산
무료 플랜 (대부분 충분)
- 3,000통/월 무료
- 구독자 수 무제한
- Audience 무제한
예시: 구독자 300명, 월 10회 발송 = 3,000통 (무료!)
유료 플랜
- $20/월: 50,000통
- $80/월: 250,000통
언제 유료로?
- 구독자 1,000명 이상
- 주 2회 이상 발송
다음 단계
- ✅ 지금: Resend 계정 만들고 테스트
- 📝 1주일 후: 첫 뉴스레터 발송
- 📊 1개월 후: 오픈율 분석 및 개선
- 🚀 3개월 후: React Email로 템플릿 업그레이드
자주 묻는 질문 (FAQ)
Q1. Resend란 무엇인가요?
Resend는 개발자 친화적인 이메일 API 서비스입니다. 월 3,000통까지 완전 무료이며, SendGrid나 Mailchimp보다 훨씬 간단하고 현대적입니다. React Email 지원으로 아름다운 이메일을 쉽게 만들 수 있고, Next.js, Astro 등 모든 프레임워크와 호환됩니다.
Q2. Resend는 무료인가요?
네! 월 3,000통까지 완전 무료입니다. 대부분의 개인 블로그에는 충분한 양이며, 신용카드 등록도 필요 없습니다. 3,000통 초과 시에만 유료 플랜($20/월, 50,000통)으로 업그레이드하면 됩니다.
계산 예시:
- 구독자 300명 × 월 10회 발송 = 3,000통 (무료!)
- 구독자 500명 × 월 10회 발송 = 5,000통 (유료 필요)
Q3. 블로그에 뉴스레터를 추가하는 데 얼마나 걸리나요?
총 5분이면 충분합니다!
- Resend 계정 생성 (2분)
- API 키 발급 (1분)
- Audience 생성 (1분)
- 환경 변수 설정 (1분)
구독 폼 컴포넌트와 API 엔드포인트는 이미 만들어져 있으므로, Resend 설정만 하면 바로 사용할 수 있습니다.
Q4. 뉴스레터 구독자는 어디에 저장되나요?
Resend Audience에 저장됩니다. Resend Dashboard에서 다음을 할 수 있습니다:
- 구독자 목록 확인
- CSV로 내보내기
- 태그로 분류
- 수동으로 추가/삭제
모든 데이터는 Resend 서버에 안전하게 저장되며, GDPR 준수합니다. 언제든 백업 가능하고, 다른 서비스로 이전도 가능합니다.
Q5. 뉴스레터를 실제로 발송하려면?
두 가지 방법이 있습니다:
1. Resend Broadcasts (간단):
- Dashboard → Broadcasts → Create
- Audience 선택 → 이메일 작성 → Send
- 코딩 없이 GUI로 발송 가능
2. Resend API (자동화):
await resend.emails.send({ to: audienceId, subject: "새 글이 올라왔습니다!", html: emailTemplate,});React Email로 아름다운 템플릿을 만들고, 프로그래밍 방식으로 자동 발송도 가능합니다!
#뉴스레터 #Resend #이메일마케팅 #블로그 #Astro
💬 댓글