TinyPilot: Month 8

Michael Lynch

TinyPilot: 8개월 차

한 줄 요약

성장은 언젠가 멈출 수밖에 없었다.

주요 내용

  • TinyPilot의 매출이 6개월 만에 처음으로 감소했다.
  • TinyPilot은 3만 3,000달러의 매출로 한 달을 마감했으며, 1월보다 21% 감소한 수치다.
  • TinyPilot에 꼭 필요한 부품 중 하나가 갑자기 판매처에서 사라졌다.
  • 다른 사람에게 업무를 위임했더니 역설적으로 내 자유 시간이 줄어들고 있다.

목표 달성도

매달 초에 그달에 이루고 싶은 일을 정한다. 그 목표를 얼마나 달성했는지 돌아보면 다음과 같다.

블로거 또는 YouTuber 5명을 TinyPilot 제휴 프로그램에 참여시키기

  • 결과: 제휴 프로그램을 시작하지도 못했다
  • 평가: D

이건 쉬울 거라고 생각했다. 결제 백엔드로 Shopify를 사용하고 있고, 제휴 프로그램을 만들 수 있는 Shopify 앱도 아주 많다. 그런데 제휴 프로그램을 만들어 보다가 모든 선택지가 제휴 앱에 고객의 개인정보를 전부 넘겨야 한다는 사실을 알게 됐다.

그래서 직접 만들고 있다. 겉보기만큼 간단하기를 바라고 있다. 제휴 파트너에게 tinpilotkvm.com/?ref=some-affiliate 같은 링크를 사용하게 하고, 거래가 발생하면 제휴 ID를 기록하면 된다. 월말에 모든 사람에게 수동으로 지급하면 된다. 확장성은 없지만 제휴 파트너가 10명 정도라면 충분할 것이다.

지원 또는 제조 비용을 줄이는 기능 2개를 TinyPilot에 추가하기

  • 결과: 앱에 3개, 웹사이트에 2개의 기능을 추가해 지원 비용을 줄였다
  • 평가: B

TinyPilot에 새 편의 기능 3개를 추가했지만, 아직 이 기능들이 포함된 공식 릴리스는 내지 않았다.

  • 웹 UI에서 TinyPilot 업데이트
  • 웹 UI에서 호스트 이름 변경
  • 웹 UI에서 디버그 로그 확인

또한 지원 포럼자주 묻는 질문 페이지도 만들었다. 둘 다 훨씬 전에 만들었어야 했다. 이제 사용자는 나에게 개인 이메일 지원을 요청하지 않고도 스스로 질문에 대한 답을 찾을 수 있다.

TinyPilot 랙 마운트 버전에 대한 고객 10명의 의견 수집하기

  • 결과: 고객 0명에게서 의견을 수집했다
  • 평가: D

랙 마운트형 TinyPilot의 설계도를 그리는 데 예상보다 오래 걸렸다. 고객에게 보여 주고 의견을 받을 수 있는 미리보기 문서를 완성하기까지 며칠 남지 않았다.

TinyPilot 통계

지표2021년 1월2021년 2월변화
순 방문자 수11,2497,824-3,425 (-30%)
총 페이지 조회 수17,73712,909-4,828 (-27%)
판매 매출$41,992.92$33,061.41-$8,931.51 (-21%)
기부금$0.00$50.00+$50.00 (+inf%)
총수입$41,992.92$33,109.96-$8,882.96 (-21%)

2월은 2020년 8월 이후 TinyPilot의 첫 하락세를 기록한 달이었다. 물론 매출 3만 3,000달러가 결코 적은 금액은 아니지만, 1월에 기록한 4만 달러 매출을 유지하고 싶었다.

재고 부족이 원인 중 하나였다. 월 중순에 신규 광고와 프로모션을 중단했지만, 상반기에 진행한 마케팅이 기대만큼 효과적이지 않았다.

자재 부족에 대응하기

1월 내내 판매처에서 중국 춘절 때문에 2월에는 공급이 느려질 거라는 이야기를 계속 들었다. 경고를 받아들여 중국에서 들여오는 부품은 3월 중순까지 사용할 수 있을 만큼 구매해 두었다. 그래도 모두가 과장한다고 생각했다. 나라 전체가 한 달 동안 멈출 수는 없지 않은가? 일이 멈추는 기간이 일주일 정도 있을 수는 있지만, 곧 평소처럼 영업을 재개할 거라고 생각했다.

