[오픈소스와 기업관계] Opensource 의 딜레마

Hyunjun Kim·2025년 7월 14일
0

Data_Engineering

목록 보기
115/153

1 Elasticsearch 오픈소스와 Elastic 회사의 역사

Elastic 회사에서 공개한 Elastic stack 제품과 Elastic 회사의 성장 스토리

Our Story

  • Elasticsearch는 2000년에 개발되었다.
  • ELK stack 으로 갖춰지기 까지는 10년 이상이 걸렸다.
  • 모든 유저가 쉽게 설치하고 관리할 수 있는 성능과 패키징을 갖추기 까지는 15년이 걸렸다.
  • 2019 년 Elastic 으로 상장했다. 이 때까지 여러 회사들을 인수합병 하면서 기술스택을 넓게하고, 사용성을 높여왔다.
  • 2021 년, SSPL과 Elastic 라이센스를 분리하고 third party 사업자들의 Elastic을 이용한 수익화를 막았다.

2 Opensource 의 딜레마

2.1 긴 라이프 사이클

오픈소스가 처음 공개되고, 개발자들의 공감을 얻을 때 까지 많은 시간이 걸린다. 공감을 얻는 데는 아이디어가 좋은 것만으로는 충분하지 않다. 코드가 잘 작성된 것으로도 충분하지 않다. 아이디어는 기존에 풀지 못하던 것을 획기적인 방식으로 풀 수 있어야 하고, 코드 베이스는 주요 기능을 충분히 잘 동작하도록 지원해야한다.

  • 전 세계적으로 소프트웨어 엔지니어가 많아지고, 엔지니어링의 수준이 높아지면서 완전히 처음부터 오픈소스로 꾸준히 개발되면서 인기나 명성을 얻게 되는 경우가 드물어지고 있다.
  • 어느 정도의 규모를 가진 회사나 조직에서 뛰어난 엔지니어어 팀이, 사용성이 좋은 수준까지 개발한 뒤에 공개된 오픈소스 프로젝트가 인기나 명성을 얻게 되는 경우가 많아지고 있다.

공감을 얻은 뒤에도 많은 환경에서 문제없이 돌아가고 설치가 쉽고 버그가 적게 관리되기 까지는 더 많은 시간이 걸린다. 여기에는 시간 뿐만 아니라 여러 사람들의 노력과 헌신이 필요하다. 대표적인 케이스가 아니라 엣지케이스들까지 이슈가 제보되고, 그것을 프로젝트 매니저가 꾸준히 관리해야한다. 이것은 아무리 코드를 깔끔하게 작성하고, git 을 잘 사용한다고해도 사람의 책임감과 헌신 없이는 오랜 시간 관리되기 어렵다. 오래된 프로젝트들이 많지만, 꾸준히 사용성이 좋아지고 꾸준히 발전하는 오픈소스와 소리소문 없이 사용자가 줄어들다가 사라지는 프로젝트의 차이는 여기에서 온다.

2.2 비용과 수익

긴 라이프사이클을 가지고 MongoDB, Elasticsearch와 같은 수준으로 좋은 기능, 좋은 성능 가지면서도 쉽게 설치할 수 있게 잘 패키징된 제품이 되었더라도 문제는 여전히 존재한다.

프로젝트와 코드가 성숙하고 오래된 만큼, 새로운 기능을 만들기도, 기존의 코드를 유지보수하기도 쉽지 않다는 것이다. 해당 프로젝트에 오래 참여하고 있는 사람의 수는 적고, 해당 프로젝트에 진입할만큼의 전문성을 가진 커미터도 적기 때문이다. 또한 이렇게 진입장벽이 높은 작업에 취미로 무료나 적은 보수로 봉사할 사람은 더더욱 적다. 개발 환경과 소프트웨어 요구사항은 날마다 변하므로 1년, 2년 활동이 없으면 20년된 프로젝트라도 사장되어버린다.

  • 전 세계적으로 가장 많이 사용하고, 가장 임팩트도 큰 개발도구인 OpenJDK도 결국 커뮤니티에의한 유지보수가 불가능해졌다.
    • 현재는 무료버전은 이클립스 재단 하에서 Temurin 으로 새롭게 관리되고 있다. 다만, 버전 업그레이드에 큰 어려움을 겪고 있다.
    • 그 외에는 모두 큰 벤더사에서 과거 OpenJDK 이후로 각기 다른 버전으로 관리하고 있다.

따라서 유지만을 위해서라도 고급 엔지니어링 인력이 프로젝트를 관리하는 것이 필요해진다. 여기서 비용이 많이 필요하게 된다. 단순히 해당 프로젝트에 대한 전문가로서 컨설팅 업무나 사업으로 수익을 내오던 개발자들이 본격적으로 license 제품을 내놓고, 기존 license 나 라이센스 범위를 변경하고, IPO까지 가게 되는 이유이다.

2.3 유료 버전의 딜레마

거대 오픈소스 프로젝트의 유지만을 위해서라도 기업의 형태가 필요하고, 수익이 필요하기 때문에 license 가 변경되고 과금이 필요해진다.

무료로 사용하던 기존의 사용자들의 저항과 오픈소스 태생의 정신으로 여전히 공개 소스코드로 개발하고 무료버전을 공개하지만, 기업 수준에서 필요한 보안, 성능, 전문 기능 등을 유료버전에만 사용할 수 있도록 제한을 두기 시작한다.

  • 유료버전의 차이를 지키기 위해, 무료로 개발할 수 있는데도 하지 않는 일들도 발생하기도 한다.
    • 외부 컨트리뷰터가 핵심 고급 기능을 무료 버전에 코드까지 작성을 해서 제안하더라도, 이해관계 때문에 받아주지 않는 일도 생긴다.

이 때부터 오픈소스 커뮤니티의 반발이 생긴다. 이 때 라이센스 정책을 강하게 가져가면 Elasticsearch 와 Opensearch 처럼 fork 를 떠서 완전히 다른 길을 가게되기도 한다.

  • Elasticsearch(stack)은 이중 라이센스로 변경되었다. 라이센싱 F&Q
    • 기본 배포판은 Elastic 라이센스로 유료이다.
    • SSPL로 소스코드를 직접 빌드해서 무료로 사용하고, 소스코드를 변경해서 사용한다면 공개해야한다. (GPLv3 기반의 copyleft)

2.4 유료 이후

이왕 수익화를 하기로 한 것, 제품의 수준과 수익을 더욱 높이기 위해 높이기 위해 유지보수 뿐만아니라 기본 오픈소스 프로젝트를 기반으로 다양한 제품을 출시해서 패키징, 기술 스택, 생태계를 만드는 것을 목표로 한다. 이를 위해서 더 많은 개발자가 필요하고 기업은 더 많은 돈을 필요로 한다.

Elastic 은 유로 사업을 시작한 뒤로, 짧은 시간 동안 급격히 제품의 종류가 많아지고 제품의 사용성과 기능이 좋아졌다.

오픈소스 기반의 제품을 쓰고 있는데 그 제품을 만들고 있는 회사, 기업이 있다,
그리고 그 메인 컨트리뷰터들이 그 기업 사람들이다 라고 하면 혹시 라이센스를 내가 침해하고 있는 건 아닌지 자세히 봐야 한다. 법적 분쟁까지 갈 수 있는 문제니까 유심히 봐야 함.

profile
Data Analytics Engineer 가 되

0개의 댓글