GitHub Sponsors의 후원을 받아 사이드 프로젝트 출시하기
어제 analysis-tools.dev를 출시했는데, 세상에나, 반응을 이렇게 과소평가할 줄은 몰랐습니다.

정적 코드 분석 도구를 비교하는 사이드 프로젝트입니다. 정적 분석은 소스 코드를 실제로 실행하지 않고도 버그를 찾아내 코드 품질을 높이는 데 도움이 됩니다.
이 프로젝트의 가장 좋은 점은 완전히 오픈 소스라는 것입니다. 광고를 보여 주거나 사용자를 추적하는 데 의존하지 않는 제품을 만들고 싶었습니다. 대신 GitHub에서 스폰서를 모집하기로 했습니다. 그게 전부였습니다. 그 과정에서 많은 것을 배웠고, 여러분도 같은 일을 해 보고 싶다면 계속 읽어 보세요!
먼저, 몇 가지 통계
누구나 비즈니스 지표를 좋아하죠. 저희 프로젝트의 지표를 소개합니다.
- 이 프로젝트는 2015년 12월, GitHub의 awesome list로 시작했습니다.
- 현재 470개의 정적 분석 도구를 등록해 두었습니다.
- 트래픽은 꾸준히 증가했습니다. 현재 별 7,500개와 190명이 넘는 기여자를 기록하고 있습니다.
- 주간 순 사용자 수는 500~1,000명입니다.
- 웹사이트를 만들자는 생각은 수년 전부터 있었지만, 동료 Jakub이 2020년 5월에 합류하면서 마침내 현실이 되었습니다.

출처: star-history.t9t.io
“웹사이트를 만드는 데 왜 5년이나 걸렸지?”라고 묻고 싶으실 겁니다. 아이디어가 너무 뻔해서 다른 사람들이 분명 전에 시도했다가 실패했을 거라고 생각했기 때문입니다.
아무도 이 틈새를 채우지 않았는데도 계속 미뤘습니다.
5년 동안 목록을 최신 상태로 유지하며 세상에 어떤 도구들이 있는지 알아보고 있었는데도 미뤘습니다.
무슨 말인지 아시겠죠. 너무 오래 미루지 마세요. 아이디어가 뻔하게 들린다면, 아마 실제로 뻔한 아이디어일 겁니다.
수익 모델
프로젝트를 재정적으로 어떻게 뒷받침할지 정하는 데는 시간이 좀 걸렸습니다. 원하지 않는 것은 분명했습니다. AdWords로 운영되는 SEO 쓰레기장을 만들고 싶지는 않았습니다. 트래커에 “사용자 데이터를 판매”하는 것도 원하지 않았고요.
GitHub의 기여자들에게 모든 데이터를 누구나 무료로 이용할 수 있게 유지할 의무가 있다고 생각했습니다. 그렇다면 그 위에 어떻게 서비스를 만들 수 있을까요? 처음에는 인프라 비용을 우리가 직접 부담하는 방안을 생각했습니다. 하지만 그러면 사이트를 유지 관리하거나 새로운 기능을 추가할 동기가 없어질 터였습니다.
GitHub Sponsors는 당시만 해도 꽤 새로운 서비스였습니다. 그래도 이게 하나의 선택지라는 사실을 깨닫자 갑자기 모든 것이 맞아떨어졌습니다. 경쟁사와의 비교를 두려워하지 않는 기업이라면, 그런 비교를 가능하게 하는 개방형 플랫폼을 지원할 동기가 있습니다. 게다가 편향을 피하면서 객관적이고 누구나 쉽게 비교할 수 있는 제품을 만들 수도 있었습니다.
스폰서십은 영혼 없는 성장을 막는 해독제가 될 수 있고, 대신 규모는 작지만 지속 가능한 사이드 비즈니스를 만들 수 있게 해 줄지도 모릅니다. analysis-tools.dev가 언젠가 전업 일자리가 될 거라고 기대하지는 않습니다. 시장 규모가 그 정도로 크지 않을 수도 있고, 그래도 괜찮습니다.
기술
수익 모델을 정하고 나니 기술에 집중할 수 있었습니다. 저희 둘 다 엔지니어라서 빠르게 반복하며 개선하는 데 도움이 됐습니다.
처음에는 Yew로 뭔가 멋진 것을 만들고 싶었습니다. Rust/WebAssembly 프레임워크이고, 이 몸은 Rust/WebAssembly를 좋아하니까요…
Jakub이 다른 방법을 제안해 줘서 다행이었습니다. 바로 Gatsby였습니다. 솔직히 말하면 저는 Gatsby에 전혀 관심이 없습니다. Jakub에게도 그렇게 말했습니다. “나는 Gatsby에 전혀 관심 없어.” 하지만 바로 그 점이 핵심입니다. 무언가에 감정적으로 얽매이지 않으면 도구가 아니라 작업 자체에 집중하게 됩니다. 그러면 더 많은 일을 해낼 수 있죠!
그다음부터는 꽤 순조로웠습니다. 스타터 템플릿을 사용했고, Jakub이 GraphQL 연동 방식도 알려 줬으며, Rust도 조금 사용할 수 있었습니다! 사이트는 Rust를 기반으로 만든 엣지 워커로 Cloudflare에서 실행됩니다. (네, 약간 꼼수를 썼습니다.)
셋 세면 MVP 완성!
스폰서 찾기
프로토타입은 있었지만 아직 스폰서는 한 명도 없었습니다. 이제 시작된 일, 그리고 지금도 여전히 가장 어려운 일은 단연 사람들을 설득해 우리를 지원하게 만드는 것이었습니다.
대부분의 기업이 콜드 이메일을 무시한다는 사실을 알 만큼은 똑똑했기에 콜드 이메일은 보내지 않았습니다. 대신 인맥을 활용했고, 개발자들이 예전에 GitHub의 기존 정적 분석 목록에 자기 회사의 프로젝트를 추가해 달라고 먼저 연락해 왔었다는 사실을 깨달았습니다.
가장 먼저 연락한 사람들은 바로 그들이었습니다. 메시지는 짧고 개인적으로 작성하려고 했습니다.
가장 효과적이었던 것은 어느 정도 분량을 갖추되 맥락을 설명하고, 이전에 프로젝트에 기여했다는 사실을 상기시키는 이메일이었습니다. 스폰서 페이지 링크도 넣었습니다.
기업은 신뢰할 수 있는 파트너와 합리적인 가치 제안을 원합니다. 따라서 스폰서 페이지를 꼼꼼하게 다듬어 두는 것이 필수 조건입니다.

