Hacker News

Nobody pays for FOSS, we can force them to

아무도 FOSS에 돈을 내지 않습니다. 돈을 내게 만들 수 있습니다

오픈소스 라이선스에 요금을 붙이면 포크에 밀리지만, 기업은 이미 패키지 레지스트리와 공급망 보안에 큰돈을 지불합니다. 글은 레지스트리가 기업 사용량을 과금하고 매출 일부를 의존 패키지 유지관리자에게 자동 배분하자고 제안합니다.

AI 요약

이 글은 오픈소스 소프트웨어(FOSS)의 경제 구조가 왜 유지관리자에게 돈을 전달하지 못하는지 분석하고, 패키지 레지스트리(registry)를 과금 지점으로 삼는 방안을 제안합니다. 글쓴이는 2013년부터 오픈소스 경제를 다룰 글을 구상했고, 오랫동안 문제를 설명할 방법을 찾지 못하다가 기업이 이미 오픈소스 공급망에 비용을 지불하고 있다는 사실에서 논지를 정리했다고 말합니다.

■ 무료 코드가 이기는 구조

글은 진화생물학의 매-비둘기 모델(hawks and doves)로 오픈소스와 독점 소프트웨어를 설명합니다. 폐쇄형 소프트웨어는 코드를 공개하지 않고 희소성을 만들어 높은 가격을 받는 매에 가깝습니다. 오픈소스는 코드를 공유하고 다른 프로젝트가 제공하는 코드도 함께 활용하는 비둘기에 해당합니다. 소프트웨어 시장에서 안정적으로 자리 잡은 전략은 MIT, BSD, Apache처럼 누구나 상업적으로도 무료 사용 가능한 라이선스라고 봅니다.

조금 덜 관대한 라이선스로 바꾸려던 프로젝트는 완전한 무료 라이선스를 유지한 경쟁 프로젝트와 포크에 밀렸습니다. 2017년 Apache Software Foundation이 React의 BSD+Patents 라이선스를 받아들이지 않자 WordPress가 React 사용을 중단했고, Facebook은 프로젝트가 사라지는 상황을 피하려고 몇 주 만에 MIT 라이선스로 되돌렸습니다. 2021년 Elastic이 Elasticsearch를 source-available 라이선스로 바꾸자 Amazon은 OpenSearch를 포크했고, OpenSearch는 Linux Foundation으로 넘어가 수천 명의 기여자를 모았습니다. Elastic은 2024년 다시 오픈소스 라이선스로 돌아갔습니다. HashiCorp의 Terraform 변경 뒤에는 OpenTofu가 등장해 Linux Foundation에 합류했고, HashiCorp는 IBM에 인수됐습니다. Redis가 2024년 3월 라이선스를 바꾼 뒤에는 Valkey가 일주일 안에 주요 클라우드 사업자를 모았고, Redis는 2025년 5월 AGPL을 다시 적용했습니다.

글쓴이는 이런 사례가 자유 소프트웨어 이념 때문만은 아니라고 봅니다. 라이선스 단계에서 코드를 유료화하면 경쟁자가 코드를 포크해 무료로 배포할 수 있기 때문입니다. 무료 소프트웨어는 사용자와 점유율을 얻고, 폐쇄형 소프트웨어는 수익을 얻습니다. Android가 시장점유율을 차지하고 iOS가 이익을 크게 내는 것처럼, 두 모델이 서로 다른 방식으로 성공하는 구조입니다.

■ 유지관리자의 번아웃이 균형을 떠받칩니다

문제는 무료 계층을 실제로 유지하는 사람들의 조건입니다. Tidelift의 2024년 조사에서 오픈소스 유지관리자의 60%가 작업 대가를 받지 못했습니다. 무급 유지관리자 가운데 61%는 혼자 일합니다. 전체 유지관리자의 약 60%는 프로젝트를 그만뒀거나 그만둘 생각을 해봤고, 생활 변화와 흥미 상실, 번아웃을 이유로 들었습니다.

Sonatype는 2023년 120만 개 오픈소스 프로젝트 가운데 적극적으로 유지되는 프로젝트가 11%뿐이라고 집계했습니다. Linux Foundation의 Census II는 가장 많이 사용되는 패키지 50개에서 코드의 80% 이상을 작성한 개발자가 136명이라고 분석했습니다. Harvard 연구는 오픈소스가 사라지면 기업이 이를 대체하는 데 8조 8,000억 달러를 지출해야 한다고 추산했고, 개발자 5%가 오픈소스 가치의 96%를 만든다고 봤습니다.

