- Supabase는 창업 초기부터 오픈 소스를 선택했고, 공개적으로 제품을 만들면서 커뮤니티·채용·제품 확장에서 예상보다 큰 이점을 얻음
- 대표적인 걱정은 코드 품질 비판, 보안 취약점 노출, 경쟁사의 복제지만 공개성은 개선 참여와 빠른 반복으로도 이어질 수 있음
- 채용에서는 저장소 기여가 후보자의 실제 코드와 협업 방식을 보여줘, Supabase는 32명의 개발자를 채용한 뒤에야 아웃바운드 채용을 시작함
- 소수 사용자 기능, 통합, 어댑터는 커뮤니티가 직접 만들 수 있어 제품 범위가 넓어지고 내부 팀의 우선순위 한계를 보완함
- 오픈 소스 회사의 방어력은 코드를 숨기는 데보다 실행 속도, 브랜드, 팀, 커뮤니티를 장기간 쌓는 데서 나옴
Supabase가 처음부터 오픈 소스를 택한 이유
- Supabase는 시작일부터 오픈 소스였고, 창업자들이 PostgreSQL, Python, Bitcoin, React 같은 공개 프로젝트의 오랜 사용자이자 지지자였기 때문에 당시에는 어려운 결정으로 느끼지 않았음
- 공개적으로 비즈니스를 만들면 부담이 클 것이라는 예상과 달리, 제품과 회사를 키우는 과정에서 여러 예상 밖의 장점이 나타남
- 개발자 도구 또는 PaaS 회사의 경험이지만, 많은 내용은 소프트웨어 회사 전반에도 적용될 수 있음
- 오픈 소스 전환을 막는 반복적인 걱정은 크게 세 가지임
- 사람들이 지저분하거나 미완성인 코드를 비판할 수 있음
- 해커가 보안 구멍을 찾아 악용할 수 있음
- 경쟁사가 지식재산권을 훔칠 수 있음
“내 코드가 나쁘다”는 걱정
- 나쁜 코드에 대한 불안은 대부분 자존심의 문제에 가깝고, 누군가 시간을 들여 들여다본다면 그 안에서 추구할 만한 무언가를 찾았을 가능성이 있음
- Stone Soup 이야기처럼 좋은 아이디어를 커뮤니티와 공유하면, 다른 사람들이 이를 받아들이고 함께 개선할 수 있음
- 커뮤니티는 나쁜 코드를 리팩터링하거나 대체할 수 있고, 새 코드 품질 가이드라인을 도입해 이후 기여 절차도 더 좋아질 수 있음
- 코드에 불평만 하고 개선 제안을 하지 않는 독성 구성원은 애초에 원하는 커뮤니티 구성원이 아님
- 오픈 소스 기여자들은 오래된 프로젝트의 “무덤”을 갖고 있으며, 비슷한 것을 만들려는 사람들에게는 아이디어와 접근법의 라이브러리가 됨
- 누군가는 특정 문제 해결 방식에서 영감을 얻을 수 있음
- 최소한 같은 실수를 반복하는 시간을 줄일 수 있음
- 오래된 프로젝트가 평판을 망칠 가능성보다, 유용하게 쓰이거나 아예 주목받지 않을 가능성이 큼
공개 코드와 보안
- 공개 코드로 호스팅 솔루션을 운영할 때 가장 큰 두려움은 악의적 행위자가 코드를 읽고 취약점을 찾아 서비스를 해킹하는 상황임
- Supabase 경험상 Linus's law의 “충분한 눈이 있으면 모든 버그는 얕다”는 말은 보안 문제에도 적용됨
- 초기부터 익명인 경우가 많은 보안 연구자들이 코드와 플랫폼을 살피며 잠재 문제를 찾는 데 도움을 줌
- SaaS를 제공한다면
/.well-known/security.txt에 간단한 안내를 제공해, 선의의 연구자들이 잠재 문제를 어떻게 공개해야 하는지 알 수 있게 해야 함 - 공개 프로젝트가 독점 코드베이스보다 더 안전할 수 있는 사례로 Bitcoin을 듦
- Andreas M. Antonopoulos는 2015년 강연에서 폐쇄형 은행 시스템이 소프트웨어적으로 약한 면역체계를 갖는다고 말함
- 폐쇄형 시스템에서는 큰 보안 구멍이 오랫동안 가려질 수 있고, 결국 악용될 때 큰 피해가 날 수 있음
- Bitcoin 같은 오픈 소스 프로토콜에서는 보안 구멍이 모두에게 보이고, 익스플로잇이 일찍 자주 발견된 뒤 패치됨
- 성공적인 소프트웨어 회사는 10년 넘게 만들어질 수 있으므로, 장기적으로 오픈 소스 시스템은 비밀스러운 독점 시스템보다 더 안전한 상태에 가까워질 수 있음
- 뛰어난 보안 엔지니어 채용 경쟁이 매우 치열한 시기에는 공개 검토의 가치가 더 커짐
경쟁사와 지식재산권 우려
- 소프트웨어에서 아이디어는 싸고, 가치는 거의 항상 아이디어의 실행에서 만들어짐
- 아이디어를 세상과 공유하면 누가 코드베이스에 접근할지 걱정하는 대신 더 빠르게 반복하는 데 집중할 수 있음
-
전문가 커뮤니티 만들기
- 성공적인 회사를 만들려면 긴 기간, 예를 들어 10년 동안 잘 실행하고 고객 기반을 키워야 함
- 이 장거리 레이스에서 경쟁사가 코드베이스를 들여다보며 얻는 이점은 10년 전체로 보면 크지 않을 가능성이 높음
- 그 기간 동안 코드베이스는 여러 번 반복되고 리팩터링될 가능성이 큼
- 장기적으로는 자신의 솔루션을 세계에서 가장 잘 반복 개선하는 팀과 커뮤니티를 만드는 것이 승리 방식임
-
시장에서 이기기
- 크고 성장하는 총주소시장(TAM)이 정말 추구할 가치가 있다면, 승자독식 상황일 가능성은 낮음
- 먼저 감탄시킬 수 있는 사용자 세그먼트를 찾고 빠르게 반복해야 함
- 경쟁사에 집중하는 시간은 제품이나 팀 개선에 쓰일 수 있는 시간임
- 경쟁사가 오픈 소스 프로젝트를 포크해 더 빠르게 출시할 수 있다면, 그 경쟁에서는 어차피 질 운명이었다고 봄
- 소프트웨어에서 IP와 특허는 집행하기 어렵기로 유명하므로, 변호사로 소프트웨어 아이디어를 보호하려는 걱정을 줄이면 시간·돈·정신적 에너지를 아낄 수 있음
- 비즈니스는 소프트웨어 아이디어를 세계에서 가장 잘 구현하는 방식으로 더 잘 보호될 수 있음
-
후기 단계의 클라우드 경쟁
- 프로젝트가 상당한 규모에 도달하면 Elastic이나 Mongo처럼 대형 클라우드 제공자가 더 강한 배포 모델로 제품을 제공하는 상황을 맞을 수 있음
- 막 시작한 회사의 가장 큰 문제는 먼저 그 지점까지 가는 것임
- AWS가 수십억 달러 규모 제품군 중 하나에서 리소스를 빼내 호스팅 제품으로 경쟁할 정도라면, 이미 매우 잘하고 있는 상태임
- 더 건설적인 대응은 누구와도 경쟁에서 앞설 수 있는 영역을 미리 찾는 것임
- 많은 클라우드 제공자는 개발자 경험(DX) 이 좋지 않은 경우가 많으므로, DX를 핵심 역량으로 삼을 수 있음
- 6년 뒤 Google이 점심을 빼앗으려 한다면, 그전 몇 년 동안 브랜드·팀·커뮤니티가 David 대 Goliath식 싸움을 준비하고 있어야 함
- 이런 상황에 기습당하지 않도록 처음부터 계획해야 하며, 시간과 집중력을 활용해 승리 전략을 만들 수 있음
- 경쟁사가 아이디어를 찾으러 온다면 늘 한 발 뒤에 있고, 특히 초기처럼 리소스가 부족할 때는 경쟁 걱정에 더 많은 에너지를 쓰게 됨
개발자 채용에서의 효과
- 스타트업이 규모와 무관하게 겪는 큰 문제 중 하나는 개발자 채용의 어려움임
- 소싱이 어려움
- 개발자 평가가 어려움
- 미래 동료의 수준을 설득하기 어려움
- 오픈 소스는 개발자 채용 문제를 줄이는 데 도움을 줄 수 있음
-
공개적인 소싱
- 모든 개발자는 오픈 소스의 혜택을 받고, 많은 개발자는 흥미로운 오픈 소스 프로젝트에 기여해 그 혜택을 되돌리려 함
- 기여 이유는 좋은 커뮤니티, 새 기술 학습, 낯선 코드베이스에서 어려운 기술 문제를 푸는 즐거움 등일 수 있음
- 오픈 소스 프로젝트의 코드 기여 장벽을 낮추면 훌륭한 개발자가 프로젝트를 찾을 가능성이 있음
- 기여자는 이슈 토론, 버그 수정, 문제 식별, PR 리뷰에 참여할 수 있음
- 모든 기여자가 구직 중인 것은 아니지만, 많은 사람은 풀타임으로 오픈 소스 코드를 다룰 수 있다는 전망에 끌릴 수 있음
- Supabase는 2년 넘게 운영하고 32명의 개발자를 채용한 뒤에야 아웃바운드 채용을 시작함
- 오픈 소스는 Supabase의 주요 인재 발굴 경로였고 앞으로도 그럴 예정임
- 원격·비동기 회사에서는 오픈 소스 채용 전략이 후보자의 역량을 스스로 드러내게 만들어, 해당 역량을 검증하기 쉬워짐
-
LeetCode와 과제형 테스트를 대체하는 실제 기여
- 개발자들이 다음 직장을 찾을 때 가장 크게 불만을 갖는 요소 중 하나는 인터뷰 과정에서 LeetCode 문제를 풀거나 과제형 테스트를 해야 하는 일임
- 이런 방식은 시간이 많이 들고 힘들며, 실제 업무에서 하게 될 일을 대표하지 않는 경우가 많음
- 누군가 저장소에 기여하면 이미 다음 자료가 생김
- 원격·비동기 환경에서 팀과 커뮤니티 구성원과 어떻게 소통하는지에 대한 사례
- 실제 코드 기여 사례
- 후보자도 회사 쪽을 볼 수 있음
- 팀이 코드 품질을 중시하는지 확인할 수 있음
- 효과적으로 소통하는지 볼 수 있음
- 좋은 기술 결정을 내리는지 판단할 수 있음
- Supabase 저장소를 통해 채용된 사람들은 스스로 없어서는 안 될 존재가 되었고, 기존 저장소 개발을 이끌거나 새 클라이언트 라이브러리와 SDK를 시작한 경우도 있음
- 이들은 Zoom에서 LeetCode 문제를 풀 필요가 없었음
소수 사용자 기능과 통합의 확장
- 스타트업을 만들 때는 가장 큰 문제만 해결할 시간이 있는 경우가 많음
- 빠르게 움직이려면 사용자 기반의 80% 가 요청하는 것에 집중해야 함 {p:80}
- 소수 사용자가 요청하는 기능은 무기한 뒤로 밀리기 쉬움
- 시스템이 오픈 소스라면 이런 사용자들이 직접 기능을 기여할 수 있어 소프트웨어의 유용성이 커짐
- 이런 효과는 통합과 어댑터에서 자주 나타남
- 사용자가 Azure 또는 Vercel 통합을 원할 수 있음
- 다른 누군가가 그 연결을 만들 개발 리소스를 제공하면 프로젝트 사용자 모두가 이익을 얻음
같은 바퀴를 반복해서 만들지 않기
- 오픈 소스가 없는 세계에서는 기술 회사들이 계속해서 바퀴를 다시 발명하게 됨
- Supabase는 새 프로젝트를 오픈 소스로 공개할 뿐 아니라, 새로 만들기 전에 기존 오픈 소스 프로젝트를 지원하려고 함
- 자동차 회사들이 독점 함수, 독점 UI 요소, 독점 윈도잉 라이브러리, 독점 운영체제, 독점 드라이버를 사용해 거의 보지 않을 오류 메시지를 표시하는 상황은 개발자 시간과 노력의 낭비임
- Supabase Launch Week는 팀과 커뮤니티가 지난 3개월 동안 작업한 결과의 집합이며, 오픈 소스 회사 운영의 장점은 커뮤니티의 진행 속도에서 드러남
- 자세한 내용은 Launch Week 4 post에서 확인할 수 있고, 참여하려면 Supabase GitHub를 방문할 수 있음