TinyPilot: 6개월 차
한 줄 요약
뜻하지 않게 역대 최고 매출을 올렸습니다.
주요 내용
- TinyPilot이 또 한 번 역대 최고 기록을 세우며 매출 1만 5,000달러를 올렸습니다.
- 처음 만든 동영상 강좌의 예약 판매로 1,100달러를 벌었습니다.
- 판매 속도를 늦추려던 시도가 오히려 정반대의 결과를 낳았습니다.
목표 달성도
저는 매달 초에 그달에 이루고 싶은 일을 정합니다. 이번에는 목표를 얼마나 달성했는지 살펴보겠습니다.
TinyPilot Pro 첫 버전 출시
- 결과: TinyPilot Pro 베타 버전 출시
- 평가: B
TinyPilot Pro를 출시하면서 가장 어려운 부분은 유료 고객을 위한 별도의 배포 채널을 만드는 일일 거라고 생각했습니다. Pro의 첫 버전에 필요한 기능은 쉬워 보였지만, 실제로는 예상보다 훨씬 어려웠습니다.
TinyPilot Pro의 정식 버전을 출시할 수도 있었지만, 출시 며칠 전에 저를 제외하고는 아무도 베타 테스트를 하지 않았다는 사실을 깨달았습니다. 몇몇 사용자에게 연락해 사전 이용을 원하는지 물어봤지만, 연휴 기간이라 별다른 진전이 없었습니다. 그래서 대신 제품을 “베타”로 출시하고 50% 할인해 판매했습니다.
관련 독자층을 보유한 블로거나 YouTuber 두 명에게 TinyPilot 리뷰 받기
- 결과: 두 명의 YouTuber가 TinyPilot 리뷰에 동의했지만 아직 게시하지 않았습니다.
- 평가: D
TinyPilot Pro 때문에 이 목표의 계획이 꼬였습니다. TinyPilot 리뷰에 관심을 보인 대형 YouTube 채널과 이야기를 나누고 있었습니다. 그런데 그쪽에서 이메일이 왔습니다. “잠깐, 웹사이트에 곧 출시한다고 적혀 있는 TinyPilot Pro는 뭐죠?”
일주일 뒤면 낡은 내용이 될 리뷰를 녹화하고 싶지는 않다고 했습니다. 그래서 이제 TinyPilot Pro가 제 로드맵의 다음 기능인 원격 드라이브 마운트를 지원하게 되면 리뷰를 진행할 예정입니다.
또 다른 YouTuber도 리뷰에 동의했지만, 무료 기기를 보낸 뒤로는 연락이 없었습니다. 그저 밀린 일이 많아서 그런 것이기를 바랍니다.
Hacker News 강좌 7개 파트 중 5개 녹화
- 결과: 5개 파트를 녹화해 예약 구매 고객에게 공개했습니다.
- 평가: A
아슬아슬하게 목표를 달성했습니다. 마지막 동영상을 보낸 시각이 새해 전날 오후 5시였지만, 어쨌든 해냈습니다! 이제 예약 구매 고객은 첫 5개 동영상을 먼저 볼 수 있습니다.
통계
TinyPilot
| 지표 | 2020년 11월 | 2020년 12월 | 변화 |
|---|---|---|---|
| 순 방문자 수 | 3,118 | 3,486 | +368 (+12%) |
| 총 페이지 조회 수 | 9,021 | 5,785 | -3,236 (-36%) |
| 판매 매출 | $12,313.25 | $15,358.31 | +$3,045.06 (+25%) |
| 기부금 | $0.00 | $9.00 | +$9.00 (+무한대%) |
| 총매출 | $12,313.25 | $15,367.05 | +$3,053.80 (+25%) |
TinyPilot은 매출이 25% 증가하며 또 한 번 좋은 성과를 냈습니다. 2020년의 목표가 1년 동안 2만 달러의 매출을 올리는 것이었다는 사실을 생각하면 정말 놀랍습니다. 이제는 거의 매달 그 정도를 벌고 있으니까요.
이렇게 성장했는데도 여전히 TinyPilot을 제대로 운영하지 못하고 허둥대는 기분입니다. 12월에는 YouTuber에게 리뷰를 부탁했다가 실패한 것 말고는 마케팅을 전혀 하지 않았습니다. 여유가 너무 없어서 개발 작업도 느려졌습니다. 이제 매출이 충분히 좋아져서 파트타임 개발자를 고용할 여력이 있다고 판단했고, 이미 채용 절차를 시작했습니다.
Hacker News 첫 화면에 오르기
| 지표 | 2020년 12월 |
|---|---|
| 총 페이지 조회 수 | 2,243 |
| 주문 수 | 30 |
| 총매출 | $1,181.40 |
12월은 블로그 강좌 Hit the Front Page of Hacker News의 예약 판매를 시작한 첫 달이었습니다.
판매 첫날 예약 구매가 고작 두 건, 총 160달러에 그쳐서 잠깐 패닉에 빠졌습니다. 전망이 좋지 않았습니다. 다행히 적지만 꾸준히 고객이 유입됐고, 12월 판매액이 1,000달러를 넘었습니다.
새로운 고객에게 다가가는 가장 좋은 방법 중 하나는 Twitter에 비하인드 스토리 형식의 진행 상황을 공유하는 것이었는데, 일이 너무 몰려 업데이트를 올릴 시간을 내기 어려웠습니다.
뜻하지 않게 역대 최고 매출을 올리다
TinyPilot을 시작한 첫 몇 달 동안은 재고를 감당하지 못해 어려움을 겪었고, 제품을 전부 품절 후 주문으로 표시해 판매를 포기해야 하는 경우도 자주 있었습니다. 다행히 두 달 동안은 품절 후 주문 상태를 피했지만, 12월에 그 기록이 끊겼습니다.
고급형 TinyPilot인 Voyager를 더 만들려면 HDMI 캡처 칩이 필요했는데, 칩 배송이 지연되고 있었습니다.