스타워즈 에피소드 9처럼 반응은 엇갈렸습니다. 많은 사람은 아예 답장을 하지 않았고, 어떤 사람들은 메시지를 관리자에게 전달했지만 관리자 역시 답장하지 않았습니다. 또 어떤 사람들은 오픈 소스 프로젝트를 후원하는 것 자체에 관심이 없었습니다. 모두 이해할 수 있는 일입니다. 사람들은 바쁘고, 스폰서웨어는 꽤 새로운 개념이니까요.
잠깐 푸념하자면, 기술 기업들은 오픈 소스에서 얻는 가치에 비해 후원을 턱없이 적게 한다고 생각합니다. 여러분의 회사가 설립될 당시 Linux 같은 무료 운영체제나 Nginx, Apache 같은 웹 서버가 없었다면 과연 존재할 수 있었을까요?
하지만 관심은 보였으나 약간의 안내가 필요했던 드문 응답자들도 있었습니다. 많은 사람에게 GitHub Sponsors나 OpenCollective를 통해 개발자 누군가를 후원하는 것은 이번이 첫걸음이기 때문입니다.
저희가 OpenCollective를 회계 호스트로 사용한 것도 도움이 됐습니다. 청구서 발행과 기부금 송금을 처리해 주는 서비스입니다. 시작할 때는 OpenCollective의 문서에서 많은 도움을 받았습니다.
스폰서를 찾는 일은 끝이 없지만, AI 기반 의미 분석 서비스인 DeepCode에서 우리에게 기회를 주겠다는 연락을 받으니 무척 안심이 됐습니다.
DeepCode 덕분에 제품을 완성 단계까지 밀어붙일 수 있었습니다. 또 그들 덕분에 사이트를 모두에게 무료로 제공할 수 있게 됐습니다. 웹사이트에 광고와 트래커를 넣지 않아도 된다는 뜻이기도 합니다.
그 대신 DeepCode는 코드 품질을 중요하게 생각하는 훌륭한 개발자들에게 노출되고, 이들 중 일부는 충성도 높은 고객이 될 수도 있습니다. 오픈 소스를 우호적으로 대하는 기술 기업이라는 인지도도 얻습니다. 개발자 도구를 판매하려는 기업이라면 이런 점은 그 어느 때보다 중요합니다. 서로에게 이득이죠!
마케팅
Jakub과 저는 둘 다 전에 사업을 시작해 본 적이 있지만, 이렇게 진정으로 열린 제품을 만드는 것은 이번이 처음이었습니다.
1단계: 일찍 출시하기 🚀
저희는 소프트 런칭을 하기로 했습니다. 가능한 한 일찍 사이트를 배포하고 크롤러가 색인하도록 두는 방식입니다. 페이지가 정적으로 렌더링되고 기본적인 SEO 지침을 따른다는 점이 시간이 지나면서 검색 엔진 순위를 높이는 데 확실히 도움이 됐습니다.
2단계: 타깃 사용자에게 피드백 요청하기 💬
자연 유입 트래픽과 첫 투표가 발생한 뒤, 개발자 친구들에게 연락해 페이지를 테스트하고 자신이 알고 좋아하는 도구에 투표해 달라고 부탁했습니다. 이는 초기 검증 역할을 했고, 솔직한 피드백도 받을 수 있어서 가장 눈에 띄는 결함을 찾아내는 데 도움이 됐습니다.
3단계: 발표 글 준비하기 📝
클릭을 유도하는 제목이기는 했지만 목적은 달성한 블로그 글을 작성했습니다. 정적 분석은 망가졌다 — 우리가 고쳐 보자! 이 글에는 이 분야에 대한 저희의 답답함과 개방형 플랫폼을 만드는 것이 왜 중요한지가 거의 그대로 담겨 있습니다. 서로 다른 분석 도구의 기술적 차이를 더 잘 설명할 수도 있었겠지만, 그건 다음 기회로 미뤄 두겠습니다.
4단계: 소셜 미디어에 발표하기 🔥
공식 발표 직전에 검색 기능이 고장 난 것을 발견했습니다. (물론 그렇죠.) 알고 보니 예상보다 조금 일찍 Algolia의 무료 할당량 한도에 도달한 것이었습니다. 😅 별일 아니었습니다. Algolia 고객 지원팀과 빠르게 이야기를 나눴고, 존재하는지도 몰랐던 오픈 소스 요금제로 옮겨 주었습니다. 다시 정상 궤도에 올랐습니다!
사이트 메모: Algolia 고객 지원은 최고 수준입니다. 응답이 빠르고, 기술을 잘 알며, 도움도 많이 됩니다. Algolia를 사용한 것은 저희 제품에 정말 잘 맞는 선택이었습니다. 응답 시간은 꾸준히 수 밀리초 수준이고 Gatsby와의 연동도 빠르고 쉬웠습니다.

