TinyPilot: 22개월 차
원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기
한 줄 요약
내 돈은 다 어디로 가고 있을까?
하이라이트
- TinyPilot은 월 5만 8천 달러의 매출을 올리면서도 이상하게 적자를 보고 있다.
- 개발자들이 일한 시간을 지연 없이 바로 파악하는 일이 생각보다 훨씬 더 중요하다.
- 거의 2년 만에 처음으로 유료 광고를 다시 시도하고 있다.
목표 성적표
매달 초에 달성하고 싶은 목표를 정한다. 이번 달 목표 달성 결과는 다음과 같다:
TinyPilot으로 홈랩 NAS 서버를 구축하는 과정을 담은 블로그 글과 영상 게시하기
- 결과: 거의 다 끝냈지만 아직 게시하지 못했다.
- 성적: D
블로그 글 분량이 예상보다 훨씬 길어지고 있다. 부품 선정 과정에 대한 고민을 최대한 자세히 담고 싶었는데, 그 작업에 얼마나 오래 걸릴지 미처 가늠하지 못했다. 앞으로 2주 안에 마무리하는 것이 목표다.
TinyPilot 웹사이트 리디자인 완료하기
- 결과: 웹사이트 디자인에 눈에 띄는 변화가 거의 없었다.
- 성적: F
당초 6주로 계획했던 리디자인이 어느덧 7개월째에 접어들었다. 그런데도 부끄럽게도 사용자가 체감할 수 있는 변화는 거의 만들지 못했다.
디자인 에이전시와의 계약을 해지했기 때문에 이번 달에 작업을 마무리하게 된다. 남은 기간 안에 리디자인을 끝내주길 기대하고 있다. 만약 끝내지 못한다면 다른 개발자를 고용해 마무리할 생각이다. 이 일이 너무 오래 끌리고 있기 때문이다.
WebRTC 기반 H264 비디오 실험적 지원을 포함한 TinyPilot Pro 릴리스 배포하기
- 결과: 대형 고객 한 곳에 초기 빌드를 공유했지만 아직 정식 릴리스는 배포하지 못했다.
- 성적: C
이번 달의 주제는 “생각보다 조금 더 오래 걸렸다”이다. 릴리스 코드는 모두 완성됐지만 고객에게 빌드를 배포하기 전에 마무리해야 할 수동 테스트가 아직 남아 있다.
TinyPilot 통계
| 지표 | 2022년 3월 | 2022년 4월 | 변화 |
|---|---|---|---|
| 순 방문자 | 6,212 | 5,268 | -944 (-15%) |
| 총 페이지뷰 | 13,375 | 11,974 | -1,401 (-10%) |
| 판매 수익 | $65,171.82 | $43,771.00 | -$21,400.82 (-33%) |
| 엔터프라이즈 구독 | $47.75 | $47.75 | 0 |
| 로열티 | $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분기에는 집주인이 수표를 불규칙한 시기에 입금하면서 임대료 지출이 더 높게 잡혔다.
가장 큰 지출은 원자재로, 공급 부족으로부터 TinyPilot을 보호하기 위해 향후 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달러가 들었다. 사용자가 체감할 수 있는 결과는 다음과 같다:


6,100달러의 웹 개발 전후 비교 (왼쪽: 변경 전, 오른쪽: 변경 후)
장기적으로 보면 이 리팩터링은 도움이 되지만 지금 당장 할 일은 아니었다. 리디자인은 이미 6개월이나 지연됐고 예산도 5배나 초과한 상태였다. 코드가 아름답게 정리된 밋밋한 웹사이트보다, 코드가 좀 지저분하더라도 보기 좋은 웹사이트를 먼저 갖는 편이 낫다.
그래서 어떻게 이런 일이 벌어지도록 내버려 둔 걸까? TinyPilot의 정규 개발자들은 내가 원하지 않는 일에 매몰되는 경우가 거의 없는데 디자인 에이전시에서는 계속 같은 일이 반복되고 있다.
결정적인 차이 하나는 TinyPilot 개발자들은 자신이 시간을 어떻게 쓰는지 지연 없이 바로 알려준다는 점이다. 각자 작업 세션이 끝날 때마다 일한 시간과 무엇을 했는지 짧게 기록한다.

TinyPilot 내부 개발자들은 작업하는 대로 시간을 기록한다.
내가 그들에게서 작업 결과를 기대하고 있을 때, 그들이 기록한 시간을 확인한다. 내가 두 시간 정도로 예상한 작업에 14시간이 들어가 있다면 내가 난이도를 과소평가했거나 설명을 제대로 하지 못했다는 뜻이다. 어느 쪽이든 개발자와 바로 소통해 계속 진행할지 방향을 수정할지 결정한다.
디자인 에이전시와는 피드백 주기가 훨씬 느리다. 그들은 매달 15일에 그달에 일한 총 시간만 알려준다. 월말이 되어서야 시간 사용 내역이 담긴 전체 보고서를 보내주는데, 그때는 이미 늦었다.