TinyPilot Voyager를 더 만들려면 중국에서 배송 중이던 HDMI 캡처 칩을 받아야 했습니다.
월요일이었고, 칩은 그 주 토요일에 도착할 예정이었습니다. Voyager 재고는 6대 남아 있었습니다. 보통 하루나 이틀에 한 대씩 팔리기 때문에 간신히 버틸 수 있을 것 같았습니다. 그런데 그날 고객 두 명이 구매했습니다.
재고가 4대 남았습니다. 그래도 아직 어떻게든 될 수 있겠다고 생각했습니다.
화요일에는 고객 두 명이 Voyager를 더 구매했습니다. 마진이 가장 높은 제품이 팔려서 이렇게 답답했던 적은 없었습니다.
재고가 Voyager 두 대만 남자 판매 속도를 늦춰 보려고 했습니다. Voyager 가격을 249달러에서 299달러로 올렸습니다. 그런데 두 시간 뒤, 고객 한 명에게서 7대를 구매하고 싶다는 이메일이 왔습니다!
재고 상황을 설명했더니, 우선 2대를 바로 배송하고 나머지 5대는 며칠 기다려도 괜찮다고 했습니다. 다행히 다음 주에 칩이 도착했고, 고객은 7대를 모두 제때 받았습니다. 한 고객에게서 2,093달러의 매출이 발생한 셈이고, 그날 전체 매출은 TinyPilot 역사상 최고인 3,298달러까지 올라갔습니다.

Voyager 가격을 50달러 올린 뒤 하루 매출로 역대 최고인 3,298달러를 기록했습니다.
신뢰에 기반해 소프트웨어 라이선스 관리하기
TinyPilot Pro 작업은 몇 달째 미뤄 두고 있었습니다. 주된 이유는 과정의 첫 단계가 너무 지루했기 때문입니다. 바로 배포였습니다.
TinyPilot 무료 버전은 소프트웨어가 전부 오픈 소스라서 배포하기 쉽습니다. 고객과 비고객 모두에게 똑같이 작동하는 설치 스크립트를 공개하면 됩니다.
TinyPilot Pro는 더 복잡할 수밖에 없습니다. 소스 코드를 공개하면 고객이 “온라인에서 무료로 구할 수 있는데 왜 돈을 내야 하지?”라고 생각할 수도 있습니다. 유료 고객만 접근할 수 있도록 제한할 방법이 필요했습니다.
라이선스 시스템을 설계하기 시작했습니다. 별로 어려워 보이지 않았습니다. 고객 기기 ID를 바탕으로 해시 같은 것을 생성하고, 서버에서 일치하는지 확인하면 됩니다. 아, 그런데 라이선스 만료는 어떻게 하지? 그렇다면 만료일이 포함된 라이선스 데이터베이스를 유지해야겠군. 그런데 그 데이터베이스를 잃어버리면 어떡하지? 음...

