TinyPilot: Month 22

Michael Lynch

TinyPilot: 22개월 차

한 줄 요약

내 돈은 다 어디로 가고 있을까?

주요 내용

  • TinyPilot은 월 5만 8천 달러의 매출을 올리면서도 적자를 보고 있습니다.
  • 개발자들이 일한 시간을 지연 없이 파악하는 일이 생각보다 훨씬 중요하다는 것을 깨달았습니다.
  • 거의 2년 만에 처음으로 유료 광고를 다시 시도하고 있습니다.

목표 달성 평가

매달 초에 이달에 이루고 싶은 목표를 정합니다. 이번 달 목표 달성 결과는 다음과 같습니다.

TinyPilot으로 홈랩 NAS 서버 구축하기 블로그 글과 영상 공개하기

  • 결과: 거의 다 완성했지만 아직 공개하지 못했습니다.
  • 성적: D

블로그 글 분량이 예상보다 훨씬 길어지고 있습니다. 부품을 고를 때 어떤 고민을 했는지 그 과정을 자세히 담고 싶었는데, 생각보다 시간이 오래 걸렸습니다. 앞으로 2주 안에 마무리하는 것이 목표입니다.

TinyPilot 웹사이트 리디자인 완료하기

  • 결과: 웹사이트 디자인에 거의 변화가 없었습니다.
  • 성적: F

당초 6주짜리로 계획했던 리디자인이 이제 7개월째에 접어들었습니다. 그런데도 부끄럽게도 사용자가 체감할 수 있는 변화는 거의 만들지 못했습니다.

디자인 에이전시와의 계약을 해지했기 때문에 이번 달에 작업을 마무리하고 있습니다. 남은 기간 안에 리디자인을 끝내주길 기대하고 있습니다. 끝내지 못한다면 다른 개발자를 고용해 마무리할 계획입니다. 너무 오래 끌었기 때문입니다.

WebRTC 기반 H264 비디오 실험적 지원을 포함한 TinyPilot Pro 릴리스 공개하기

  • 결과: 대형 고객사와 얼리 빌드를 공유했지만 아직 정식 릴리스는 배포하지 못했습니다.
  • 성적: C

이번 달의 주제는 “생각보다 조금 더 오래 걸렸다”입니다. 코드는 완성됐지만 고객에게 빌드를 배포하기 전에 마지막 수동 테스트를 마무리해야 합니다.

TinyPilot 통계

지표2022년 3월2022년 4월변동
순 방문자6,2125,268-944 (-15%)
총 페이지뷰13,37511,974-1,401 (-10%)
판매 매출$65,171.82$43,771.00-$21,400.82 (-33%)
엔터프라이즈 구독$47.75$47.750
로열티$4,012.83$2,253.61-$1,759.22 (-44%)
총 매출$69,232.40$46,072.36-$23,160.04 (-33%)
순이익$-3,043.34$-19,392.76-$16,349.42 (inf%)

4월은 TinyPilot에게 힘든 달이었습니다. 미국과 유럽 유통사 모두에서 판매량이 최근 6개월 중 가장 낮은 수준으로 떨어졌습니다. 보통은 몇 건의 대형 주문으로 매달 5천~1만 달러 정도의 매출이 발생하는데, 4월에는 그런 주문이 한 건도 없었습니다.

4월의 부진이 단순히 운이 없었던 것인지, 경기 침체 신호로 인해 소비가 줄어든 것인지, 아니면 경쟁사의 새로운 제품이 판매를 잠식하고 있는 것인지 아직은 알 수 없습니다.

내 돈은 다 어디로 가고 있을까?

지난 회고에서 2022년 1분기에 월평균 5,300달러의 이익을 냈다고 말씀드렸습니다. 장부를 정리하다 보니 블로그에 적었던 숫자와 실제 장부 숫자가 맞지 않는다는 것을 알게 되었고, 사실은 월 3천 달러의 손실을 보고 있었습니다.

월 매출이 5만 8천 달러이고 TinyPilot 한 대당 250~325달러의 이익을 남기는데 어떻게 적자가 날 수 있는지 의아했습니다.