2월 4일, 평소 이용하던 공급업체에 프리미엄 TinyPilot인 Voyager에 사용하는 HDMI 캡처 칩을 주문했다. 주문이 전혀 진행되지 않길래, 내가 너무 늦게 주문했고 월말에 업무가 재개되면 받을 수 있을 거라고 생각했다. 문제없었다. 이 상황은 이미 예상하고 있었다.

2주 후, 다음과 같은 메시지를 받았다.

안녕하세요 이 제품은 현재 품절입니다 3월에 도착할 예정입니다 기다려 주시겠어요?

HDMI 칩 판매처에서 온 나쁜 소식

처음에는 별일 아닌 것 같았다. 다른 판매처에서 주문하면 됐다.

그런데 대체 판매처에서도 품절이라고 했다. 큰일이었다.

다른 공급업체를 몇 군데 찾았지만, 한 번도 거래해 본 적 없는 해외 판매처에 거액을 주문하기가 불안했다. 판매처가 나를 완전히 속인 적은 없지만, 주문을 몇 달 동안 묵혀 두었다가 배송하는 곳은 여러 번 경험했다.

위험을 분산하기 위해 eBay와 AliExpress의 여러 판매처에 주문을 나눠 넣었다. 문제는 이 판매자들 대부분이 사실 같은 회사인 것 같다는 점이다. eBay 판매자 한 명은 대놓고 그렇게 말했다.

안녕하세요 친구, 이 주문이 맞는지 확인해도 될까요? 저희가 보니 다른 동료의 매장에서도 주문하셨더군요. 주문하신 다른 두 매장도 저희 회사입니다

여러 판매처에 주문해 위험을 분산하려 했지만, 모두 다른 이름으로 운영되는 같은 판매처였다.

주문할 때마다 다음 두 가지 상황 중 하나가 반복해서 발생했다.

나쁜 상황

  1. 주문한다
  2. 판매처에서 재고가 없다며 기다릴지 환불받을지 묻는다
  3. 환불을 요청한다
  4. 돈은 돌려받지만 칩은 여전히 없다

더 나쁜 상황

  1. 주문한다
  2. 판매처가 주문에 가짜 운송장 번호를 추가한다
  3. DHL에서 배송 조회가 되지 않는 이유를 판매처에 묻고, 곧 도착할 거라는 답을 듣는다
  4. 이틀마다 3단계를 반복한다
  5. 돈도 칩도 없는 상태가 된다

같은 칩의 다른 변형 제품으로 바꿔 보기도 했지만, 그 상품 목록에서도 똑같이 질질 끄는 답변만 돌아왔다. 아직 칩이 완전히 떨어지지는 않았지만, 앞으로 2주 안에 재고를 모두 소진할 전망이다. 그동안 판매 속도를 늦추기 위해 Voyager 가격을 10% 올렸다.

YouTube에서의 성공이 반복되지는 않을 수도 있다

TinyPilot의 첫 YouTube 리뷰 이후, 사업은 역대 가장 큰 판매 급증을 경험했다. 당연히 나는 이렇게 생각했다. “와! TinyPilot을 리뷰할 YouTuber를 더 찾아야겠다.”

첫 YouTube 리뷰로 판매량이 엄청나게 급증했다

리뷰를 받기 위해 YouTuber 두 명과 더 협업했지만, 결과는 훨씬 덜 극적이었다. 후속 리뷰도 긍정적이었지만 판매량에 측정 가능한 영향을 주지는 못했다.

두 번째세 번째 YouTube 리뷰는 판매량에 측정 가능한 영향을 주지 못했다

그래도 YouTube에는 여전히 큰 가능성이 있다고 본다. 서버 유지 관리를 가르치는 YouTuber가 아주 많다. 이들이 저수준 관리 작업을 시연할 때 TinyPilot을 사용하도록 설득할 수 있다면 TinyPilot 브랜드에 엄청난 가치가 될 것이다.

집중해서 일할 시간 찾기

지난 몇 달 동안 시간이 극도로 부족하다고 느꼈다. 할 일 목록에는 일이 산더미처럼 쌓여 있고, 나는 종종 중요한 일보다 급한 일부터 처리한다. 대부분의 시간을 이메일에 답장하는 데 쓰면서, 장기 목표에 도움이 되는 집중 업무보다 단기적인 일에 매달리고 있다는 생각이 든다.