TinyPilot용 라이선스 키 서버 설계를 60%쯤 진행한 뒤, 문제를 지나치게 복잡하게 만들고 있다는 결론을 내렸습니다.
과도한 설계처럼 느껴졌습니다. 디지털 라이선스를 제공하는 Shopify 플러그인도 찾아봤지만, 모두 품질이 낮아 보였고 필요한 기능도 제공하지 않았습니다. 그런 솔루션을 연동하는 데 시간이 직접 만드는 것보다 더 오래 걸릴 것 같았습니다.
그러다 문득 이런 생각이 들었습니다. 라이선스 검증을 아예 생략하면 어떨까?
친구인 Cory Zue가 Django 스타터 템플릿인 Pegasus를 판매하면서 겪은 일이 떠올랐습니다. 고객은 Pegasus로 웹사이트 하나를 만들 수 있지만, Cory에게는 그 제한을 강제할 방법이 없습니다. 고객이 Pegasus 소스 코드를 다운로드하고 나면 수백 개의 사이트에서 재사용하는 데 필요한 모든 것을 갖게 됩니다.
Pegasus를 판매한 지 몇 달이 지나자 Cory는 고객들이 새 사이트를 만들 때 Pegasus를 다시 구매하는 모습을 보고 안도했습니다. 기술적으로 보면 고객은 전에 구매했던 것과 같은 코드를 다시 결제하는 셈이었습니다. 하지만 고객들은 Pegasus 라이선스를 정직하게 지키면서 Cory에게 제품에 대한 대가를 지불하고 있었습니다.
Cory는 더 나은 방법을 제공할 수 있다는 사실을 깨달았습니다. 바로 무제한 라이선스였습니다. 부정직한 고객이라면 단일 사이트 가격만 내고 코드를 재사용해 Cory를 속일 수 있는데도, 고객들은 무제한 옵션을 정기적으로 구매했습니다.

고객들은 단일 사이트 옵션을 재사용해 속일 수도 있지만 Cory에게서 무제한 라이선스를 구매합니다.
Cory에게 신뢰에 기반한 방식이 충분히 잘 작동했다면, 나에게도 아마 잘 맞을 것 같았습니다. 라이선스 서버 계획은 접어 두고 TinyPilot Pro를 검색으로는 찾기 어려운 URL에만 올려 두었습니다.
부정직한 고객은 하나의 라이선스를 여러 기기에서 재사용하거나 URL을 비결제 사용자와 공유할 수 있습니다. 하지만 두 경우 모두 위험과 영향이 크지 않습니다. TinyPilot Pro 판매를 시작한 지 일주일도 되지 않았는데, 이미 고객 한 명이 별도의 라이선스 4개를 구매했습니다.
마감일을 너무 많이 정했다
12월에는 확실히 너무 많은 일을 떠안았습니다.
저는 보통 특정 마감일까지 제품을 내겠다고 고객에게 약속하는 일을 피합니다. TinyPilot은 아직 너무 초기 단계이고, 상황이 빠르게 바뀌기 때문입니다. 하지만 동시에 지난 6개월 동안 TinyPilot Pro를 “곧” 출시하겠다고 약속해 놓고 아무런 진전도 이루지 못한 것이 점점 부끄러워졌습니다. 결국 연말까지 첫 버전을 출시하겠다고 고객들에게 말하기 시작했습니다.

새로운 프리미엄 기능을 빨리 사용하고 싶어 하는 고객을 위해 TinyPilot Pro를 베타 버전으로 출시했습니다.
동시에 처음으로 동영상 강좌를 만들기 시작했습니다. 작성하고, 녹화하고, 편집하고, 게시하는 데 약 40시간이 걸릴 것으로 예상했습니다. 새 블로그 글 하나를 쓰는 데 걸리는 시간과 비슷했기 때문에, 다음 블로그 글을 쓰는 대신 강좌를 만들면 된다고 생각했습니다. 두 시간 분량의 동영상을 만드는 일정으로는 무척 여유 있어 보이는 1월 13일을 출시일로 정했습니다.