원인을 파악하기 위해 2022년 1분기 월평균 지출을 자세히 살펴봤습니다.

지출 항목월평균 비용
원자재$24,896.46
소프트웨어 및 지원 외주$14,900.43
디자인 에이전시$7,938.32
하드웨어 설계$5,291.07
물류 인력$2,915.75
배송비$2,393.49
세금/관세$1,423.14
사무실 임대료$916.67*
클라우드 서비스$495.03
광고비$106.78
기타$265.34
합계$61,542.47

* 실제 임대료는 월 550달러이지만 1분기에는 집주인이 수표를 불규칙하게 입금하면서 장부상 임대료가 더 높게 잡혔습니다.

가장 큰 지출은 원자재였는데, 평소보다 더 많이 쓴 이유는 공급 부족에 대비해 향후 18~36개월치 부품을 미리 비축했기 때문입니다. 월 6,200달러 정도는 수년간 사용할 부품 비용이라 비축이 끝나면 월 자재비는 크게 줄어들 것입니다.

그다음으로 큰 지출은 소프트웨어 및 지원 비용으로 1만 4,900달러였습니다. 새로운 비디오 기술을 통합하기 위해 단기 외부 컨설턴트를 고용하면서 평소보다 조금 높게 나왔습니다. 평상시 수준은 1만 2천 달러 정도인데, 이 역시 여전히 높은 편입니다.

TinyPilot Pro 유료화를 통해 개발 및 지원 비용을 충당할 계획이었지만 아직 라이선스 검증이나 갱신 알림 기능을 구현하지 못했습니다. TinyPilot 고객 중 약 1/3은 TinyPilot Pro 라이선스가 만료된 것을 모른 채 무료로 지원과 업데이트를 계속 받고 있습니다. 앞으로 몇 달간 가장 우선순위가 높은 과제는 TinyPilot 업데이트 방식을 개편해 유료 라이선스가 유효한 사용자만 최신 TinyPilot Pro 릴리스를 받을 수 있도록 하는 것입니다. 또한 매년 80달러를 정기 결제하면 만료 시마다 재구매하는 번거로움 없이 자동으로 갱신되도록 가입 과정을 더 쉽게 만들고 싶습니다.

디자인 에이전시 비용은 월 8천 달러에 가까웠지만 다행히 이 지출은 곧 사라집니다. 마지막 대금을 지급했고 계약은 5월 말에 종료됩니다. 웹사이트 유지를 위해 개발자를 새로 고용할 수도 있지만 그 경우 업무 시간도 적고 단가도 낮아 월 1천~2천 달러 정도가 될 것입니다.

다음은 월 5,300달러의 하드웨어 설계 비용입니다. 이 비용은 TinyPilot Voyager 2를 양산에 적합하도록 재설계하는 동안 앞으로 2~3개월간 계속 높게 유지될 것입니다. 설계 작업이 끝나면 유지보수 비용이 설계 비용보다 훨씬 저렴하므로 월 2천 달러 수준으로 떨어질 것으로 예상합니다.

지출은 크게 세 가지 범주로 나눌 수 있습니다.

  • 고정 비용: 임대료나 인건비처럼 매출과 무관하게 매달 반복되는 비용입니다.
  • 자재비 및 배송비: 거의 전적으로 판매량에 비례하는 비용이지만 매출 증가 속도의 약 1/3 정도로 늘어납니다.
  • 일시적 비용: 하드웨어 재설계나 부품 비축 같은 일회성 비용입니다.

판매를 통해 고정 비용을 충당하고 성장에 필요한 비용까지 남길 만큼 충분한 이익을 내야 합니다. 소프트웨어 비용이 월 1만 2천 달러, 하드웨어 설계 비용이 월 2천 달러 수준으로 내려간다고 가정하면 고정 비용은 월 1만 9천 달러 정도입니다. 원자재가 매출의 약 30%를 차지한다면 운영을 유지하려면 월 2만 7천 달러의 매출이 필요합니다(매출 2만 7천 달러에서 자재비를 빼면 2만 2천 달러가 남습니다).