글쓴이는 npm에서 5년간 일하며 이런 구조를 지켜봤다고 말합니다. JavaScript 생태계에는 소수의 유지관리자가 만든 작은 패키지가 매우 많은데, 이 패키지들이 기업의 운영 시스템 의존성 트리 아래쪽을 받칩니다. 2024년 발견된 xz 백도어는 이 취약성을 보여주는 사례입니다. 거의 모든 Linux 시스템에 들어가는 압축 라이브러리의 유지관리자가 작업 부담을 호소하던 중, 가짜 기여자가 2년에 걸쳐 접근 권한을 넘겨받았습니다. 백도어는 SSH 접속이 평소보다 약 0.5초 느려진 사실을 Microsoft 엔지니어가 알아차리면서 발견됐습니다.

글쓴이는 이를 시스템 붕괴라고 부르지 않습니다. 유지관리자가 번아웃되면 다른 사람이 넘겨받고, 그 사람도 다시 번아웃되는 상태가 오픈소스 생태계가 오랫동안 유지되는 방식이라고 설명합니다. 시스템은 무너지지 않았지만, 사람이 소진되는 비용을 포함한 상태로 안정됐다는 주장입니다.

■ 문제를 키운 것은 속도입니다

초기 Linux 커널은 성장 속도가 느렸기 때문에 개발자가 밤과 주말을 써서 일부를 관리해도 됐습니다. 웹과 npm이 등장한 뒤에는 수많은 작은 모듈이 짧은 기간에 생겼고, 공개된 지 몇 주 만에 기업의 운영 시스템에서 필수 의존성이 됐습니다. 소프트웨어의 중요도가 기관이 이를 발견하고 자금을 마련하는 속도보다 빠르게 커졌습니다.

보안 문제의 확산 속도도 빨라졌습니다. 인기 라이브러리의 취약점은 며칠 안에 악용되고 수만 개 기업에 동시에 영향을 줍니다. 인기 패키지의 유지관리 비용은 커졌지만, 유지관리자에게 돌아가는 직접 수입은 여전히 0달러에 가까웠습니다. 글쓴이는 개발자가 소프트웨어를 무료로 만드는 행위 자체를 줄이거나 덜 관대하게 바꾸자는 해법을 거부합니다. 개발자는 아무도 듣지 않아도 노래하듯 소프트웨어를 만들기 때문입니다. 문제는 유용한 소프트웨어를 무료로 만든 사람에게 두 번째 무급 직업을 보상으로 주는 구조라고 말합니다.

■ 지금까지의 자금 조달 방식

후원과 팁은 일부 유명 유지관리자에게 집중됩니다. GitHub Sponsors는 2026년 7월 누적 지급액 1억 달러를 넘겼지만, 오픈소스가 대체해야 할 가치로 언급된 8조 8,000억 달러와 비교하면 작습니다. Open Collective, Patreon, Ko-fi도 비슷한 멱법칙 분포를 보이며, 중앙값에 가까운 유지관리자가 얻는 돈은 식사비 수준이라고 설명합니다.

Linux Foundation, Apache Software Foundation, OpenJS Foundation, Python Software Foundation 같은 재단은 직원과 행사, 인프라에 예산을 씁니다. Tidelift 조사에서 재단으로부터 돈을 받은 유지관리자는 3%, 정부로부터 돈을 받은 사람은 1%뿐이었습니다. Google의 오픈소스 조직, Microsoft의 FOSS fund, Sentry Open Source Pledge도 기업의 자발적 기부에 기대며 규모를 키우지 못합니다. Sentry의 제안은 개발자 1명당 연 2,000달러를 내도록 하며 2024년 약 130만 달러가 약정됐습니다.

보안 비용을 따로 지불하는 방식도 등장했습니다. Tidelift는 패키지를 안전하게 유지하는 유지관리자에게 돈을 주고 기업에 보증을 판매했지만 2024년 12월 Sonar에 인수됐습니다. OpenSSF의 Alpha-Omega는 재단 내부 보안 인력에 연간 500만~600만 달러를 지원합니다. 독일의 Sovereign Tech Fund는 2022년부터 60여 개 프로젝트에 2,400만 유로 이상을 지원했지만, 한 국가의 단일 기금에 머뭅니다. 이 방식들은 모두 기업이나 정부가 자발적으로 지불해야 하며, 돈을 내지 않은 기업도 같은 소프트웨어를 사용한다는 공통점이 있습니다.

■ 기업은 이미 오픈소스 공급망에 돈을 냅니다