물론 모두가 여기서 우리가 지원을 요청하고 있다는 사실을 알고 있었지만, 좋아요와 리트윗을 해 준 한 분 한 분께 감사드립니다. 비슷한 생각을 가진 사람들의 네트워크가 도움이 될 수 있는 상황이니까요.
사이트가 완전히 망가진 것은 아니라는 확신이 들자마자 Lobste.rs(반대 2표), /r/SideProject(추천 3표), Hacker News(추천 173표, 댓글 57개)에 발표했습니다. 소셜 미디어의 반응은 꽤 예측하기 어렵습니다. 각 독자층에 맞게 메시지를 조정하고 겸손한 태도를 유지하는 것이 도움이 됩니다.
그 모든 마케팅 활동에 대한 반응은 정말 엄청났습니다.

어쩌면 당연하지만 Cloudflare 엣지 워커는 전혀 힘들어하지 않았습니다.

제 상사인 Xoan Vilas이 간단한 성능 분석까지 해 보고 승인해 줬습니다. (고마워요, 상사님!)

모두 함께 하이파이브!
이제 어떻게 할까요?
물론 새 기능을 추가할 겁니다. 물론 앞으로의 계획도 더 있습니다. 어쩌고저쩌고. 그 대신 이 이정표를 한번 돌아봅시다. 광고나 트래커 없이 오로지 스폰서만으로 운영되는, 건실하고 작은 사업입니다. 🎉
마지막으로 여러분도 자기 내면을 깊이 들여다보고, 직접 작업해 볼 작은 제품을 찾아보시길 바랍니다. 아마 바로 눈앞에 있을 텐데, 저처럼 너무 오래 미뤄 왔을지도 모릅니다. 하지만 이제는 그러지 마세요! 다음 성공 사례의 주인공은 여러분입니다. 그러니 밖으로 나가 무언가를 만들어 보세요.
아, 잠깐만요! …떠나기 전에 analysis-tools.dev에 들어가 마음에 드는 도구 몇 개의 추천 버튼을 힘껏 눌러 주실래요? 그리고 오늘 유난히 관대하거나 (오픈 소스를 소중히 여기는 훌륭한 고용주가 있다면) 저희 스폰서십 페이지도 확인해 보시는 건 어떨까요?

글을 무작위로 읽기