본 포스트는 영문 포스트 'The Ultimate Guide to Open Source'를 먼저 작성하고 국문으로 의역하여 내용이 조금 상이할 수 있습니다.
오픈 소스는 현대 소프트웨어 개발에 있어서 많은 리소스를 효과적으로 절감시키며 이제는 필요에 의해서가 아닌 필수적인 요소로 자리매김하고 있습니다. 특히 채용 전략 및 팀 문화 빌딩에 큰 역할을 하는 것부터 비즈니스 마케팅 전략에 활용되기도 하며, 발 빠르게 움직이는 스타트업들의 성공에 있어서 중추적인 역할을 하고 있습니다.
많은 팀과 회사가 제품 개발에 오픈 소스 소프트웨어를 적극적으로 활용함에 따라, 더 많은 사람들이 소프트웨어 개발 및 비즈니스 목표를 달성하는 데 있어 오픈 소스의 중요성을 인지하고 있습니다. 그러나 여전히 오픈 소스 생태계와 커뮤니티에 적극적으로 참여하는 방법에 더 많은 사람들이 익숙해질 필요가 있습니다.
이 포스트의 저자는 Android 및 Kotlin의 Google Developer Experts로 활동하고 있으며 skydoves라는 활동명으로 약 80개 이상의 오픈소스 프로젝트를 배포하여 운영하고 있습니다. 저자의 오픈소스 라이브러리들은 Google, Microsoft, Twitter, PayPal, Wikipedia, Azar 등 다양한 글로벌 기업의 제품 개발에 활용되고 있습니다. Maven 통계에 의하면 매년 1,000만 회 이상의 다운로드가 발생하고 있으며, 총 엔드포인트 디바이스 수는 10억이 넘어가는 것으로 추산되고 있습니다.
이 포스트에서는 저자의 다양한 실전 경험을 바탕으로 전반적인 오픈소스 생태계와, 라이프사이클, 또한 개인 및 조직에서의 성공적인 오픈 소스 전략에 대하여 살펴봅니다.
대체로 많은 사람들이 오픈 소스 하면 "무료 공개 코드" 혹은 "무보수 기여" 등을 떠올리곤 하지만, 오픈 소스 생태계는 단순히 코드를 공개하는 것보다 훨씬 더 복잡한 구조로 이루어져 있습니다.
'오픈 소스'라는 개념은 소스 코드뿐만 아니라 프로젝트를 운영하면서 발생하는 모든 이슈와 작업의 진행 상황에 대한 투명성을 제공하여 개인과 조직이 프로젝트에 참여하고 기여하도록 장려하는 것입니다. 따라서 오픈 소스의 '소스'는 메인테이너 간의 논의, 문서화, 프로젝트를 유지하기 위한 모든 노력들을 포함하며 '소스 코드' 보다 더 포괄적인 의미를 내포합니다.
이러한 투명한 접근성을 통해 누구나 오픈 소스 프로젝트를 탐색할 수 있으며, 오픈 소스 솔루션을 활용하는 여러 제품을 통해 다양한 개발자 경험과 사용 사례를 공유할 수 있습니다. 또한 오픈 소스 메인테이너와 소비자의 간의 활발한 소통을 통해 건설적인 커뮤니케이션 생태계를 조성합니다.
오픈 소스 생태계에서 가장 중추적인 역할을 하는 것 중 하나는 커뮤니티입니다. 투명한 커뮤니티는 메인테이너와 소비자 간의 토론에 참여하고, 사용자 경험을 공유하고, 오픈 소스 프로젝트를 개선하기 위한 새로운 접근 방식을 제안하도록 장려합니다.
오픈 소스 커뮤니티는 대표적으로 다음과 같은 세 가지 역할 군으로 구성됩니다.
메인테이너 (Maintainers): 오픈 소스 메인테이너는 소비자로부터 다양한 사용 사례와 실제 사용자 경험을 수집하고, 메인테이너가 직접 경험하지 못한 경험들로부터 인사이트를 얻을 수 있습니다. 이러한 인사이트들은 오픈 소스 프로젝트 유지 관리의 다음 단계를 결정하는 데 중요한 지침을 제공합니다.
소비자 (Consumers): 오픈 소스 소비자 또한 커뮤니티에서 중요한 역할을 합니다. 소비자는 조직, 개인 또는 다른 오픈 소스 프로젝트의 관리자가 될 수도 있습니다. 이들은 메인테이너 혹은 다른 소비자와 소통하여 그들이 직면한 복잡한 문제에 대해 논의하고, 프로젝트를 개선하기 위한 실용적인 접근 방식을 제안할 수 있습니다. 소비자들이 제기하는 토론과 피드백은 프로젝트에 코드를 직접적으로 기여하지 않더라도 메인테이너에게 매우 중요한 정보로 작용합니다.
잠재적 소비자 (Potential Consumers): 오픈 소스 커뮤니티는 잠재 소비자를 위한 훌륭한 참고서 역할을 수행할 수 있습니다. 봉착한 문제를 해결하기 위해 여전히 오픈 소스 솔루션을 찾고 있는 개발자들은 오픈 소스 커뮤니티 내에서 해당 솔루션의 사용 사례와 여러가지 정보를 탐색하여, 프로젝트의 호환성을 점검하고 본인들의 요구 사항에 부합한지 평가할 수 있습니다. 활발한 커뮤니티는 오픈 소스 솔루션이 장기적인 요구 사항에 적합한 선택인지 평가할 때 잠재 소비자에게 강력한 지표 역할을 합니다.
메인테이너로서 오픈 소스 프로젝트의 영향력을 확대하고 다양한 글로벌 프로젝트에서의 채택을 장려하려는 경우, 지속적인 오픈 소스 커뮤니티를 육성하고 커뮤니티 피드백을 수용하는 것은 필수 전략 중 하나입니다.
소비자로서 오픈 소스 프로젝트에 기여하고자 하시는 분들은, 오픈 소스 사용자 경험을 공유하여 커뮤니티에 적극적으로 참여할 수 있습니다. 여기에는 오픈 소스 솔루션을 사용하여 제품의 기능 개발을 어떻게 향상시켰는지에 대한 경험 등이 포함될 수 있으며, 이는 그 자체로써 귀중한 기여라고 볼 수 있습니다.
오픈 소스를 처음 시작하는 많은 분들이 처음 코드를 '공개'하거나 열린 장소에서 토론에 참여하는 것을 주저하는 경우가 많습니다. 이러한 망설임은 본인의 코드나 의견이 본인의 개발 능력 혹은 전반적인 경력 등을 대변할 수 있다는 우려에서 발생하기도 합니다.
가장 중요한 것은, 완벽하기 위해 노력할 필요가 없다는 것입니다. 세상에 '완벽한 코드'나 '완벽한 의견'이라는 것은 없습니다. 세계적으로 알려진 빅 테크 회사와 유명한 조직에서도 수많은 오류와 실수를 범하고 있고 결과적으로 오픈 소스도 사람에 의해서 만들어진다는 것입니다.
이러한 증상은 소위 '공개' 공포증이라고 불리는데, 오픈 소스를 처음 시작할 때 매우 자연스러운 현상입니다. 따라서 몇 가지 스몰 스탭을 통해 이러한 두려움을 이겨내고 오픈 소스 커뮤니티에 조금씩 참여해보시는 것을 권장드립니다. 오픈 소스 활동을 통해서 전 세계적인 엔지니어들과 협력하면서 귀중한 경험을 얻을 수 있기 때문에 충분히 이겨낼 가치가 있는 증상이며, 이를 통해 무한히 성장할 수 있는 기회가 되셨으면 좋겠습니다.
'오픈 소스 기여'라는 것은 환상적인 코드를 작성하거나 프로젝트의 전반적인 아키텍처를 훌륭하게 개선하고 버그를 해결하여 코드베이스를 향상시키는 것만을 수반하는 것은 아닙니다. 오픈 소스 프로젝트에 기여에 입문하는 가장 좋은 방법은, 커뮤니티에 참여하고 본인이 관심 있는 오픈 소스 프로젝트를 서포트하기 위해 지금 수행할 수 있는 가장 사소한 작업을 탐색하는 것입니다.
실제 오픈 소스 라이브러리를 사용하면서 직면한 버그가 있거나, 사용자 경험을 향상시키기 위한 제안이 있는 경우에는 GitHub에 이슈 생성을 통하여 프로젝트에 적극적으로 참여하실 수 있습니다. 대부분의 오픈 소스 메인테이너는 여러분들의 기여를 기꺼이 검토하고 개선하기 위해 노력할 것 입니다.
이미 오픈 소스 라이브러리를 다방면에서 활용하고 있다면 본인이 개발 중인 제품의 이름, 프로젝트 내부에서의 라이브러리 활용 사례 등과 같은 세부 정보와 함께 사용자 경험을 공유하면 메인테이너에게 귀한 인사이트를 제공할 수 있습니다. 이러한 의견 하나하나 오픈 소스 프로젝트를 발전시키는 초석이 되어 추후의 프로젝트 개선에 중요한 역할을 하게 됩니다.
혹은 조직 내에서 사용하는 오픈 소스 라이브러리 목록을 작성하고 애플리케이션 내에서 해당 라이브러리들의 라이선스를 투명하게 공개하는 것 또한 오픈 소스 커뮤니티에 기여하는 또 다른 방법입니다. 다른 활동에 비해 다소 수동적으로 보일 수 있지만, 이러한 기여 하나하나가 잘 조직화되고 번성하는 오픈 소스 생태계를 육성하는 데 중요한 역할을 합니다.
코드의 투명성을 주저하게 되는 또 하나의 이유는 본인의 코드가 다른 사람들에 의해 평가되는 것에 대한 두려움이나, 다른 개발자들로부터 매몰찬 피드백을 받을 가성능 때문입니다. 하지만 실제로 다른 개발자들로부터 피드백을 받는 것은 의외로 쉽지 않습니다. 특히 오랜 세월 동안 오픈 소스를 적극적으로 유지 관리해온 게 아니거나, 커뮤니티에 광범위하게 참여하지 않은 경우에는 더욱 그렇습니다.
만약 어떤 개발자가 시간을 내어 피드백을 남기거나 코드의 문제점을 지적한다면 오히려 이를 좋은 기회로 생각해볼 수 있습니다. 이 피드백을 건설적인 토론의 시작점으로 발판삼아 다양한 관점과 환경에서 본인이 작성했던 코드를 재평가 해볼 수 있습니다. 이는 개개인 뿐만 아니라, 본인의 프로젝트의 발전을 위해서도 좋은 성장의 기회로 작용할 수 있습니다.
코드를 이미 GitHub에 공개했다면 친구, 동료 개발자 및 다양한 커뮤니티에 공유하고 피드백을 받아보는 것은 어떨까요? 처음 시도는 굉장히 두려울 수도 있지만, 맛있는 요리를 만들고 싶으면 많은 사람들의 시식 평가가 필요한 것 처럼, 좋은 코드를 작성하고 싶다면 적극적으로 본인의 코드를 사용할 개발자들로부터 리뷰를 구해야 한다는 것을 명심해야 합니다.
오픈 소스 소프트웨어는 개발자 타깃으로 하는 '제품'입니다. 성공적인 오픈 소스 소프트웨어를 만들기 위해서는 그만큼 장기간에 걸쳐 체계적이고 지속적인 관리가 요구됩니다. 따라서 프로젝트에 따라서 장기적으로 적합한 생명주기를 적용하는 것이 중요합니다.
아직 적합한 오픈 소스 생명주기를 찾기 못했다면, 이 포스트의 저자가 작성한 Becoming A Successful Android Librarian (혹은 Youtube: Becoming an Android librarian)에서 소개된 오픈소스 라이프사이클을 참고하실 수 있습니다. 이 라이프사이클은 순환적인 4가지 단계로 구성되어 있고, 오픈 소스 개발의 시작부터 배포까지 효율적으로 관리할 수 있는 지침을 제공합니다.
제공된 라이프사이클은 디자인부터 릴리스까지의 단계를 포함하며, 이 주기는 새로운 릴리스마다 각 단계를 반복합니다. 각 단계는 다음과 같은 목적을 수행합니다.
디자인 (Design): 이 초기 단계에서는 아이디어를 청사진으로 옮기고 프로젝트의 실행 가능성을 평가합니다. 라이프사이클에서 가장 중요한 단계로, 실질적인 오픈 소스 디자인과 기획이 이후 단계에서 요구되는 리소스를 줄이는데 큰 역할을 합니다. 특히 구체적인 스펙을 구현하기 전에 APIs (Application Programming Interfaces)를 미리 설계하는 경우 개발 단계의 부담을 크게 줄일 수 있습니다. 만약 API 및 아키텍처 설계에 익숙하지 않으시다면 아이디어를 수집하고 각 항목의 실행 가능성을 확인하는 것만으로도 충분합니다.
개발 (Develop): 기술과 가장 밀접한 관련이 있는 개발 단계는, '구현' 및 '테스트'로 세분화할 수 있습니다. 구현은 디자인 단계에서 미리 정의해 놓았던 스펙에 따라 핵심 기능을 개발합니다. 이 단계에서 API 설계나 개발 방식은 새로운 인사이트나 접근 법에 따라 언제든지 변경될 수 있습니다. 테스트는 직접 구현한 핵심 기능이 올바르게 동작하는지 확인하는 것에 초점을 두며, 이를 위해 다른 프로젝트와의 integration test 혹은 unit test 코드를 작성하여 핵심 구현이 올바르게 동작하는지 검증합니다.
준비 (Prepare): API가 어느정도 테스트 되었다면, 해당 API를 public repository에 출시하기 위한 준비가 필요합니다. 앞서 다루었듯이, 오픈 소스는 단순히 소스 코드만을 공개하는 것이 아닙니다. 오픈 소스 소비자들은 프로젝트가 그들의 요구 사항에 적합한지를 평가하기 위해, 메인테이너가 제공하는 정보를 바탕으로 적합성을 판단해야 합니다. 따라서 API에 대한 가이드 문서 혹은 README 파일을 포함한 포괄적인 오픈 소스에 대한 목적과 API 세부사항을 제공함으로써 소비자들과 상호 작용해야 합니다. 외부 기여자를 위해 issue 및 pull-request 템플릿을 생성하고, API와 관련된 논쟁을 촉진하고 피드백을 수집하기 위해 GitHub의 GitHub Discussion 활용해 볼 수도 있습니다.
릴리스 (Release): 오픈 소스 출시 및 배포가 준비가 된 경우, 이제 해당 패키지를 공개 저장소에 게시하여 사용자가 쉽게 액세스하고 프로젝트에 통합할 수 있도록 해야 합니다. 라이프사이클의 마지막 단계이며, 오픈 소스라는 제품을 시장에 내놓기 전에 문제가 없는지 확인하기 위해 테스트와 유효성 검사를 더블 체크하고, 원활한 릴리스를 위한 CI 셋업 등 다양한 기타 작업들을 수반합니다.
여기서 소개된 오픈 소스 라이프사이클은 저자의 경험을 바탕으로 만들어진 제안일 뿐입니다. 결국 본인의 오픈 소스를 운영하면서 프로젝트의 환경과 상황에 맞는 본인만의 적절한 라이프사이클을 만들고 적용해 나가는 것을 권장드립니다. 본인이 선택한 라이프사이클을 통해서 오픈 소스 프로젝트의 안정성을 확립한 후에는 해당 프로젝트를 다양한 커뮤니티에 공유하여 개발자들과의 소통을 시도하고 세상에 잘 알리는 것 또한 중요한 전략입니다.
많은 사람들은 일반적으로 '마케팅'을 주로 서비스 제품에 기반한 전략이라고 생각합니다. 오픈 소스 또한 개발자를 위해 설계된 '제품'입니다. 따라서 사용자를 모으기 위해서는 적절한 마케팅 전략도 병행되어야 합니다. 오픈 소스 소프트웨어를 게시하고 수명주기를 적용하고 나면, 가능한 한 많은 잠재적 사용자에게 다가가는 것을 목표로 다양한 커뮤니티 내에서 솔루션을 적극적으로 홍보하는 것이 중요합니다.
GitHub Discussion을 통해 프로젝트를 지속적으로 유지 관리하고, 새로운 업데이트를 출시하고, 전용 커뮤니티를 구축함으로써 자연스럽게 소비자들을 GitHub 저장소로 끌어들일 수 있지만, 다른 플랫폼 또한 적극적으로 활용하여 잠재적 소비자들을 모아볼 수 있습니다.
일반적인 접근 방식 중 하나는 오픈 소스 프로젝트에 관한 블로그 포스트를 작성하는 것입니다. 요즘 많은 사람들이 개발 관련 지식을 공유하는 Medium이라는 플랫폼이 대표적인 예입니다.
블로그 포스트를 작성하는 것은 복잡한 문제를 해결하고자 하는 소비자들에게 본인 오픈 소스 라이브러리의 실질적인 장점을 어필할 수 있는 좋은 매개체가 됩니다. 이를 통해 라이브러리의 흥미로운 fun facts를 공유하거나 다양한 스토리텔링을 통하여 형식화된 문서를 읽는 것보다 더 효과적으로 관심을 불러일으킬 수 있습니다.
또한 Twitter, LinkedIn과 같은 플랫폼이나 오픈 소스 프로젝트의 토픽과 연관있는 커뮤니케이션에 적극적으로 참여할 수 있는 개발자 커뮤니티를 활용할 수도 있습니다. 오픈 소스의 기본적인 청중은 개발자이기 때문에 적절한 개발자 커뮤니티를 선택하는 것도 중요합니다.
단연 저자가 오랜 시간 동안 오픈 소스 활동을 하면서 가장 많이 받았던 질문 중 하나는, "오픈 소스를 통한 수익은 얼마나 되나요?" 입니다. 직접 질문을 하지 않았어도 아마 많은분들이 궁금해하는 주제일 것이라고 생각합니다. 돈은 소중하니까
오픈 소스는 프로젝트의 소스를 투명하게 열어놓고 커뮤니티를 장려함으로써 프로젝트를 함께 성장시킨다는 관점에서, 오픈 소스 자체만 놓고 보았을 때는 수익화를 상상하기 어렵습니다. 하지만 다양한 수익화 전략이 병행된다면 여러분들이 상상하는 것 이상으로 개인으로써, 혹은 기업으로써의 수익화를 실현하실 수 있습니다.
세계 최대 오픈 소스 플랫폼인 GitHub은 본인이 다방면에서 활용하고 있거나 유망하다고 생각하는 오픈 소스 프로젝트에 투자하고 금전적으로 지원할 수 있는 GitHub Sponsors라는 프로그램을 도입하였습니다. 이는 오픈 소스 메인테이너들에게 물질적인 지원을 통해 더 많은 자원을 할애할 수 있도록 도와주는 방식으로 또 다른 기여로서의 의미를 갖습니다.
현실적으로 개인으로서 오픈 소스 프로젝트를 수익성 있는 프로젝트로 전환하려면 후원할 여지가 있는 소비자(개인 및 회사)를 포함하여 상당한 규모의 사용자 기반을 구축해야합니다. 가장 보편적인 전략 중 하나는 오픈 소스 프로젝트의 목적과 일치하는 관련 업계의 회사로부터 후원을 확보하는 방법입니다.
유기적으로 확보된 사용자는 해당 토픽과 관련 없는 청중을 타겟팅 하는 것보다 전환율이 훨씬 더 높기 때문에 후원사에 상당한 마케팅적인 가치를 제공할 수 있습니다. 따라서 오픈 소스를 후원하고 제품을 홍보하려는 회사들에게 적극적으로 접근하여 후원사를 확보하는 것도 좋은 전략입니다.
아래는 저자가 지난 달 한 투자 기업으로부터 GitHub Sponsors를 통해 후원받은 사례이며, 오픈 소스 후원 기업 목록에 추가하고 다양한 플렛폼을 통해 해당 기업을 shout-out 해주는 것으로 해당 기업의 활동을 세계적으로 널리 알리는데 큰 역할을 하였습니다.
이는 오픈 소스 개발자와 본인들의 존재성을 커뮤니티에 알리고 싶은 기업 간의 win-win 전략이 될 수 있습니다. 오픈 소스 소프트웨어의 의존도가 높은 기업들에게 적극적으로 제안서을 보내 다양한 후원사를 확보하고, 더 나아가 계약관계를 형성할 수도 있습니다. 이 처럼 개인이 오픈 소스를 통하여 수익화를 달성할 수 있는 방법은 점차 다양해지고 있습니다.
저자가 속한 Stream이라는 기업에서는 팀에서 적극적으로 활용하고 있는 오픈 소스라던지, 사용하지 않더라도 제품의 기술과 관련있는 오픈 소스들을 적극적으로 후원하면서 다양한 마케팅적인 효과를 경험하고 있습니다. 이는 SDK라는 제품의 성격상 개발자들을 대상으로 하는 마케팅(Developer Marketing)이 상당히 유리하기 때문입니다.
이러한 오픈 소스에 대한 기업들의 전략 변화와 GitHub Sponsor의 출시로 인해, 최근에는 디지털 노마드 생활을 즐기는 풀타임 오픈 소스 개발자를 심심찮게 발견하는 것이 가능합니다. 단순히 수익을 포기하면서 취미성으로 개발하는 것이 아닌, 연평균 원화 기준 1-2억 이상의 수익을 창출해 내면서 동시에 오픈 소스 생태계에 더욱더 활발하게 기여하는 오픈 소스 개발자가 증가하고 있습니다.
한편, SDK 개발과 관련된 포지션을 구직할 때 다양한 오픈 소스 개발 경험을 바탕으로 커리어로서 개인 소득을 인상할 수 있는 기회를 모색할 수도 있습니다. 오픈 소스 라이브러리 개발을 꾸준히 해왔다면, 비슷한 제품 라이프사이클과 접근 방식을 가진 SDK 개발에 있어서 상당한 도움이 되기 때문입니다.
많은 회사에서는 프로젝트의 잠재적 코드 유출에 대한 우려로 인해 오픈 소스 생태계 참여를 멀리하고 복잡한 오픈 소스 라이센스 문제를 피하려는 양상을 보이고 있습니다. 또한 B2B 시나리오에서는 고객과의 거래에서 발생하는 2차적인 문제 등이 우려될 수 있습니다.
그럼에도 불구하고 오픈 소스 프로젝트는 비즈니스 관점에서 수많은 이점을 제공합니다. 한 가지 중요한 이점은 강력한 브랜드 입지를 구축할 수 있는 기회입니다. 뛰어난 오픈 소스 프로젝트를 구축하면 기업은 개발자 커뮤니티 내에서 브랜드의 영향력을 확장할 수 있어 개발자 마케팅을 위한 효과적인 전략이 됩니다.
대부분 청중의 범위에는 잠재 고객뿐만 아니라 미래의 잠재적 '직원'도 포함됩니다. 이는 오픈 소스 프로젝트의 매력적인 요소를 통하여 추후 채용 과정에 있어서 긍정적인 효과를 볼 수 있습니다.
올해 저자의 팀에서 Android SDK Developer와 Android Team Lead 포지션에 채용을 했었고, 지원자 600명 중 약 80%가 Stream의 투명한 오픈 소스 문화와 헌신적인 커뮤니티의 기여 활동을 보고 지원했다고 응답했습니다.
만약 여러분들의 조직에서도 오픈 소스 프로젝트에 관심이 있지만 어디서부터 시작해야 할지 잘 모르겠는 경우, 가장 쉬운 접근 방식은 팀 내의 프로젝트에서 가장 작은 컴포넌트를 분리하고 보다 쉽게 커스텀 할 수 있도록 API를 빌딩하는 것부터 시작해 볼 수 있습니다.
개발하려는 라이브러리가 처음에는 상대적으로 아주 사소한 문제를 해결하더라도 일단 시장에 내어놓고 꾸준히 개선하여 개발자들 사이에서 점진적으로 채택되기 시작하면 좋은 피드백을 받을 수 있고, 지속적인 커뮤니티와의 상호작용을 통해 프로젝트의 스케일을 점차 키워보실 수 있습니다.
결과적으로 라이브러리 코드의 출발점이 되었던 프로젝트 또한 이 이점을 누릴 수 있습니다. 라이브러리를 개선하는 과정에서 알지 못했던 버그를 발견하기도 하고, 더 나아가 기존 컴포넌트와 관련된 코드를 걷어내고 라이브러리를 사용하게 됨으로써, 스스로 관리자이자 소비자라는 이중 역할을 통해 오픈 소스 생태계를 더 잘 이해하고 적극적으로 기여할 수 있는 훌륭한 출발점이 됩니다.
Stream은 Chat Messaging, Video & Audio 및 Activity Feeds와 같은 다목적 SDK를 개발하는 SaaS 회사입니다.
다른 SaaS 플랫폼과 Stream의 가장 큰 차이점 중 하나는 오픈 소스 프로젝트에 대한 강력한 기여와 지원입니다. Stream은 핵심 제품을 포함한 다양한 프로젝트를 GitHub에 게시하여 오픈 소스 생태계에 적극적으로 기여합니다.
SDK를 오픈 소스 프로젝트로 게시하는 데에는 각자 장단점이 있지만, Stream은 투명성을 제공한다는 점에서 몇 가지 뚜렷한 이점을 취하고 있습니다. 많은 Stream의 고객은 SDK의 오픈 소스화를 통한 투명성 때문에 Stream SDK를 선택했다고 응답했습니다. 특히 Stream의 내부 구현체를 들여다볼 수 있고, 더 나아가 해당 구현체를 참조하여 본인들의 커스터마이징을 더욱더 유연하게 가져갈 수 있다는 점을 높이 평가하고 있습니다.
저자가 Stream에서 자주 사용하는 Developer Marketing 전략 중 하나는, Stream SDK가 통합된 흥미로운 프로젝트를 개발하여 기업 마케팅과 오픈 소스 생태계에 기여하는 두 가지 이점을 동시에 취하는 것입니다. 가장 대표적인 사례는 저자가 출시한 chatgpt-android, WhatsApp Clone Compose, WebRTC Android 등의 오픈 소스 프로젝트들이 있습니다.
Stream은 이러한 오픈 소스 활동을 통해 최신 기술들을 증명하고 개발자 커뮤니티에 다양한 지식을 공유하는 데에 초점을 두고 있으며, Stream의 SDK를 함께 사용함으로써 Stream Dashbord로 직접적인 전환율을 높이는 훌륭한 전략으로서도 작용합니다. 이는 오픈 소스 생태계와 마케팅 관점 모두에서 이점을 취할 수 있습니다.
여러분들의 팀에서도 유사한 전략을 고려하고 오픈 소스 생태계에 참여하여 회사나 제품을 마케팅하는 것을 목표로 하고 계신다면, Stream의 오픈 소스 프로젝트가 영감이 될 수 있기를 바랍니다.
이번 포스트에서는 저자의 경험을 바탕으로 오픈 소스에 대한 전반적인 생태계, 메인테이너를 위한 오픈 소스 라이프사이클에 대한 지침, 오픈 소스 프로젝트를 개인과 기업 모두를 위해 성공적인 벤처로 전환하기 위한 전략에 대하여 살펴보았습니다. 이 포스트를 통하여 어러분이 오픈 소스 세계에 한 발짝 더 가까이 다가갈 수 있기를 바라며, 한걸음 더 나아가 여러분들이 오픈 소스 생태계에 발돋음 할 수 있는 영감이 되었기를 바랍니다.
즐거운 코딩 되시길 바랍니다!
너무나도 멋진 관점입니다. 오픈소스가 더 많이 발전하면 좋겠습니다^^
좋은 글 적어주셔서 감사합니다.