피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Cloudflare D1과 Turnstile 기반의 Zero-Backend 댓글 시스템 구축
Comments on a static blog — no backend, no login, all Cloudflare
AI 요약
Context
비개발자 독자를 고려한 No-Login 제약 사항과 별도 서버 운영 부담을 제거하기 위한 설계 필요성 대두. 기존 Disqus의 무거운 스크립트와 Giscus의 GitHub 로그인 강제 문제를 해결하기 위해 Cloudflare 생태계 내 단일 스택 구성 지향.
Technical Solution
- Cloudflare Pages Functions와 D1 Database를 결합한 Serverless 아키텍처 설계로 인프라 관리 비용 제거
- Cloudflare Turnstile 도입을 통한 No-Login 환경의 스팸 방지 및 서버 사이드 토큰 검증 로직 구현
- Pre-moderation 전략을 통한 approved=0 상태의 기본 저장 및 승인 후 공개 처리로 보안성 확보
- Telegram Bot API와 Webhook을 활용한 별도 관리자 페이지 없는 Moderation UI 구축
- X-Telegram-Bot-Api-Secret-Token 헤더 검증을 통한 Webhook 엔드포인트 보안 강화
- LocalStorage와 D1 Counter의 대칭적 업데이트(POST/DELETE)를 통한 Like 카운트 정합성 문제 해결
실천 포인트
1. 서버리스 환경에서 관리자 UI 구축 비용을 줄이기 위해 익숙한 메신저 API를 Webhook으로 연결하여 관리 도구로 활용
2. No-Login 기능 구현 시 CAPTCHA의 서버 사이드 검증 단계를 DB Write 직전에 배치하여 스팸 유입 차단
3. 단순 카운터 구현 시 클라이언트 상태와 서버 데이터의 동기화 로직(Symmetric Update)을 설계하여 데이터 오염 방지