TinyPilot: 31개월 차
한 줄 요약
어떤 전환은 다른 전환보다 순조롭습니다.
처음 오셨나요?
안녕하세요. 저는 Michael입니다. 소프트웨어 개발자이자 독립 컴퓨터 하드웨어 기업인 TinyPilot의 창업자입니다. 2020년에 회사를 시작했고, 지금은 월 매출 6만~8만 달러를 올리며 다른 직원 6명과 함께 일하고 있습니다.
저는 매달 이런 회고 글을 올려 사업과 전반적인 직업 생활이 어떻게 흘러가고 있는지 공유합니다.
주요 내용
- TinyPilot이 새로운 제품인 Voyager 2a의 배송을 시작했습니다.
- 새로운 3PL 업체와 계약을 맺은 지 몇 주 만에 계약을 해지했습니다.
목표 달성 평가
저는 매달 초에 이루고 싶은 일을 정합니다. 그 목표를 얼마나 달성했는지 평가해 보겠습니다.
첫 번째 Voyager 2a 기기 배송하기
- 결과: Voyager 2a 배송을 시작했습니다.
- 평가: A
Voyager 2a는 지금까지 TinyPilot에서 가장 순조롭게 출시된 제품이 되었습니다. 이전 출시 때는 늘 사소한 일을 몇 가지 빠뜨려 막판에 허둥대곤 했습니다. 하지만 2a는 12월부터 필요한 일을 모두 준비했고, 실제로 모두 계획대로 진행됐습니다.
2월에 3PL 업체로 물류 처리를 전환할 준비하기
- 결과: 3PL 업체와의 계약을 해지했습니다.
- 평가: 해당 없음
안타깝게도 3PL 업체와 일을 시작하고 보니 업무 흐름에 심각한 문제가 있었습니다. 자세한 내용은 아래에서 다루겠습니다.
다섯 번째 연례 회고 작성하기
- 결과: 10일 늦게 게시했지만, 결과물에는 만족합니다.
- 평가: A-
올해는 연례 회고를 쓰는 일이 특히 힘들었습니다. 최종 글은 2,500단어였지만, 아마 5,000~8,000단어 정도의 초안을 버렸을 겁니다. 긴 단락을 한참 쓰고 나서야, 정작 회고 내용은 200단어인데 이야기를 설명하려면 지루한 배경 정보가 1,500단어나 필요하다는 사실을 깨닫는 일이 반복됐습니다.
제가 게시한 글은 복잡한 이야기를 너무 깊이 파고들지 않으면서도 그해의 주요 주제를 잘 다뤘다고 생각합니다.
TinyPilot 통계
| 지표 | 2022년 12월 | 2023년 1월 | 변화 |
|---|---|---|---|
| 순 방문자 수 | 7,308 | 8,092 | +784 (+11%) |
| 총 페이지 조회 수 | 15,549 | 16,665 | +1,116 (+7%) |
| 판매 매출 | $66,092.24 | $68,619.55 | +$2,527.31 (+4%) |
| 기업용 구독 | $290.70 | $290.70 | 0 |
| 로열티 | $2,798.97 | $5,689.93 | +$2,890.96 (+103%) |
| 총매출 | $69,181.91 | $74,600.18 | +$5,418.27 (+8%) |
| 순이익 | -$4,806.26 | $8,552.79 | +$13,359.05 (+inf%) |
판매량은 지난해 말 정점보다 줄었지만, 이는 의도한 결과입니다. 공급 부족에 대응하고 새 제품으로 전환하는 동안 TinyPilot의 물류 처리 직원들이 부담을 덜도록 광고를 줄이고 Amazon에서는 가격을 높게 유지하고 있습니다.
TinyPilot의 최근 3개월 평균 이익은 5개월 연속 흑자를 기록하고 있으며, 이는 역대 최장 기록입니다. 1월 수치가 특히 반가운 이유는 일회성으로 발생한 큰 비용이 여러 건 있었고, 올해 남은 기간에 예상되는 판매량보다 판매가 부진했는데도 건실한 이익을 냈기 때문입니다. 월 8,500달러의 이익이면 2023년 연간 이익 10만 달러 목표를 거의 정확히 달성할 수 있는 추세입니다.
월 생산량을 140대에서 200대로 늘리기
지난해 말, 저는 TinyPilot이 2023년 9월까지 새로운 Raspberry Pi 할당량을 받지 못할 것이라는 통보를 받았습니다. 그때까지는 TinyPilot 기기를 월 140대 정도만 생산할 수 있다는 뜻이었습니다. 힘든 소식이었지만, 이를 우회할 계획을 세워 두었습니다.
다행히 1월에 소량의 새로운 할당량을 받게 됐다는 소식을 들었고, 이에 따라 생산 능력이 월 200대로 늘어났습니다. 8GB Pi를 거의 두 배의 가격에 구매해야 하지만, 새로운 기기를 계속 판매할 수 있다면 기꺼이 프리미엄을 지불할 생각입니다.
월 200대라는 목표에 만족합니다. 공급 부족이 9월에 완화될 때 더 빠르게 규모를 키울 수 있도록 투자할 시간과 이익을 남기면서도, 그 정도 속도라면 무리 없이 판매할 수 있습니다.
아슬아슬하게 도착한 금속 케이스
중국에서는 매년 1월 말이나 2월 초에 춘절을 보냅니다. 중국은 새해 명절을 매우 중요하게 여기기 때문에 중국 업체들은 완전히 문을 닫습니다. 몇 주 동안 쉬는 곳도 있지만, 최대 4주까지 업무를 중단하는 업체도 있습니다.
TinyPilot은 원자재 대부분을 중국에서 구매하므로 춘절을 고려해 신중하게 계획을 세웁니다. 공장들이 문을 닫기 전에 주문을 완료할 수 있도록 일찍 주문해야 합니다. 또 새 주문을 넣을 수 없는 4주 동안 버틸 수 있도록 평소보다 많은 수량을 주문해야 합니다.
12월에도 TinyPilot의 새 금속 케이스 디자인을 계속 마무리하고 있었습니다. 제조업체는 주문을 완료하는 데 영업일 기준 30일이 걸릴 것으로 예상했고, 춘절이라는 위험 구간에 거의 다다른 상황이었습니다.
맞춤 제품의 첫 생산분을 주문할 때는 언제나 가능한 한 최소 수량만 주문합니다. 대략 4주 치 물량입니다. 하지만 이번에 가능한 최소 수량은 4개월 치였습니다. 춘절 기간과 다음 생산분이 완성될 때까지의 시간을 모두 버티려면 그만큼 필요했습니다.
그러니 처음부터 스트레스가 큰 주문이었습니다. 시제품을 확인하긴 했지만 첫 생산분에서는 많은 문제가 발생할 수 있고, 자칫하면 쓸 수 없는 불량 케이스 1,000개를 떠안을 수도 있었습니다. 그렇게 되면 초과 수요를 감당하기 위해 대체 공급업체에 상당한 프리미엄을 지불하면서 3D 프린팅 케이스를 다시 4개월 동안 사용해야 한다는 뜻이기도 했습니다.
또 다른 큰 위험은 제조업체가 일정에 늦어 춘절 전에 아무것도 배송하지 못하는 것이었습니다. 배송 예정일이 다가오는 몇 주 동안 제조업체는 마감일을 맞출 수 있을 것 같다는 말 외에는 진행 상황을 전혀 알려주지 않았습니다. 필요한 경우 주문 일부라도 먼저 배송해 달라고 요청했지만, 그렇게 하면 상황이 달라질지에 대해서는 알려주지 않았습니다.
마침내, 제조업체가 새해를 맞아 문을 닫았다고 생각한 바로 다음 토요일에 배송비를 즉시 결제해 달라는 이메일을 받았습니다. 결제했고, 며칠 뒤 케이스의 운송장 번호를 받았습니다.
일주일 후 케이스가 도착했습니다! 게다가 정말 다행스럽게도 모든 케이스의 품질이 시제품과 똑같이 좋았습니다.