한편으로는 내가 시간 관리를 최적으로 하고 있는지도 모른다. 나는 업무를 더 많이 위임하는 데 집중하고 있지만, 새 사람을 채용하면 단기적으로는 집중 업무를 할 시간이 줄어든다. 사람들과 소통하고 새로 채용한 사람들이 업무에 익숙해지도록 돕는 데 더 많은 시간을 쓰고 있다.

고객 지원 업무를 위임하지는 않았다. TinyPilot의 매력 중 상당 부분은 고객이 나를 이 사업에 개인적으로 책임을 지는 사람으로 인식한다는 데 있다고 생각하기 때문이다. 기업용 KVM 공급업체라면 엔지니어는커녕 CEO와 직접 연락하는 일도 절대 없을 것이다.

그렇다고 고객 이메일에 답장하는 데 시간을 전부 쓸 정도로 지나치게 접근하기 쉬운 사람이 되고 싶지는 않다. 계속 쉽게 연락할 수 있는 상태를 유지하면서도, 고객이 나에게 이메일을 보내는 것보다 더 쉽게 문제를 해결할 방법을 찾고 있다.

고객 지원 업무량을 줄이기 위한 계획은 다음과 같다.

  • 지원 문서의 표현을 조정해, 사용자가 내 개인 이메일로 요청하는 것보다 지원 포럼 게시물을 우선 처리한다는 점을 알린다.
  • 반복적으로 들어오는 지원 질문에 대한 FAQ 문서를 추가한다.
  • 버그 수정과 사용성 기능 개발에 더 많은 개발 시간을 배정한다.

기존 프로젝트

아직 유지 관리하고 있지만 개발의 주요 초점은 아닌 프로젝트를 간단히 업데이트하면 다음과 같다.

Is It Keto

지표2021년 1월2021년 2월변화
순 방문자 수80,17760,437-19,740 (-25%)
총 페이지 조회 수182,367135,865-46,502 (-25%)
도메인 평점(Ahrefs)11.011.00
AdSense 수익$677.36$584.18-$93.18 (-14%)
Amazon 제휴 수익$238.02$202.78-$35.24 (-15%)
총수입$915.38$786.96-$128.42 (-14%)

Is It Keto는 아직도 새해 결심으로 다이어트를 하는 방문자 덕분에 방문자 수가 증가한 효과를 누리고 있다. 1월에서 2월로 넘어가며 감소한 폭은 2020년에 일어난 감소와 거의 똑같다.

사이트는 내가 손대지 않아도 계속 백그라운드에서 운영되고 있다. 지난달에 적당한 가치 평가액으로 사이트를 인수하겠다는 제안을 받았지만, 매각을 완료하는 데 필요한 시간이 TinyPilot에 너무 큰 지장을 줄 것 같았다.

Hit the Front Page of Hacker News

지표2021년 1월2021년 2월변화
순 방문자 수1,042483-559 (-54%)
총수입$2,565.22$359.95-$2,205.27 (-86%)

안타깝게도 강좌 홍보를 중단했다. 1월에 여러 마케팅 전략을 시도했지만 어느 것도 판매에 영향을 준 것 같지 않아서 더 이상 시도하지 않기로 했다. 강좌에 그렇게 많은 시간을 쏟았는데 성과가 너무 빨리 사라진 것 같아 허탈하다.

Zestful

지표2021년 1월2021년 2월변화
순 방문자 수419434+15 (+4%)
총 페이지 조회 수1,1941,236+42 (+4%)
RapidAPI 수익$155.50$32.52-$122.98 (-79%)
총수입$155.50$32.52-$122.98 (-79%)

Zestful도 백그라운드에서 꾸준히 돌아가고 있다. 기업용 요금제에 대한 인바운드 문의가 예상치 못하게 급증했지만, 지금까지 실제 성과로 이어진 것은 없다.

흥미로운 발견

Litestream

데이터베이스 백업을 책임지는 일이 싫어서 늘 Google Cloud Datastore나 Google Firestore 같은 관리형 데이터베이스를 사용하게 된다. 하지만 Google이 점점 더 자기 플랫폼을 기반으로 개발한 것을 후회하게 만들고 있어서 대안을 찾아왔다.

