마이크 퍼럼, Sidekiq를 1인 개발 사업으로 키우다
무료 백그라운드 작업 도구에 Pro와 Enterprise 기능을 더하고 구독으로 전환해, Sidekiq를 10년 동안 혼자 운영하는 사업으로 키운 과정.
백그라운드 작업 도구를 만들다
2012년, 마이크 퍼럼(Mike Perham)은 루비 애플리케이션의 백그라운드 작업을 처리하는 Sidekiq를 공개했다. 기본판은 무료로 배포하고, 다른 이용 조건을 원하는 기업에는 50달러짜리 상업용 라이선스를 팔았다. 첫 라이선스 판매 실적은 33건, 총 1,650달러였다. 개발에 수백 시간을 들인 도구를 지속적으로 관리하려면, 고객이 더 분명한 이유로 돈을 내는 상품이 필요했다.
Sidekiq가 맡은 일은 웹서비스의 화면 뒤에서 반복되는 작업이었다. 주문 안내 이메일을 보내거나 외부 서비스와 데이터를 동기화하는 일을 별도로 처리하면, 사용자는 그 작업이 끝날 때까지 화면 앞에서 기다릴 필요가 없다. 개발팀에는 작업을 대기열에 넣고, 실패하면 재시도하고, 처리 상태를 확인할 수 있는 공통 기반이 생긴다.
퍼럼은 이런 시스템을 여러 직장에서 직접 만들어 본 개발자였다. 2008년 FiveRuns에서 작업 대기열을 만들었고, 이후에도 저장 방식과 실행 구조를 바꿔 가며 여러 백그라운드 처리 도구를 개발했다. Sidekiq에는 그 과정에서 축적한 경험과 기존 도구의 불편을 줄이려는 설계가 들어갔다.
핵심 선택은 하나의 프로세스 안에서 여러 스레드로 작업을 처리하는 구조였다. 동시에 처리할 일을 늘릴 때 프로세스를 계속 추가하는 방식에서 생기는 자원 부담을 줄이는 데 초점을 맞췄다. 도입 과정에서는 Rails와의 긴밀한 연동, 기존 Resque 사용자가 옮겨오기 쉬운 호환성을 중요하게 다뤘다.
그가 근무하던 전자상거래 회사 The Clymb는 초기 제품을 실제 서비스에서 사용했다. 2012년 10월 퍼럼은 회사가 Sidekiq를 운영 환경에 적용한 지 여섯 달이 지났으며, 이전 Delayed Job 구성보다 빠르고 안정적으로 작동했다고 밝혔다. 직접 운영하는 서비스에서 얻은 경험은 제품을 개선하고 유료 기능을 설계하는 기반이 됐다.
Sidekiq Pro로 수익을 만들다
2012년 10월 출시한 Sidekiq Pro의 가격은 회사당 500달러였다. 여기에는 여러 작업을 하나로 묶어 진행 상황을 추적하는 배치 기능, 작업 묶음이 끝났을 때 보내는 알림, 운영 지표를 수집하는 기능이 들어갔다. 개발자는 이미지 수백 개를 처리한 뒤 다음 단계를 실행하는 것과 같은 흐름을 구성할 수 있었다. 기본 처리 도구 위에 기업이 직접 만들고 관리하기 번거로운 기능을 유료 확장으로 얹은 것이다.
Pro는 출시 후 첫해에 약 140건 팔렸고, 매출은 7만 달러에 이르렀다. 2013년 10월 무렵의 판매 속도를 연간으로 환산하면 약 10만 달러였으므로, 부업을 전업으로 바꿀 가능성이 보이기 시작했다. 같은 회고에서 퍼럼은 지난 1년간 Sidekiq를 34차례 출시했다고 기록했다. 수입이 생기면서 기능 개선과 오류 수정에 계속 시간을 투입할 이유도 분명해졌다.
초기 판매는 그가 루비 개발자들 사이에서 쌓아 온 신뢰를 바탕으로 퍼졌다. 퍼럼은 2007년부터 기술 블로그를 운영했고, RubyConf와 RailsConf에서 개발자들을 만나 질문에 답했다. 제품을 써 본 개발자가 동료에게 추천하거나 이직한 회사에 다시 도입하는 일이 이어졌다. 그는 서로 다른 직장 두세 곳에서 Pro를 구매한 개발자들을 성장의 중요한 사례로 들었다.
Pro 출시 후 약 18개월 동안 월매출은 1만 달러 수준까지 올라갔다. 부업 수입이 본업 급여를 넘어서자 퍼럼은 독립을 준비했고, 2014년 7월 The Clymb를 떠났다. 같은 달 Contributed Systems를 설립하고 Sidekiq 개발과 지원을 전업으로 삼았다. 제품이 실제로 생활비를 감당하는 단계에 도달한 뒤 근무 형태를 바꾼 순서였다.
구독과 Enterprise로 확장하다
유료판은 기업의 작업 흐름을 더 깊게 지원하는 방향으로 발전했다. 2015년 2월 Pro 2.0에서는 배치 안에 다른 배치를 넣을 수 있도록 구조를 고쳐, 여러 단계로 이어지는 작업을 관리하게 했다. 예약 작업을 대기열로 옮기는 도중 작업이 유실될 수 있는 구간도 새로운 스케줄러로 개선했다. 고객이 구매하는 가치에 복잡한 작업의 제어와 운영 안정성이 함께 쌓였다.
판매 방식도 지속적인 유지보수에 맞춰 구독으로 바뀌었다. 퍼럼은 2016년 인터뷰에서 일회성 결제로 평생 지원을 제공했던 것을 가장 큰 실수로 꼽았다. 루비와 Rails가 바뀌면 제품도 수정해야 하고, 사용자가 늘면 지원 업무도 계속 발생했기 때문이다. 당시 그는 애플리케이션에 수년간 들어가는 제품의 성격에 맞춰 연간 구독을 판매하고 있었다.
2015년 8월에는 더 큰 기업을 위한 Sidekiq Enterprise를 출시했다. 외부 API에 요청이 몰리지 않도록 제한하는 기능, 정해진 일정에 따라 작업을 실행하는 기능, 중복 등록된 작업을 억제하는 기능 등이 추가됐다. 이 기능들은 처리량이 커지고 여러 시스템을 연결하면서 생기는 운영 문제를 겨냥했다. Pro보다 높은 가격을 받을 수 있는 고객군과 사용 목적이 구체화됐다.
Enterprise에서는 구매 절차도 기업의 요구에 맞췄다. Pro는 신용카드 결제를 유지했고, Enterprise에는 견적서·구매주문서·청구서를 거치는 거래 방식을 열었다. 출시 당시에는 계약 조건 협상과 퍼럼이 직접 진행하는 한 시간의 도입 상담도 제공했다. 개발자가 사용하고 싶어 하는 제품에 기업이 실제로 구매할 수 있는 절차를 더한 셈이다.
가격 기준은 운영 규모에 따라 나눴다. 당시 Pro는 연 950달러에 작업 실행 규모를 제한하지 않았고, Enterprise는 운영 환경에서 사용하는 작업 스레드 수에 따라 가격이 올라갔다. 작은 회사에는 단순한 정액제를 제공하면서, 대규모로 사용하는 회사에는 그 규모에 맞는 비용을 받는 구조였다.
Enterprise 출시가 포함된 2015년의 매출은 전년의 2.6배로 늘었고, 평균 판매 가격은 두 배가 됐다. 퍼럼은 처음에 500달러짜리 제품을 2,000개 팔아 총 100만 달러를 벌겠다는 목표를 세웠다고 밝혔다. 사업을 운영하면서는 2,000달러를 내는 고객 500곳을 확보하는 편이 더 현실적이라고 판단했다. 기업용 틈새 제품에서는 고객 수의 한계를 높은 효용과 적절한 가격으로 풀어야 한다는 경험이었다.
혼자 운영하는 범위를 정하다
두 번째 제품에서는 같은 방식이 충분한 매출로 이어지지 않았다. 2014년 말 선보인 프로세스 감시 도구 Inspeqtor와 유료판은 이용과 판매가 기대에 못 미쳤다. 퍼럼은 2015년 사업을 정리하는 회고에서 기존 제품은 사용할 수 있도록 두되, 새로운 기능은 더 추가하지 않겠다고 밝혔다. 판매 반응이 약한 제품에 계속 개발 시간을 배정하는 일을 멈췄다.
2017년 10월 공개한 Faktory에서는 자신이 잘 아는 백그라운드 작업 처리 분야를 확장했다. Sidekiq에서 쌓은 설계를 다른 프로그래밍 언어에서도 이용할 수 있도록 작업 서버와 실행 프로그램을 분리했다. 출시 당시 루비와 Go용 실행 도구를 제공했고, 여러 언어로 구성된 시스템에서도 같은 방식으로 작업을 주고받도록 만들었다.
혼자 운영할 수 있는 규모를 유지하는 데에는 제품의 제공 방식도 영향을 줬다. Sidekiq는 고객의 서버에서 실행되므로, 퍼럼이 판매를 위해 운영하는 기반은 유료 소프트웨어의 배포와 접근 관리에 집중할 수 있었다. 2016년 공개한 배포 구성은 월 5달러짜리 서버 인스턴스와 Apache를 이용했으며, 장애에 대비해 두 대를 운영했다. 고객의 실제 작업을 처리하는 서버와 소프트웨어를 판매하는 서버의 역할이 분리돼 있었다.
결제 뒤의 반복 업무는 판매가 늘어난 다음 자동화했다. 처음 두 해에는 판매 알림을 받고 고객 접근 권한을 직접 추가했다. 이후 Stripe의 결제 알림을 받아 계정을 만들고 설치 안내를 이메일로 보내며, 구독이 끝나면 다운로드 권한을 제거하도록 연결했다. 고객이 구매부터 설치까지 진행하는 동안 창업자가 매번 개입할 필요가 줄었다.
사람이 직접 해야 하는 지원 업무는 남아 있었다. 퍼럼은 휴가 중에도 노트북을 가져가 아침에 한 시간 정도 이메일에 답한 뒤 나머지 시간을 보낸다고 설명했다. 직원을 늘리면 관리 업무와 운영비가 커진다고 보고, 자신이 효율적으로 수행하거나 자동화할 수 있는 범위에서 사업을 설계했다.
10년 뒤에도 이어진 개발
2022년 1월, Sidekiq 개발 10주년을 맞아 공개한 Contributed Systems의 고객 수는 1,850곳이었다. 회사의 누적 총매출은 1,350만 달러였고, 직원은 퍼럼 자신 한 명이었다. 그는 Sidekiq와 Faktory 사용자를 지원하는 일이 업무 시간의 대부분을 차지한다고 밝혔다. 상업용 확장에서 발생한 수입으로 장기간 제품을 관리하는 구조가 자리 잡은 상태였다.
제품의 개선은 그 뒤에도 이어졌다. 2025년 3월 공개한 Sidekiq 8.0에는 실행 중인 작업의 성능을 분석하는 기능과 개편된 관리 화면이 들어갔고, 오래 걸리는 작업을 작은 단위로 나누는 기능도 다듬어졌다. Redis 외에 Valkey와 DragonflyDB를 공식 지원하면서 고객이 선택할 수 있는 저장소도 넓혔다. 초기의 처리 효율에 더해, 이미 도입한 기업이 계속 운영하기 편하도록 제품을 발전시켰다.
성장한 뒤에는 기업의 개별 요구를 받아들이는 범위도 다시 정했다. 2026년 상업용 FAQ에서는 별도 계약 조건 협상을 중단하고, 보안·규정 준수 서류 작성은 일정 규모 이상의 Enterprise 고객에게만 제공한다고 명시했다. 초기 Enterprise가 기업 구매의 문을 넓혔다면, 이후의 운영 조건은 반복되는 협상과 서류 작업의 범위를 제한했다. 이런 표준화는 고객이 늘어날 때 발생하는 비개발 업무를 통제하는 장치가 된다.
Sidekiq의 사업은 기업이 직접 구현하고 유지해야 할 작업 처리 기능을 가져오는 데서 성장했다. 고객에게는 개발 시간, 장애 대응 부담, 지속적인 개선에 대한 비용을 함께 계산할 이유가 있었고, 퍼럼에게는 그 기능을 오래 관리할 수입이 생겼다. 그는 무료 도구의 보급, 기업용 기능의 판매, 사용 규모에 따른 가격, 제한된 운영 범위를 결합해 개발자 도구를 자신의 장기적인 생업으로 만들었다.