발단: 퇴근 후 만든 개발자 도구

2024년 9월, 회사에서 반복적으로 JSON 데이터를 변환하는 작업이 짜증 나서 만든 웹 도구가 있었다. JSON을 TypeScript 타입으로, CSV로, YAML로 변환해주는 단순한 유틸리티 사이트였다. 주말 이틀 만에 뚝딱 만들어서 Vercel 무료 플랜에 올렸다.

"나만 쓰려고" 만든 건데, 사내 슬랙에 공유했더니 동료들이 좋아했고, 그중 한 명이 개발자 커뮤니티에 올렸다. 그로부터 2주 뒤, 하루 방문자가 5,000명을 넘기기 시작했다.

처음엔 당황했다. "이게 왜 이렇게 많이 오지?" 싶었는데, 알고 보니 기존에 비슷한 도구들이 다 광고 떡칠이거나 UI가 구려서, 깔끔하게 만든 내 사이트로 사람들이 몰린 거였다. 그렇게 의도치 않게 사이드 프로젝트가 시작됐다.

초기 기술 스택: 0원의 마법

사이드 프로젝트의 최대 장점은 돈이 안 든다는 거다. 적어도 처음에는. 내가 처음에 사용한 무료 스택은 이랬다:

서비스역할무료 티어 한도실제 사용량 (초기)
Vercel프론트엔드 호스팅, Edge Functions100GB 대역폭/월~8GB/월
SupabaseDB + 인증500MB DB, 50K 인증 요청/월~50MB, ~3K 요청
CloudflareDNS + CDN무제한-
GitHub코드 저장소 + CI/CD2,000분/월 (Actions)~200분
UpstashRedis (레이트 리밋용)10K 요청/일~2K/일

총 비용: 정확히 0원. 도메인도 처음엔 Vercel에서 제공하는 .vercel.app 서브도메인을 쓰다가, 사용자가 1만 명 넘어가면서 .dev 도메인을 연 12달러에 구입했다. 그게 첫 지출이었다.

인프라 아키텍처 변천사

초기 (0~5만 MAU) 비용: 0원/월 Vercel (Next.js) Supabase (DB) Cloudflare (CDN) Upstash (Redis) 심플하고 완벽! 배포: git push만 하면 끝 성장기 (5~30만 MAU) 비용: ~15만원/월 Vercel Pro Cloudflare R2 Supabase Pro (DB + Auth) Upstash Pro Resend (이메일) Cloudflare (CDN + WAF) Sentry (에러 트래킹) 무료→유료 전환 시작 정적 자산 R2로 분리 안정기 (100만+ MAU) 비용: ~45만원/월 Vercel Pro + Edge Supabase Pro (리플리카) Cloudflare (CDN+R2+WAF) Upstash (Redis+Kafka) Sentry Posthog Resend BetterStack 안정적 운영! 99.95% 가용성 달성

MVP에서 제품으로: 기능 추가 과정

처음엔 JSON-to-TypeScript 변환 하나뿐이었는데, 사용자 피드백을 받으면서 기능이 늘어났다:

기능을 추가할 때마다 지켰던 원칙이 하나 있다: "3일 안에 못 만들면 안 만든다." 사이드 프로젝트는 퇴근 후와 주말에 하는 거라, 스코프를 극도로 작게 잡아야 지속할 수 있다. 한 번은 "VS Code 확장까지 만들까?" 생각했다가, 일주일은 걸릴 것 같아서 포기했다. 대신 CLI 도구를 3일 만에 만들어서 npm에 올렸고, 이게 오히려 더 인기가 좋았다.

사용자 0명에서 100만까지

마케팅에 돈을 한 푼도 안 썼다. 진짜다. 모든 사용자 유입은 유기적이었다:

월간 활성 사용자(MAU) 성장 추이 100만 75만 50만 25만 0 24.9 24.10 24.11 24.12 25.1 25.3 25.5 25.7 25.9 25.11 26.1 26.3 1.5K 8K 20K 42K 65K 커뮤니티 입소문 API 출시 HN 프론트페이지! 100만+

성장의 핵심 전환점들:

  1. 2024년 10월: 한국 개발자 커뮤니티(okky, GeekNews)에서 입소문. DAU 1,000 돌파.
  2. 2025년 1월: API 출시 후 개발 블로그들에서 소개. 해외 사용자 유입 시작.
  3. 2025년 9월: 영어 UI 추가 후 Hacker News 프론트페이지에 올라감. 하루 만에 DAU 80,000 폭발. 이때 서버가 터졌다.
  4. 2025년 12월: Product Hunt 런칭. 데일리 3위 달성. 해외 사용자 비중이 60%로 역전.

새벽 3시의 비명: 첫 번째 대규모 장애

2025년 9월 15일, Hacker News에 올라간 날이었다. 퇴근하고 넷플릭스 보다가 슬랙 알림이 미친 듯이 울렸다. Uptime 모니터링 봇이 "사이트 다운"을 외치고 있었다.

Vercel 대시보드를 열어보니 Edge Function 호출이 분당 50,000건을 넘기고 있었다. 무료 플랜 한도를 훌쩍 넘겼고, Supabase도 동시 연결 수 한도(기본 60개)에 걸려서 connection pool exhausted 에러를 뱉고 있었다.