월 2만 7천 달러 매출은 충분히 달성 가능해 보입니다. 지난 6개월간은 그보다 훨씬 높은 수준을 유지했기 때문입니다. 다만 매출이 하락세이고 경기 침체 조짐도 보이고 있어 손익분기점을 계속 넘기면서 성장과 일시적 비용을 감당할 여력을 유지할 수 있을지 지켜봐야 합니다.

지연 없는 근무 시간 보고의 중요성

지난 업데이트에서 디자인 에이전시와 일하면서 알았더라면 좋았을 점들을 정리한 바 있습니다. 4월에는 그 목록에 하나를 더 추가하게 됐습니다. 바로 근무 시간 보고입니다.

3월 말, 에이전시는 리디자인과 관련해 새로운 Bootstrap 테마를 제안했습니다. TinyPilot 웹사이트는 Bootstrap CSS 프레임워크를 사용합니다. 지금도 사이트를 처음 만들 때 Bootswatch에서 가져온 무료 서드파티 테마를 그대로 쓰고 있고, 그 위에 페이지별·컴포넌트별 커스텀 스타일을 덧씌운 구조입니다.

에이전시는 이 구조가 복잡하게 얽혀 있다며 서드파티 테마와 페이지별 스타일을 걷어내고 사이트 전반에 적용되는 자체 Bootstrap 테마로 교체하자고 제안했습니다. 작업은 며칠이면 끝날 것이라고 예상했습니다. 제 입장에서도 합리적으로 들렸습니다. 그렇지 않으면 나머지 리디자인 작업 내내 세 겹으로 쌓인 CSS와 싸워야 하니 미리 정리해 두면 오히려 시간을 절약할 수 있을 것 같았습니다.

테마 작업은 결국 5주가 걸렸고 비용은 6,100달러가 들었습니다. 사용자가 체감할 수 있는 변화는 다음과 같습니다.

변경 전 TinyPilot 웹사이트 스크린샷변경 후 TinyPilot 웹사이트 스크린샷, 글꼴과 색상이 약간 달라졌습니다

6,100달러짜리 웹 개발 전(왼쪽)과 후(오른쪽)

장기적으로 보면 이 리팩터링은 도움이 됩니다. 하지만 지금 당장 할 일은 아니었습니다. 리디자인은 이미 6개월이나 지연됐고 예산도 5배나 초과한 상황입니다. 코드가 깔끔해진 대신 볼품없는 웹사이트를 갖기보다는 코드가 다소 지저분하더라도 보기 좋은 웹사이트를 먼저 갖는 편이 낫습니다.

어떻게 이런 일이 벌어지도록 내버려 둔 걸까요? TinyPilot의 정규 개발자들은 제가 원하지 않는 일에 시간을 허비하는 경우가 거의 없는데, 디자인 에이전시와는 그런 일이 계속 발생합니다.

결정적인 차이는 TinyPilot 개발자들은 자신이 시간을 어떻게 쓰는지 지연 없이 투명하게 공유한다는 점입니다. 각자 작업 세션이 끝날 때마다 일한 시간과 작업 내용을 짧은 메모와 함께 기록합니다.

Deel에서 본 TinyPilot 근무 시간 보고 스크린샷

TinyPilot 내부 개발자들은 작업하는 즉시 근무 시간을 보고합니다.

제가 작업을 기다리고 있을 때 그들의 근무 시간을 확인합니다. 제가 두 시간짜리로 예상한 작업에 14시간이 기록돼 있다면 제가 난이도를 과소평가했거나 설명을 제대로 하지 못한 것입니다. 어느 쪽이든 개발자와 바로 소통해 계속 진행할지 방향을 수정할지 결정합니다.

디자인 에이전시와는 피드백 주기가 훨씬 느립니다. 매달 15일에 그달에 일한 총 시간만 알려주는 업데이트를 보내고, 월말에 세부 내역이 담긴 전체 보고서를 보내줍니다. 하지만 그때는 이미 늦습니다.