새 케이스 16상자 중 하나
예정대로 Voyager 2a를 배송할 수 있었고, 두 번째 생산분을 받을 때까지 사용할 수 있을 만큼의 케이스도 확보했습니다.
3PL 업체로 전환하는 과정에서 생긴 문제
올해 제 목표 중 하나는 TinyPilot의 사내 물류 처리 과정을 외부 물류 창고로 이전하는 것입니다. 이런 사업체를 “3PL”, 즉 제3자 물류 업체라고 부릅니다.
12월에 3PL 업체로 물류 처리를 옮기기 시작했고, 출발은 아주 좋았습니다. 작은 업체였고 고객도 모두 소규모 사업자였습니다. 서로 잘 맞는 것 같았고, 우리 요구 사항도 이해하고 있었습니다.
그러던 중 업체에서 창고 관리 소프트웨어인 Veracore와 연동하는 방법을 안내해 주었습니다. 안내서가 PDF였다는 점이 첫 번째 경고 신호였습니다. 시스템에 로그인해 보니 20년 동안 업데이트되지 않은 것처럼 보이는 ASP 앱이 나타났습니다.

웹 인터페이스 스크린샷이 포함된 Veracore 온보딩 안내서 PDF
끔찍할 정도로 오래된 소프트웨어를 보고 당연히 주춤했지만, 괜찮을 거라고 스스로를 다독였습니다. TinyPilot 팀은 계속 Shopify에서 주문을 관리할 예정이었습니다. Veracore는 3PL 업체가 우리 시스템과 동기화하기 위한 수단일 뿐이고, 제가 직접 많이 사용할 일은 없을 거라고 생각했습니다.
우리는 먼저 판매량이 적은 제품을 3PL로 옮기기로 했습니다. 바로 TinyPilot Power Connector였습니다. 주력 제품 가격의 10분의 1에 불과하고 한 달에 30~40개만 판매하므로, 3PL의 업무 흐름을 처음부터 끝까지 시험하기에 위험이 적은 방법이었습니다.
3PL에서 주문 처리를 활성화한 뒤 첫 번째 Power Connector 주문이 크리스마스 당일 오후 5시에 들어왔습니다. 당연히 휴일이라 그날 발송되지는 않을 테니 다음 날 오후에 주문을 확인했습니다. Shopify에는 여전히 미처리 주문으로 표시되어 있었지만 괜찮았습니다. 크리스마스 다음 날에도 영업을 하지 않았을 수 있으니까요.
27일 오후 3시가 됐는데도 주문은 여전히 발송되지 않았습니다. 주문이 업체 쪽으로 제대로 전달됐는지 확인하려고 3PL에 이메일을 보냈습니다. 업체는 모든 것이 정상적으로 작동하고 있지만 Veracore가 주문 상태를 Shopify로 하루에 한 번만 동기화한다고 답했습니다. 오후 8시까지는 Shopify에 주문 처리 상태와 운송장 번호가 업데이트될 거라고 했습니다.
하루에 한 번이라고요? 배송 라벨을 출력하는 즉시 Veracore에서 주문을 처리 완료로 표시하면 안 되는 걸까요? 그러면 실시간으로 정보를 받을 수 있을 텐데요.
그래도 괜찮을 거라고 생각했습니다. 이 시스템을 사용하는 고객이 100명이나 되고 모두 만족하고 있으니까요. 그런데 제가 정말로 실시간 주문 처리 정보가 필요한 이유가 뭐였을까요?
고객이 주문을 변경하면 어떻게 하지?
대략 30건의 주문마다 한 번씩 고객이 변경을 요청합니다. 배송 주소를 잘못 입력했다는 사실을 뒤늦게 알아차리는 경우도 있습니다. 아예 마음이 바뀌어 주문을 취소하고 싶어 하는 경우도 있습니다.
현재 TinyPilot의 시스템에서는 이런 요청을 처리하기가 쉽습니다. 고객 지원 요청을 담당하는 TinyPilot 직원 두 명이 주문 처리도 담당합니다. 아직 주문을 발송하지 않았다면 Shopify에서 변경 사항을 적용하고 평소 절차를 계속 진행하면 됩니다.
3PL로 전환하자 바로 이 “하루에 한 번 동기화” 문제가 발목을 잡았습니다. 고객이 변경을 요청하는 이메일을 보내도 이제는 주문이 처리됐는지 아닌지 알 수 없었습니다. Shopify에서 보이는 정보가 최대 24시간 전의 정보였기 때문입니다.
3PL의 해결책은 주문을 담당하는 직원에게 이메일을 보내 변경 사항을 알려 달라는 것이었습니다. 정말 형편없는 시스템처럼 느껴졌습니다.
현재 Shopify는 우리의 “단일 진실 공급원”입니다. 주문에 관한 정보를 모두가 공유하는 권위 있는 장소가 Shopify라는 사실을 믿고 의지할 수 있습니다. 이메일로 별도의 논의를 시작하면 정보를 동기화하기 어려운 여러 개의 사일로로 흩어지게 됩니다.
개인에게 이메일을 보내야 한다는 점도 마음에 들지 않았습니다. 그 사람이 아프거나 휴가 중이면 어떻게 될까요? 3PL에서는 보통 다른 사람이 그 직원의 이메일을 확인한다고 했습니다. 보통이라고요?
고객이 표준 방식이 아닌 방법으로 결제하면 어떻게 하지?
고객이 웹사이트의 일반적인 결제 절차를 거치지 않고 TinyPilot 제품을 구매하는 방식에는 흔히 다음 두 가지가 있습니다.
- 웹사이트가 지원하지 않는 맞춤 주문이 필요한 경우(예: 대량 구매 할인).
- 구매 주문서로 결제하려는 경우(기본적으로 대기업이 외상 거래를 하는 방식입니다).
(1)의 경우에는 맞춤 주문을 만든 다음 고객에게 신용카드로 결제할 수 있는 링크를 보냅니다. 고객이 결제하면 Shopify가 자동으로 주문을 “결제 완료”로 표시하고, 우리는 제품을 발송합니다.
(2)의 경우에는 맞춤 주문을 만든 다음 고객이 서명한 구매 주문서를 보내올 때까지 기다립니다. 구매 주문서를 받으면 실제 현금은 아직 들어오지 않았기 때문에 Shopify에서는 여전히 주문을 “미결제”로 표시하지만, 우리는 구매 주문서를 근거로 제품을 발송합니다.
보다시피 (1)과 (2)는 서로 충돌합니다. 주문이 “결제 완료”로 표시될 때까지 보류하라고 3PL에 지시하면 구매 주문서로 결제하는 고객 (2)에게는 적용할 수 없습니다. 반대로 미결제 주문도 발송하라고 하면 (1)의 주문을 고객이 실제로 결제하지 않을 수도 있는데 즉시 발송하게 됩니다.
3PL을 이용하기 전에는 구매 주문서인 경우 주문에 메모를 추가해 의도를 명확히 표시했습니다. 하지만 3PL은 각 주문을 한 번만 가져오기 때문에 우리 메모를 볼 수 없습니다. 나중에 메모를 추가하면 그 내용이 3PL에 전달되지 않는 것입니다.
3PL의 해결책은 이번에도 주문 담당자에게 이메일을 보내 특수한 주문임을 설명하라는 것이었습니다.
이렇게 글로 정리하고 보니 뻔한 해결책을 놓쳤다는 생각이 듭니다. 그냥 “결제 완료로 표시된 주문을 발송한다”는 규칙을 정하면 됐습니다. 그러면 (2)의 경우 구매 주문서를 받았을 때 주문을 수동으로 “결제 완료”로 표시하면 됩니다. 미결제 구매 주문서를 추적할 별도 시스템이 필요하겠지만, 3PL과의 연동을 복잡하게 만드는 것보다는 훨씬 간단합니다.
3PL 업체 변경
전반적으로 첫 번째 3PL 업체의 변경 관리 시스템은 취약했고, 비용이 큰 오류를 너무 쉽게 일으킬 것처럼 보였습니다.
우리는 3PL 업체에 이 방식이 제대로 작동하지 않는다고 알렸고, 업체는 흔쾌히 받아들였습니다. 계약상 두 달 전에 통보해야 했으므로 업체는 월 최소 요금 350달러를 두 달 더 청구할 수도 있었지만, 그러지 않았습니다.
3PL 업체들을 인터뷰할 때 비슷한 정도로 마음에 들었던 곳이 두 군데 있었습니다. 그중 차로 갈 수 있는 거리에 있는 업체를 선택했지만, 다른 업체에서는 언제든 연락해도 좋다고 했습니다.
첫 번째 3PL 업체에서 이런 예외 상황들을 겪고 나서, 두 번째 선택지였던 업체에 연락해 이런 경우를 어떻게 처리할지 물어봤습니다. 업체 대표는 Veracore가 구식이라고 말했고, 자신의 창고 소프트웨어라면 이런 상황을 어떻게 처리할지 설명해 주었습니다. 훨씬 순조로워 보였고, 임시방편으로 이메일을 주고받으며 문제를 메우는 대신 Shopify에서 계속 업무를 관리할 수 있는 방식이었습니다. 이제 그 3PL 업체로 전환하는 절차를 진행하고 있습니다.
마무리
무엇을 해냈나?
- TinyPilot Voyager 2a 출시
- 다섯 번째 연례 회고 게시
- 3PL 업체와의 계약 해지
배운 점
- 3PL 업체가 비표준 주문을 어떻게 처리할지 미리 확인하세요.
- 전자상거래 플랫폼과 3PL의 주문 관리 시스템 사이의 인터페이스는 최대한 단순하게 유지하세요.
- 제 경우에는 3PL 연동을 단순하게 만들 수 있는 간단한 프로세스 변경을 놓쳤습니다.
- 새로운 3PL 업체로 한 번에 전환하지 마세요.
- 더 위험한 제품으로 넘어가기 전에 판매량이나 가격이 낮은 제품부터 시작해 문제를 해결하세요.
다음 달 목표
- 판매 준비가 완료된 TinyPilot 기기를 평소 수준으로 되돌리기
- 새로운 3PL 업체로 전환하는 절차 시작하기
- 개발자와 지원 엔지니어 간의 팀 간 협업 시작하기
글을 무작위로 읽기