Litestream은 내가 기다려 오던 해법처럼 보인다. SQLite 데이터베이스를 S3 호환 인터페이스 어디로든 복제하는 경량 서비스다. 즉, 아무런 예고 없이 서버를 완전히 날려 버려도 모든 데이터는 S3 버킷에 안전하게 남아 있다. 서버를 다시 시작하면 수동으로 복구 작업을 하지 않아도 S3에서 데이터베이스를 문제없이 내려받아 작업을 재개한다.

Litestream을 시험해 보기 위해 TinyPilot에 필요했던 작은 로그 붙여넣기 서비스를 만들었다. 어떤 Docker 호스팅 서비스(Heroku, Lightsail, DigitalOcean)에서든 실행할 수 있고, Heroku와 Amazon S3 모두의 무료 요금제 범위 안에서 운영할 수 있다. 언제든 Docker 컨테이너를 없애고 다른 곳에서 실행할 수 있으며, 같은 데이터를 그대로 가진 채 자동으로 복제를 계속한다.

Plaintext accounting

지난 2년 동안 마지못해 Xero로 장부를 정리해 왔다. 이 소프트웨어가 마음에 들지는 않지만, 내가 찾을 수 있는 장부 관리 솔루션 중에서는 가장 나았다.

최근에 plaintext accounting이라는 것을 알게 됐다. 명령줄 도구와 일반 텍스트 파일의 복식부기를 사용해 재정을 기록하는 개발자 지향적인 방식이다. Xero와 비교하면 plaintext accounting이 훨씬 직관적으로 느껴지고, 내가 제대로 처리하고 있다는 확신도 더 든다.

도구들은 모두 배우기까지 상당한 시간이 걸리지만, 지금까지 가장 마음에 드는 것은 Beancount다. 이 분야에서 가장 성숙한 도구 중 하나이고 Python 기반이라는 점이 마음에 든다.

마무리

무엇을 해냈나?

  • TinyPilot을 위해 프리랜서 개발자 3명을 고용했다
    • 2명은 제품 개발에 주 10~15시간, 1명은 웹사이트에 주 3~5시간씩 일한다
  • TinyPilot 지원 포럼과 FAQ를 만들었다
  • TinyPilot 다음 릴리스의 기능 개발을 완료했다
  • “1인 개발자로 보낸 세 번째 해,”를 발행했다. 이 글은 /r/programming에서 1위를 차지했고, Hacker News에서는 7위까지 올랐다
  • 팟캐스트 2곳에 게스트로 출연했다

배운 점

  • 흔한 부품도 하룻밤 사이에 사라질 수 있다
    • 특정 종류의 HDMI 캡처 칩 하나에 의존하면서 내가 감수하는 위험을 알고 있었다.
    • 그 칩을 판매하는 업체가 수십 곳이나 있었고, 그중 많은 업체가 언제든 재고 1,000개 이상을 보유하고 있다고 표시했기 때문에 위험이 낮다고 생각했다.
    • 최악의 경우에도 같은 칩셋을 사용하는 대체 보드로 바꿀 수 있다고 생각했다. 그런 보드도 여러 개 있었다.
    • 부족 사태가 발생하자 두 가지 가정이 모두 깨졌다. 모든 판매처가 모든 보드 변형 제품의 재고를 동시에 소진했고, 판매처들이 겉보기만큼 서로 독립적이지 않다는 사실이 드러났다.
  • 중국 춘절에 더 철저히 대비하기
    • 일주일 정도 답변이 느려질 거라고 예상했지만, 대부분의 판매처가 2월 대부분의 기간 동안 문을 닫았다.
    • 앞으로는 중국 판매처가 2월 초부터 3월 말까지 완전히 연락 두절되고 새 부품도 배송할 수 없다고 가정하고 계획을 세울 것이다.

다음 달 목표

  • 현지 파트타임 직원 2명을 고용해 주문 처리 업무를 넘기기 시작한다
    • TinyPilot의 현재 주문 처리 관리자는 6월에 대학원으로 돌아간다.
  • 블로거 또는 YouTuber 5명을 TinyPilot 제휴 프로그램에 참여시킨다.
  • TinyPilot의 랙 마운트 버전에 대한 고객 10명의 의견을 수집한다.

원문은 Michael Lynch님이 에 게재했습니다.

이 글은 gpt-5.6-terra 모델을 사용해 번역했습니다.