'2022년 4월 기준 40시간 중 16.02시간을 사용했습니다.'라는 이메일작업별로 분류된 근무 시간 보고서

디자인 에이전시는 한 달에 두 번만 근무 시간을 보고합니다. 월 중순에는 총 시간만 불투명하게 알려주고(왼쪽), 월말에야 작업별 세부 내역을 제공합니다(오른쪽).

또 다른 문제는 디자인 에이전시가 주 단위가 아니라 월 단위로만 시간을 확약한다는 점입니다. 2월에는 첫 3주 동안 개발 작업을 전혀 하지 않다가 마지막 10일 동안 모든 작업을 몰아서 했습니다. 피드백이 느린 상황에서 이런 방식은 작업이 너무 오래 걸리는 것인지 아직 시작조차 하지 않은 것인지 구분할 수 없게 만듭니다.

앞으로 디자인 에이전시와 다시 일하게 된다면 청구 가능한 근무 시간을 실시간으로 공유할 수 있는 도구를 반드시 사용하도록 할 것입니다. 그 정보는 너무 중요해서 몇 주씩 지연시켜서는 안 됩니다. 기대치의 불일치를 조기에 발견하는 데 꼭 필요하기 때문입니다.

유료 검색 광고 살짝 시도해 보기

초창기에 유료 광고를 시도한 적이 있지만 성과를 제대로 측정할 방법이 없었습니다. 판매 사이트 스택을 독특하게 직접 구축해 놓아서 Shopify나 Google Analytics 같은 일반적인 전환 추적 도구와 연동하기가 어려웠습니다. 전환 추적이 되는 것처럼 보여도 실제 판매의 약 30%만 집계됐으니 제가 설정을 잘못했거나 사용자 중 70%가 광고 차단을 사용하고 있는 것이었을 겁니다.

제휴 마케팅을 실험하면서 우연히 전환 추적 문제를 해결했습니다. 고객이 제휴 링크를 통해 방문하면 TinyPilot 웹사이트가 제휴 ID를 브라우저 로컬 스토리지에 저장합니다. 고객이 결제할 때 그 제휴 ID를 주문 속성에 함께 저장하는 방식입니다. 이렇게 하면 Google Analytics에 의존할 필요도 없고 광고 차단과 싸울 필요도 없습니다.

같은 방식을 유료 광고에도 활용할 수 있다는 것을 깨달았습니다. 광고 URL에 담긴 리퍼러 정보를 제휴 ID처럼 취급하면 됩니다. 이를 활용해 Google과 Bing에서 유료 광고를 다시 집행해 봤습니다.

Google 광고: TinyPilot KVM over IP | Easy Remote Access | Open-Source, PoE, HTML5 TinyPilot is a simple, modern KVM over IP device with PoE. No software installation or Java plugins. Setup takes 5 minutes.

첫 Google 검색 광고입니다.

지표GoogleBing
광고비$1,715.10$1,018.09
노출 수15,6237,023
클릭 수701196
클릭률(CTR)4.5%2.8%
클릭당 비용(CPC)$2.45$5.19
전환 매출$4,202.88$789.97
광고비 대비 매출(ROAS)2.450.78

Google이 거의 모든 지표에서 Bing을 앞섰습니다. Bing은 클릭당 비용이 두 배나 비싼데도 매출은 3분의 1 수준에 그쳤습니다.

가장 중요한 지표는 광고비 대비 매출(ROAS)로 Google은 2.45였습니다. 즉, Google 광고에 1달러를 쓰면 2.45달러의 매출이 발생한다는 뜻입니다. 부품과 인건비로 약 0.76달러가 듭니다. 수익을 계산하면 매출 2.45달러 - 광고비 1달러 - 부품 및 인건비 0.76달러 = 이익 0.69달러가 됩니다.

