제로 예산으로 혼자 Meme Coin을 만들고 있다. 내가 배운 점
Source: Dev.to
(번역을 진행하려면 번역하고자 하는 본문 텍스트를 제공해 주세요.)
소개
저는 스쿠터에서 떨어져 코를 부러뜨린 후, 솔라나에서 Motorcycle Diaries ($MOTO)라는 밈코인 프로젝트를 만들기로 결심한 45세 비개발자입니다. 예산이 전혀 없고, 팀도, 투자자도, 암호화폐 인맥도 없었습니다—그저 고집과 많은 밤샘 작업뿐이었죠. 이 글은 토큰 홍보가 아니라, 처음부터 전체 웹 프로젝트를 구축하면서 배운 점들을 정리한 것입니다.
스택 개요
| Layer | Technology |
|---|---|
| Static site | HTML, CSS, vanilla JavaScript (no frameworks) |
| CDN & security | Cloudflare CDN (performance & DDoS protection) |
| SEO | JSON‑LD structured data, Open Graph tags, Twitter Cards, sitemap.xml |
| Analytics | Google Analytics 4 (GA4) + GA Data API (exposed via /stats command) |
| PWA | manifest.json, service worker |
| Telegram bot | python-telegram-bot library |
| Backend | FastAPI + Solana wallet integration |
| Database | SQLite (state persistence) |
| Hosting | Shared hosting for static files, Cloudflare Tunnel for backend, PHP proxy to bridge frontend ↔ backend |
| Deployment | Systemd service, Cloudflare Tunnel (cloudflared) |
| Monitoring | FxTwitter API for X account, auto‑post new tweets to Telegram, follower‑count tracking |
| Frontend game | 5‑reel slot machine with bonus system |
| Security hardening | .htaccess rules, image optimization |
프론트엔드
- 디자인: Bootstrap, Tailwind 등을 사용하지 않고 처음부터 만든 맞춤형 반응형 레이아웃.
- 성능: 페이지 로드 시간이 700 ms 이하.
- 이미지 최적화: 원본 36 MB 이미지 폴더를 ImageMagick(
resize + quality 80)과pngquant를 사용해 7 MB로 축소. 로드 시간이 1.8 s에서 0.68 s로 감소. - PWA 지원:
manifest.json과 서비스 워커를 통해 설치 가능하고 오프라인에서도 동작하는 경험 제공.
샘플 .htaccess 강화
# Prevent clickjacking
Header set X-Frame-Options "DENY"
# Content Security Policy
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'"
# Enforce HTTPS
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Cross‑Origin Opener Policy
Header set Cross-Origin-Opener-Policy "same-origin"
# Block common attack vectors
RewriteCond %{QUERY_STRING} (?:\b(?:select|union|insert|delete|drop)\b) [NC,OR]
RewriteCond %{REQUEST_URI} (?:/etc/passwd|/wp-admin|/wp-login) [NC]
RewriteRule ^ - [F,L]Backend
- API: FastAPI는 Solana 지갑 통합과 슬롯 머신 로직을 제공합니다.
- Port restrictions: ISP가 맞춤 포트를 차단했기 때문에, Cloudflare Tunnel(
cloudflared)을 사용해localhost:8901을 공개 HTTPS URL로 노출했습니다. - Proxy: 공유 호스팅에 있는 가벼운 PHP 스크립트가 정적 사이트의 요청을 FastAPI 백엔드로 전달합니다.
Telegram Bot
- 전체 그룹 관리 (밴, 뮤트, 경고, 안티‑플러드)
- 신규 회원을 위한 캡차 인증 (SafeGuard와 유사)
- 예약 작업 (일일 분석 보고서)
- FxTwitter API를 통한 Twitter/X 모니터링
- 새로운 트윗을 텔레그램 그룹에 자동 게시
- 팔로워 수 변동 알림과 유머러스한 메시지
- DM 버튼이 포함된 맞춤 환영 메시지
- GA4 데이터를 가져와 텔레그램에서 직접 웹사이트 분석을 표시하는
/stats명령
보안 및 강화
.htaccess 규칙 외에, 나는:
- 의심스러운 쿼리 문자열 및 알려진 스캐너 사용자 에이전트를 차단했습니다.
- 엄격한 CSP, HSTS 및 X‑Frame‑Options 를 적용했습니다.
- 비정상적인 활동에 대해 로그를 정기적으로 감사했습니다.
배운 점
- Image compression matters – 간단한 리사이즈/품질 조정만으로도 로드 시간을 크게 단축할 수 있습니다.
- Static sites can outperform heavy frameworks – 콘텐츠 중심 마케팅 페이지에서는 정적 사이트가 무거운 프레임워크보다 성능이 뛰어날 수 있습니다.
- Cloudflare Tunnel is a lifesaver – ISP 방화벽이 사용자 정의 포트를 차단할 때 Cloudflare Tunnel은 구세주와 같습니다.
- Telegram Bot API is surprisingly powerful; 하나의 프로세스로 관리 작업, 분석, 외부 API 통합을 모두 처리할 수 있습니다.
- Security can be layered – 적절한
.htaccess설정만으로도 저렴한 공유 호스팅에서도 보안을 계층화할 수 있습니다.
Resources
- Website:
- The Manifesto – 전체 필터링되지 않은 이야기 (사이트에 링크 제공)
- Telegram Community – 사이트에 있는 링크를 통해 참여하세요
- X (Twitter): @motodiariesfun
Disclaimer
이것은 재정 조언이 아닙니다. 저는 스쿠터에서 떨어진 뒤 장난을 치기 시작한 사람일 뿐입니다. 혼자 무언가를 만들고자 하는 개발자라면—그냥 시작하세요. 오늘날 사용할 수 있는 도구들은 정말 놀랍습니다.
Born to Ride. Forced to HODL. 🏍️