제 블로그 강좌 Hit the Front Page of Hacker News의 한 장면
강좌를 완성하는 데 필요한 작업량을 터무니없이 과소평가했습니다. 이 강좌를 만드는 데 아마 150~200시간이 걸릴 것 같고, 그 때문에 TinyPilot에 쓸 시간이 엄청나게 줄어들었습니다.
게다가 저는 매년 회고 글을 2월 1일에 게시하는 전통이 있습니다. 제가 Google을 그만두고 스스로를 위해 일하기 시작한 날의 기념일이기도 합니다. 이 글은 늘 큰 반응을 끌어내기 때문에 전통을 계속 이어 가고 싶습니다. 하지만 그러려면 2월 1일까지 블로그 글을 완성해야 합니다.
결국 한 달 동안 무리한 마감일 네 개를 정해 놓고도 그 사실을 깨닫지 못했습니다. 앞으로는 공개적으로 마감일을 정할 때 훨씬 보수적으로 접근할 생각입니다.
기존 프로젝트
계속 관리하고는 있지만 개발의 주된 초점은 아닌 프로젝트들의 간단한 현황입니다.
Is It Keto
| 지표 | 2020년 11월 | 2020년 12월 | 변화 |
|---|---|---|---|
| 순 방문자 수 | 43,911 | 49,373 | +5,462 (+12%) |
| 총 페이지 조회 수 | 102,143 | 93,242 | -8,901 (-9%) |
| 도메인 평점(Ahrefs) | 10.0 | 10.0 | 0 |
| AdSense 수익 | $357.51 | $334.72 | -$22.79 (-6%) |
| Amazon 제휴 수익 | $74.01 | $149.99 | +$75.98 (+103%) |
| 총매출 | $431.52 | $484.71 | +$53.19 (+12%) |
새해 초에는 사람들이 더 건강한 식단을 찾기 시작하는 경우가 많기 때문에 1월에는 크게 증가할 것으로 예상합니다. 다가오는 성수기에 수익을 최대화할 수 있도록 Amazon 제휴 링크를 업데이트하는 데 한 시간을 썼습니다. 그 외에는 Is It Keto가 백그라운드에서 계속 자동으로 운영되고 있습니다.
Zestful
| 지표 | 2020년 11월 | 2020년 12월 | 변화 |
|---|---|---|---|
| 순 방문자 수 | 484 | 507 | +23 (+5%) |
| 총 페이지 조회 수 | 1,393 | 1,511 | +118 (+8%) |
| RapidAPI 수익 | $28.37 | $103.33 | +$74.96 (+264%) |
| 엔터프라이즈 플랜 수익 | $872.63 | $0.00 | -$872.63 (-100%) |
| 총매출 | $901.00 | $103.33 | -$797.67 (-89%) |
Zestful도 조용합니다. 엔터프라이즈 고객은 한 달 플랜을 마쳤고, 예상대로 갱신할 필요가 없었습니다. RapidAPI 수익은 증가했지만, 그중 95%는 Zestful을 일회성 대량 파싱에 사용한 것으로 보이는 한 명의 사용자에게서 나왔습니다.
마무리
무엇을 해냈나?
- TinyPilot Pro 베타 공개
- Hit the Front Page of Hacker News의 5개 섹션 완성
- 이 블로그의 제휴 링크를 모두 삭제
- 블로그 글 두 편이 Hacker News 첫 화면에 오름
배운 점
- 마감일을 더 적게 정하기
- 한 달 동안 무리한 마감일 네 개를 정하는 일은 절대 하지 않기
- 사이드 프로젝트를 판매할 때는 사전 판매 대신 대기자 명단을 받기
- 제품을 사전 판매하면 고객이 실제로 구매할 의향이 있는지 일찍 알 수 있다는 장점이 있습니다.
- 사전 판매의 단점은 특정 날짜까지 특정 주제를 제공하겠다고 약속하고 이미 판매까지 마친 상태라서, 범위를 바꾸거나 출시일을 미루기가 불편하다는 점입니다.
- 앞으로 전자책이나 강좌를 판매한다면 사전 판매 대신 대기자 명단을 만들겠습니다.
- Adam Wathan이 이 유익한 MicroConf 강연에서 사전 판매와 대기자 명단의 차이에 대해 더 자세히 이야기합니다.
- 그런데 지금 이 내용을 글로 적고 보니, 제가 광고한 강좌 개요를 엄격하게 그대로 지켜야 한다는 압박을 불필요하게 스스로 만들고 있는 것 같습니다. 제가 개요와 정확히 일치하는 강좌를 만드는지에 대해 사람들이 그렇게까지 신경 쓸 것 같지는 않습니다. 만약 신경 쓴다면, 번거롭지 않게 환불해 드리면 됩니다.
다음 달 목표
- TinyPilot 개발을 도와줄 프리랜서 개발자 고용
- 관련 독자층을 보유한 블로거나 YouTuber 두 명에게 TinyPilot 리뷰 받기
- Hit the Front Page of Hacker News에서 4,000달러의 매출 올리기
글을 무작위로 읽기