다시 말해 Google 광고에 1달러를 쓰면 0.69달러의 이익이 남으니 아주 좋은 거래입니다. 이 수치는 하한선입니다. 사용자가 휴대폰에서 광고를 클릭한 뒤 데스크톱에서 구매하면 제 추적 방식으로는 Google의 성과로 집계되지 않기 때문입니다. 그래서 실제로는 지표보다 더 많은 수익을 내고 있을 가능성도 있습니다.

광고 문안이나 타게팅에 대해서는 아직 전혀 실험하지 않았습니다. 마케팅 에이전시에 맡기면 성과를 훨씬 더 끌어올릴 수 있을 것 같습니다.

Google 예산을 하루 150달러로 늘렸고, 수익이 나는 한 계속 늘려갈 계획입니다.

Bing 예산은 하루 50달러로 유지하면서 광고를 조금 다듬고 있습니다. Bing에서는 “unifi 24 port switch”(전혀 다른 기능의 제품)나 “kvms pro”(일종의 CCTV 관리 소프트웨어) 같은 관련 없는 검색어에도 제 광고가 노출되고 있었습니다.

원래는 DuckDuckGo에 광고하고 싶었습니다. DuckDuckGo 사용자가 제 제품과 잘 맞을 것 같았기 때문입니다. 그런데 이상하게도 DuckDuckGo는 광고를 직접 판매하지 않고 경쟁사인 Bing을 통해서만 간접적으로 판매합니다. DuckDuckGo에 광고하려면 Bing에 광고를 집행한 뒤 Bing의 제휴 네트워크를 통한 광고를 활성화해야 하는데, 여기에는 AOL, Yahoo, DuckDuckGo가 포함됩니다.

DuckDuckGo에 광고하는 유일한 방법은 Bing, Yahoo, AOL에 광고하는 것입니다.

사이드 프로젝트

PicoShare

대용량 파일을 더 쉽게 공유하기 위해 만든 간단한 웹 앱인 PicoShare 작업을 계속 즐겁게 하고 있습니다.

특히 기대되는 기능 중 하나는 게스트 업로드 링크를 만들 수 있는 기능입니다. 종종, 특히 TinyPilot 파트너들과 일할 때 이메일로 보내기엔 너무 큰 파일을 받아야 하는 경우가 있는데, Google Drive나 Dropbox 같은 클라우드 스토리지에 가입하는 번거로움을 상대방에게 강요하고 싶지 않습니다.

PicoShare의 게스트 업로드를 이용하면 다음과 같은 게스트 링크를 만들 수 있습니다.

PicoShare 게스트 링크 생성 화면 스크린샷

그러면 PicoShare가 https://picoshare.tinypilotkvm.com/g/sWy2Pi5Dm8afJuxs 같은 맞춤형 게스트 링크를 생성합니다. 게스트가 이 링크에 접속하면 가입 절차 없이 제 PicoShare 서버에 파일을 업로드할 수 있습니다.

PicoShare 게스트 링크를 통한 업로드 화면 스크린샷

이미 TinyPilot에서 사용하기 시작했는데, 기존에 쓰던 Mega.nz나 Dropbox보다 훨씬 매끄럽습니다.

추가로 업로드한 파일에 대한 세부 정보를 기억해 둘 수 있도록 비공개 메모를 첨부하는 기능도 추가했습니다.

메모 입력란이 있는 PicoShare 업로드 페이지 스크린샷메모가 표시된 PicoShare 파일 목록 페이지 스크린샷

이제 PicoShare에서 업로드한 파일에 비공개 메모를 첨부할 수 있습니다.

마무리

무엇을 해냈나요?

교훈

  • 외주 업체나 에이전시와 일할 때는 지연 없는 근무 시간 보고가 필수적입니다.
    • 그렇지 않으면 프로젝트가 예산을 초과하거나 범위를 벗어나고 있다는 사실을 너무 늦게야 알아차리기 쉽습니다.

다음 달 목표

  • TinyPilot으로 홈랩 NAS 서버 구축하기 블로그 글과 영상 공개하기
  • TinyPilot 웹사이트 리디자인 완료하기
  • 마케팅 에이전시 또는 프리랜서 고용하기

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

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.