TinyPilot: 6개월 차
원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기
한 줄 요약
우연히 역대 최고 매출을 기록했다.
하이라이트
- TinyPilot이 1만 5천 달러 매출로 또 한 번 역대 최고 실적을 경신했다.
- 첫 영상 강좌 사전 판매로 1,100달러를 벌었다.
- 판매를 늦추려던 시도가 오히려 반대 결과를 낳았다.
목표 평가
매달 초에 이루고 싶은 목표를 정한다. 이번 달 목표 대비 성과는 다음과 같다.
TinyPilot Pro 첫 버전 출시
- 결과: TinyPilot Pro 베타 버전 출시
- 평점: B
TinyPilot Pro를 출시하면서 가장 어려운 부분은 유료 고객을 위한 별도의 배포 채널을 만드는 일일 거라고 생각했다. Pro의 v1 기능들은 쉬워 보였지만, 막상 해보니 예상보다 훨씬 어려웠다.
정식 버전을 출시하려 했지만, 출시 며칠 전에 나 말고는 아무도 베타 테스트를 하지 않았다는 사실을 깨달았다. 몇몇 사용자에게 얼리 액세스를 원하는지 문의했지만 연휴 기간이라 별다른 진전이 없었다. 그래서 대신 ‘베타’로 공개하고 50% 할인된 가격에 제공했다.
관련 분야의 블로거나 유튜버 두 명으로부터 TinyPilot 리뷰 받기
- 결과: 유튜버 두 명이 리뷰에 동의했지만 아직 게시하지 않았다.
- 평점: D
TinyPilot Pro 때문에 이 계획이 꼬였다. TinyPilot 리뷰에 관심 있는 대형 유튜브 채널과 계속 연락을 주고받고 있었는데, 갑자기 이런 메일이 왔다. “웹사이트에 곧 출시된다고 되어 있는 TinyPilot Pro가 뭔가요?”
그들은 일주일 뒤면 내용이 낡아버릴 리뷰를 찍고 싶어 하지 않았다. 그래서 이제 로드맵의 다음 기능인 원격 드라이브 마운팅을 TinyPilot Pro가 지원하게 되면 리뷰를 진행하기로 했다.
다른 유튜버 한 명은 리뷰에 동의했지만 무료 기기를 보내준 뒤로는 연락이 없어, 아마 일정이 밀려 있는 것 같다.
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 (+inf%) |
| 총 매출 | $12,313.25 | $15,367.05 | +$3,053.80 (+25%) |
TinyPilot은 이번 달에도 매출이 25% 증가하며 견조한 성장을 이어갔다. 2020년 목표가 한 해 동안 2만 달러 매출이었던 걸 생각하면 믿기지 않는다. 이제는 거의 매달 그 정도 매출을 올리고 있다.
성장에도 불구하고 여전히 TinyPilot을 어설프게 운영하고 있다는 느낌이 든다. 12월에는 유튜버에게 리뷰를 받으려다 실패한 시도 외에는 마케팅을 전혀 하지 않았다. 여유가 없어 개발 작업마저 느려졌다. 매출이 충분히 안정적이어서 파트타임 개발자를 채용할 여유가 있다고 판단했고, 이미 채용을 알아보기 시작했다.
Hit the Front Page of Hacker News
| 지표 | 2020년 12월 |
|---|---|
| 총 페이지뷰 | 2,243 |
| 주문 수 | 30 |
| 총 매출 | $1,181.40 |
12월은 블로깅 강좌인 Hit the Front Page of Hacker News의 사전 판매를 시작한 첫 달이었다.
판매 첫날 사전 주문이 단 두 건, 총 160달러에 그쳐 살짝 패닉에 빠졌다. 전망이 좋지 않아 보였다. 다행히 이후 꾸준히 주문이 들어오며 12월에 1천 달러를 넘겼다.
신규 고객에게 다가가는 가장 효과적인 방법 중 하나는 트위터에 비하인드를 공유하는 것이라고 생각하는데, 너무 바빠서 업데이트를 올릴 시간을 내기 어려웠다.
우연히 역대 최고 매출을 만들다
TinyPilot 초기 몇 달 동안 재고를 따라가기 벅차 종종 모든 제품을 백오더 상태로 전환해 판매 기회를 포기해야 했다. 다행히 두 달 동안은 백오더를 피했지만, 그 연속 기록은 12월에 끊겼다.
HDMI 캡처 칩 선적이 지연됐는데, 그 칩은 고급형 TinyPilot인 Voyager를 더 만드는 데 필요한 부품이었다.

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에게 충분히 잘 작동했다면, 나에게도 아마 충분히 잘 작동할 것이다. 라이선스 서버 계획은 접어두고 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일에 맞춰 매년 연간 회고를 발행하는 전통이 있다. 그 전통을 이어가고 싶다. 항상 반응이 크기 때문이다. 하지만 그러려면 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 개발을 도울 프리랜서 개발자를 채용한다.
- 관련 분야의 블로거나 유튜버 두 명으로부터 TinyPilot 리뷰를 받는다.
- Hit the Front Page of Hacker News로 4천 달러 매출을 올린다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기