그날 밤에 한 일:

  1. Vercel을 Pro 플랜으로 긴급 업그레이드 (월 $20)
  2. Supabase에 connection pooler(PgBouncer) 활성화
  3. 무거운 변환 로직을 Cloudflare Workers로 이전 (Edge에서 실행)
  4. 정적 결과를 Cloudflare R2에 캐싱하는 로직 추가
  5. 레이트 리밋을 IP당 분당 30회에서 60회로 올림 (정상 사용자가 차단당하고 있어서)

새벽 3시에 시작해서 6시에 끝났다. 다음 날 회사에서 졸면서 일했지만, 기분은 이상하게 좋았다. 내가 만든 서비스를 전 세계 사람들이 쓰고 있다는 사실이 짜릿했으니까.

DB 병목: Supabase와의 사투

사용자가 30만을 넘기면서 DB가 병목이 되기 시작했다. 특히 "변환 이력 저장" 기능 때문에 쓰기가 많아졌는데, Supabase 무료 티어의 성능 한계가 보이기 시작했다.

시도한 해결책들:

비용 구조: 현실적인 이야기

월간 운영 비용 변화 (원) 0~5만 MAU 0원 무료 티어만으로 충분! 5~20만 MAU Vercel Pro: $20 Supabase Pro: $25 Upstash: $10 도메인: $1 ~8만원 20~50만 MAU Vercel: $20 Supabase: $25 Upstash: $30 Cloudflare R2: $5 Sentry: $26 기타: $10 ~15만원 100만+ MAU Vercel: $20 Supabase: $75 Upstash: $50 CF R2+Workers: $15 Sentry: $26 Posthog: $50 BetterStack: $25 Resend: $20 기타: $20 ~45만원 현재 월 수익 (Pro API + 후원): ~180만원 → 순이익 ~135만원

수익화: 무료 서비스로 돈 벌기

처음 6개월은 수익이 0원이었다. 그냥 재미로 운영했다. 하지만 비용이 나가기 시작하면서 수익화를 고민했다.

시도한 수익화 방법과 결과:

방법시도 시기결과현재 상태
Google AdSense2025.02월 8만원 정도, UX 심각하게 저하제거함
Pro API (유료 플랜)2025.04월 120만원. 핵심 수익원!유지 (확대 중)
GitHub Sponsors2025.05월 25만원. 감사한 분들이 계신다유지
Buy Me a Coffee2025.06월 8만원 정도유지
기업 라이선스2025.10월 30만원 (2개 기업)유지 (확대 중)

광고는 넣자마자 사용자 불만이 폭주해서 2주 만에 뺐다. 개발자 도구에 광고는 독이다. 대신 API rate limit을 무료 30회/분, Pro 1,000회/분으로 나누는 프리미엄 모델이 잘 먹혔다. 의외로 기업 고객이 기꺼이 돈을 내준다. "직원들이 매일 쓰는 도구인데 월 $50이면 싸다"라는 반응이었다.

CDN 최적화: 성능의 80%는 캐싱

사이트가 빠른 이유의 80%는 Cloudflare 덕분이다. 내가 적용한 최적화들:

결과적으로 Lighthouse 성능 점수 98점, 전 세계 어디서든 FCP(First Contentful Paint) 0.8초 이내를 달성했다.

혼자서 운영하는 노하우

100만 사용자 서비스를 혼자 운영한다니 미쳤다고 생각할 수 있는데, 핵심은 "자동화"와 "단순함"이다:

일주일에 이 서비스에 쓰는 시간은 평균 5시간 정도다. 대부분 새 기능 개발이고, 운영 자체는 거의 손이 안 간다.

얻은 교훈 7가지

  1. 완벽하지 않아도 출시하라. 첫 버전은 정말 조잡했다. 하지만 출시 안 했으면 아무 일도 안 일어났다.
  2. 사용자 피드백은 금이다. 내가 "이거 좋겠지" 하고 만든 기능보다, 사용자가 직접 요청한 기능이 10배 더 인기 있었다.
  3. 무료 티어를 최대한 활용하라. 2024년 현재 무료 인프라만으로 놀라울 정도로 많은 걸 할 수 있다. 돈부터 쓰지 마라.
  4. 글로벌을 처음부터 고려하라. 영어 UI를 나중에 추가했더니 코드 전체를 i18n 리팩토링해야 했다. 처음부터 했으면 훨씬 쉬웠을 것.
  5. 광고보다 프리미엄이 낫다. 개발자 대상 서비스에서 광고는 신뢰를 깎아먹는다. 가치에 대한 대가를 받는 게 더 건강한 비즈니스 모델이다.
  6. 인프라는 단순하게. AWS나 GCP를 직접 관리할 수도 있었지만, 관리형 서비스를 쓴 덕에 혼자서도 운영할 수 있다.
  7. 재미를 잃지 마라. 사이드 프로젝트의 핵심 동력은 재미다. 돈이 되기 시작하면 의무감이 생기는데, 그러면 번아웃이 온다. 나는 "이번 주에 하기 싫으면 안 해도 된다"는 규칙을 아직도 지키고 있다.

앞으로의 계획

현재 고민하고 있는 것들:

퇴근 후 주말에 만든 작은 도구가 여기까지 올 줄은 정말 몰랐다. 혹시 사이드 프로젝트를 고민하고 있다면, 일단 만들어서 세상에 내놓아 보라. 반응은 항상 예상 밖이다.

← 목록으로 이전 글 ←
Jaeseong
Jaeseong

10년차 풀스택 개발자. Spring Boot, Flutter, AI 등 실무 경험을 기록합니다.

GitHub →

💬 댓글