디자인 에이전시는 한 달에 두 번만 시간을 보고한다. 월 중반에는 총 시간만 불투명하게 알려주고(왼쪽), 월말에야 작업별로 세분화된 내역을 제공한다(오른쪽).
디자인 에이전시의 또 다른 문제는 작업 시간을 주 단위가 아니라 월 단위로만 약속한다는 점이다. 2월에는 첫 3주 동안 개발 작업을 전혀 하지 않다가 마지막 10일에 모든 작업을 몰아서 했다. 피드백 주기가 이미 느린데 이런 방식이 더해지니, 작업이 예상보다 오래 걸리는 것인지 아직 시작조차 하지 않은 것인지 구분할 수 없었다.
앞으로 디자인 에이전시와 다시 일하게 된다면 빌린 시간이 발생하는 즉시 공유할 수 있는 도구를 반드시 사용하도록 요구할 것이다. 그 정보는 너무 중요해서 몇 주씩 늦춰서는 안 된다. 기대치가 어긋나는 지점을 제때 파악해 예산 초과나 범위 이탈을 막을 수 있기 때문이다.
유료 검색 광고에 발 담그기
TinyPilot 초창기에 유료 광고를 시도해 본 적이 있다. 하지만 성과를 제대로 측정할 방법이 없었다. 판매 사이트는 내가 직접 만든 독특한 구조라 Shopify나 Google Analytics 같은 일반적인 전환 추적 도구를 연동하기 어렵다. 전환 추적이 작동하는 것처럼 보일 때도 실제 판매량의 약 30%만 집계됐는데, 내가 설정을 잘못했거나 사용자 중 70%가 광고 차단 기능을 쓰고 있기 때문일 것이다.
제휴 광고를 실험하다가 전환 추적 문제를 우연히 해결하게 됐다. 고객이 제휴 링크를 통해 방문하면 TinyPilot 웹사이트는 제휴사 ID를 브라우저의 로컬 스토리지에 저장한다. 고객이 결제할 때 그 제휴사 ID를 주문 속성으로 함께 저장한다. 이렇게 하면 Google Analytics에 의존할 필요도 없고 광고 차단 프로그램과 싸울 필요도 없다.
같은 방식을 유료 광고 추적에도 활용할 수 있다는 것을 깨달았다. 광고 URL에 담긴 유입 정보를 제휴사 ID처럼 다루면 된다. 이를 활용해 Google과 Bing에서 유료 광고를 다시 집행해 봤다.

나의 첫 Google 검색 광고.
| 지표 | Bing | |
|---|---|---|
| 광고비 | $1,715.10 | $1,018.09 |
| 노출수 | 15,623 | 7,023 |
| 클릭수 | 701 | 196 |
| 클릭률 (CTR) | 4.5% | 2.8% |
| 클릭당 비용 (CPC) | $2.45 | $5.19 |
| 전환으로 발생한 수익 | $4,202.88 | $789.97 |
| 광고비 대비 수익 (ROAS) | 2.45 | 0.78 |
Google이 거의 모든 지표에서 Bing을 앞서고 있다. Bing은 클릭당 비용이 두 배나 비싸면서도 수익은 1/3 수준에 그친다.
가장 중요한 지표는 광고비 대비 수익(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는 광고를 직접 판매하지 않고 경쟁사인 Bing을 통해서만 간접적으로 판매한다. DuckDuckGo에 광고를 하려면 Bing에 광고를 집행한 뒤 Bing의 제휴 파트너를 통한 광고를 활성화해야 하는데, 여기에는 AOL, Yahoo, DuckDuckGo가 포함된다.

DuckDuckGo에 광고하는 유일한 방법은 Bing, Yahoo, AOL에 광고하는 것이다.
사이드 프로젝트
PicoShare
간단하게 대용량 파일을 공유할 수 있도록 만든 웹 앱 PicoShare를 계속 재미있게 만들고 있다.
특히 기대하고 있는 기능 중 하나는 게스트 업로드 링크를 만들 수 있는 기능이다. 특히 TinyPilot 파트너들과 일할 때처럼, 이메일로 보내기엔 너무 큰 파일을 누군가에게 받고 싶을 때가 많다. 그렇다고 Google Drive나 Dropbox 같은 클라우드 저장소 서비스에 가입하라고 번거롭게 하고 싶지도 않다.
PicoShare의 게스트 업로드 기능을 이용하면 이렇게 게스트 링크를 만들 수 있다:

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

이미 TinyPilot에서 사용하기 시작했는데, 예전에 쓰던 Mega.nz나 Dropbox보다 훨씬 매끄럽게 동작한다.
다른 하나는 업로드한 파일에 기억해 둘 내용을 적어둘 수 있는 비공개 메모 기능이다:


이제 PicoShare에서 업로드에 비공개 메모를 첨부할 수 있다.
마무리
무엇을 해냈나?
- 유료 검색 광고에서 유망한 결과가 나타나기 시작했다.
- TinyPilot Pro 2.4.1 릴리스가 H264 비디오 지원을 포함해 코드 컴플리트를 달성했다.
- TinyPilot이 uStreamer에 H264 비디오를 WebRTC로 스트리밍하는 방법을 설명하는 문서를 기여했다.
교훈
- 외주 계약자나 에이전시와 일할 때는 지연 없는 작업 시간 보고가 필수다.
- 그렇지 않으면 프로젝트가 예산을 초과하거나 범위를 벗어나고 있다는 사실을 너무 늦게야 알게 되기 쉽다.
다음 달 목표
- TinyPilot으로 홈랩 NAS 서버 구축에 관한 블로그 글과 영상 게시하기.
- TinyPilot 웹사이트 리디자인 완료하기.
- 마케팅 에이전시 또는 프리랜서 고용하기.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기