글쓴이가 관점을 바꾼 계기는 기업이 오픈소스에 돈을 내지 않는다는 전제가 틀렸다는 사실입니다. 기업은 이미 상당한 금액을 지불하지만, 패키지를 만드는 유지관리자가 아니라 공급망을 관리하는 회사에 지불합니다.

JFrog는 빌드 서버와 공개 패키지 레지스트리 사이에 놓이는 사설 미러 Artifactory를 판매합니다. 2025년 매출은 5억 3,200만 달러로 전년보다 24% 늘었습니다. 의존성 취약점을 검사하는 Snyk의 연 매출은 약 3억 2,600만 달러입니다. 컨테이너 이미지 레지스트리를 운영하는 Docker는 2억 700만 달러, 보안 강화 오픈소스 이미지를 판매하는 Chainguard는 약 4,000만 달러에서 1억 달러 매출을 목표로 성장했습니다. Maven Central과 Nexus를 운영하는 Sonatype에 따르면 Maven Central 트래픽의 86%는 클라우드 사업자에서 발생합니다. Sonar가 인수한 Tidelift와 Socket을 포함하면 공급망 보안 시장 규모는 연간 10억 달러를 넉넉히 넘습니다.

기업이 구매하는 상품은 안정적인 무료 코드 공급입니다. 레지스트리가 중단돼도 빌드가 실패하지 않도록 패키지를 캐시하고, 의존성을 검사하고, 서명하며, 코드가 원래 내용과 같은지 확인합니다. Log4Shell 같은 문제가 발생하면 수천 개 서비스 가운데 어느 곳이 영향을 받는지 한 시간 안에 찾습니다. 기업은 직접 만든 코드가 아닌 소프트웨어에 의존해야 하지만 그 출처와 상태를 직접 확인하기 어렵습니다. 공급망 기업은 이 불안을 해결하지만, 실제 코드를 더 안전하게 만드는 유지관리자에게는 대가가 돌아가지 않습니다.

■ 레지스트리를 과금 지점으로 삼자는 제안

글쓴이는 코드 게임과 공급 게임을 나눠야 한다고 말합니다. 코드 게임에서는 무료가 이깁니다. 코드는 복사할 수 있으므로 유료 라이선스를 붙이면 무료 포크가 등장합니다. 공급 게임에서 기업이 사는 것은 코드 자체가 아니라 출처를 신경 쓰지 않아도 되는 기본 공급(default)입니다. 이 게임에서는 편리한 기본값을 가진 서비스가 돈을 받을 수 있습니다.

Docker 사례가 근거로 제시됩니다. Docker Hub는 2020년 11월 익명 사용자와 무료 사용자의 풀(pull)에 제한을 걸었습니다. 2021년 8월에는 직원 250명 초과 또는 매출 1,000만 달러 초과 기업에 Docker Desktop을 유료화했습니다. 개인, 소규모 기업, 오픈소스 프로젝트에는 무료 정책을 유지했습니다. Podman과 containerd 같은 무료 대안이 있었지만 Docker 매출은 2020년 약 1,200만 달러에서 2021년 5,000만 달러 이상, 2024년 2억 700만 달러로 늘었고 유료 좌석은 100만 개를 넘었습니다. 개발자 반발 뒤 2025년 풀 횟수에 따른 소비량 과금은 취소했습니다. 기업에 구독료를 청구하는 방식은 작동했지만, CI 재실행마다 금액이 오르는 방식은 받아들여지지 않았다는 설명입니다.

제안은 세 부분입니다. 첫째, npm, PyPI, Docker Hub, Maven Central 같은 레지스트리가 기업 사용량을 측정하고 기업에 구독료를 청구합니다. 개인, 학생, 소규모 팀, 오픈소스 프로젝트는 계속 무료로 이용합니다. 기업은 이미 JFrog나 Docker 같은 공급망 서비스에 비용을 지불하므로 새로운 예산 항목을 만들기보다 기존 청구서의 수취인만 바꾸는 구조입니다.

둘째, 매출의 고정 비율을 로열티로 정해 패키지에 배분합니다. 재단이나 심사위원회에 신청하는 방식이 아니라, 유료 고객의 의존성 트리에 등장한 모든 패키지에 비례해 매달 자동 지급합니다. 지급액은 유료 고객 수와 의존 관계를 기준으로 계산합니다. 글쓴이는 crypto를 쓸 필요 없이 데이터베이스로 처리하면 된다고 말합니다. thanks.dev는 이미 의존성 트리 기반 비례 배분을 구현했고 Flossbank도 2020년에 비슷한 지급 부분을 만들었습니다. 지금까지는 수금과 지급을 같은 시스템에 연결한 사례가 없었다는 설명입니다.

셋째, 이 구조를 운영하는 주체는 레지스트리 도메인을 소유한 기업이어야 합니다. 중요한 레지스트리는 약 12개이며, 유지관리자는 이미 자신이 관리하는 패키지 레지스트리에 계정과 이름을 갖고 있습니다. 지급 수단도 등록돼 있거나 한 가지 입력만 추가하면 됩니다. 돈을 낼 기업과 돈을 받을 유지관리자를 찾는 일이 이미 같은 데이터베이스 안에서 해결돼 있다는 주장입니다. GitHub는 npm과 GitHub Sponsors를 모두 소유하고 있고, JFrog와 Sonatype은 이미 기업에 공급망 비용을 청구하므로 이 기능을 추가할 위치에 있다고 제시합니다.

■ 포크와 무임승차 문제

글쓴이는 기업이 무료 미러로 옮겨갈 수 있다는 반론을 예상합니다. 자체 미러를 운영할 수 있는 기업은 이미 무료로 그렇게 할 수 있지만, 실제로는 운영 부담을 피하려고 JFrog에 비용을 냅니다. 미러로 옮기는 고객은 원래 비용을 낼 의사가 없던 기업이며, Docker도 일부 풀을 잃는 대신 매출을 크게 늘렸다고 설명합니다.

Tidelift와 같은 모델이라는 반론에도 차이가 있다고 말합니다. Tidelift는 새 공급업체와 별도의 구매 결정을 요구했지만, 미러 비용에 로열티를 포함하면 구매 담당자가 별도 결정을 내리지 않습니다. 기업은 이미 공급망 비용을 승인하고 있으며, 청구서의 일부가 유지관리자에게 자동으로 이동하는 구조입니다.

다만 패키지별 지급은 조작에 노출됩니다. Spotify가 재생 횟수에 따라 돈을 지급하자 스트리밍 농장이 생긴 것처럼, 의존성 수에 따라 돈을 지급하면 서로 의존하는 가짜 패키지를 대량으로 만들어 기업의 lockfile에 넣으려는 시도가 나올 수 있습니다. 글쓴이는 이 문제를 인지하고 패키지의 단순 등장 횟수가 아니라 실제 사용 고객의 존재를 반영해 가중치를 두는 방향을 제시하기 시작하지만, 제공된 글은 해당 설명이 이어지는 지점에서 끝납니다.

■ Hacker News 반응

• @luqtas — Ford Foundation 문서를 읽고 나니, FOSS가 상업적 사용뿐 아니라 포크도 제한해야 한다고 제안하고 싶습니다. 같은 일을 하는 라이브러리가 끝없이 쏟아져 나오면서 이 취약한 생태계가 더 흩어지고 있습니다. 이 생태계는 거대 기술 기업의 지속적인 관리로 큰 혜택을 받을 것입니다.

• @aaasssdddgirl — 자신의 버전을 포크할 수 있다는 점은 바람직한 목표이며 설계 의도에 포함됩니다. 원작자는 상상 가능한 모든 방향으로 프로젝트를 이끌고 싶어 하지 않을 수 있습니다.

• @gus_massa — 그것은 source-available입니다. 그렇게 하고 싶다면 괜찮은 선택입니다. 다만 FOSS라고 부르지는 마세요.

• @haunter — 완전히 무료이고 오픈소스인 소프트웨어를 유료 버전으로도 출시하고, 독점 스토어에는 편의 기능을 넣는 방식을 좋아합니다. Krita가 그 예입니다. Steam, Microsoft Store, Epic Store, Apple Store에서 살 수 있고, 자동 업데이트와 최근 추가된 Steam Cloud 동기화 같은 기능을 제공합니다. 개발자를 지원하는 방법이면서 플랫폼을 통한 구매라서 간단합니다.

• @al_borland — Filebot이 오픈소스였을 때 App Store에서 구매했습니다. 개발을 지원하고 업데이트도 자동으로 받으리라 생각했습니다. Apple이 ARM으로 옮긴 뒤 App Store 버전은 뒤처졌고, ARM 버전은 따로 제공됐지만 App Store에는 올라오지 않았습니다. 나중에 앱은 오픈소스가 아니게 됐고 유료가 됐습니다. 다른 배포 방식으로 ARM 버전을 받으려면 같은 앱에 다시 돈을 내야 했습니다. 이런 어처구니없는 일을 여러 번 겪으면 유료 스토어에서 무료 앱을 파는 모델에 반감이 생길 수 있습니다.

원문: Seldo / 번역·요약: Trawling