오픈 소스의 어두운 면

오픈 소스는 공짜가 아니다

Table of Contents

TL;DR

  • 오픈 소스는 프로그래밍을 배우고, 연구하고, 일하는 데에 큰 도움이 된다.
  • 오픈 소스인 faker.js는 테스트나 프로토타입에 필요한 Mock 데이터를 만들 때 많이 사용되었으나, 메인테이너인 Marak으로 인해 현재 존재하지 않는다. 이는 이용만 하고 적절한 대가를 지불하지 않아 발생했다.
  • 오픈 소스는 공짜가 아니며, 지속 가능한 미래를 위해 결국 헌신적인 노동이 필요하다. 그렇지 않다면 생명이 다 한 것과 마찬가지다.

서론

나는 오픈 소스에 꽤 긍정적이다. 프로그래밍이라는 분야에 처음 발을 들인 이후 지금까지 오픈 소스 도움을 많이 받았다. 무료로 사용할 수 있는 운영체제, 프로그래밍 언어, 라이브러리, 프레임워크, 에디터, IDE, 그리고 다양한 도구들이 내가 프로그래밍을 배우고, 연구하고, 일하는 데에 큰 도움이 되었다.

미미한 수준이긴 하지만 몇 가지 오픈 소스 프로젝트에 기여한 적도 있다. 메인테이너로서 이끌어 가는 프로젝트도 있다. 얼굴도 모르는 사람들이 모여 프로젝트를 만들고, 유지하고, 발전시키는 과정은 정말 신기하고, 참 놀라운 일이라 생각한다. 하지만 밝은 면만 있지는 않았다.

faker.js

여기서 언급하는 faker.js는 커뮤니티에 의해 Fork 된 faker.js가 아닌, Marak에 의해 관리되던 faker.js를 의미한다.

JavaScript 진영에는 faker.js 라는 패키지가 하나 있다. 이 패키지는 이름, 이메일, 날짜, 텍스트 등 다양한 카테고리에 대한 더미 데이터를 만들어 주는데, 이러한 특징으로 테스트나 프로토타입에 필요한 Mock 데이터를 만들 때 많이 사용되곤 한다.

많은 사람이 애용했고, 그만큼 인기도 높았다. 글을 처음 썼던 22년 1월 기준으로 NPM에서 1주일에 3백만 건에 가까운 다운로드가 이루어지고 있을 정도였다.

Faker GitHub faker.js GitHub (현재는 404)

그리고 이 오픈 소스는 현재 존재하지 않는다[1].

전말

요약하자면 이렇다.

  1. faker.js 메인테이너인 Marak Squires 라는 사람이 있다.
  2. Marak은 2020년 9월 경 사제 폭탄을 제조하다 아파트와 함께 재산을 대부분 잃어버렸다.
  3. 이후 노숙자 생활을 전전하며 돈에 민감해지게 된다.
  4. 동년 11월, 오픈 소스와 관련해 더 이상 기업에 대가 없이 기술 지원을 하지 않겠다고 선언한다.
  5. 2022년 1월, Marak은 결국 faker.js를 삭제했고, 이후 GitHub에 의해 계정을 차단당하게 된다.

내 생각

Marak 입장이 이해는 된다. 크든 작든 많은 기업들이 오픈 소스 혜택을 받고 있다. 그러나 그에 대한 대가는 거의 없다시피 한데, 이는 오픈 소스를 관리하는 메인테이너 입장에서 굉장히 불공평한 일이 아닐 수 없다. 심지어 버그가 생겨도 이를 무료로 해결해 주길 기대하는 기업들까지 있다.

다만 기업 역시 나름 이유가 있을 것이다. 오픈 소스를 무료로 사용하는 것은 어떻게 보면 당연하다. 괜히 비즈니스 모델 캔버스에서 "비용"과 “수익” 항목이 큰 부분을 차지하는 것이 아니다. 오픈 소스 기여는 기업에 이익이 되지 않을 수 있다. 되려 불필요한 비용이 될 가능성이 높다. 굳이 이런 위험을 감수할 필요가 있을까.

레딧을 보니 여러 의견이 엇갈린다. Marak은 극단적이었으나 이해가 불가능하지는 않다. 그러나 이는 오픈 소스 생태계에 큰 타격을 주었다.

무엇이 옳고 그른지는 모르겠지만, 적어도 이 사건은 내게 오픈 소스 생태계에 대한 어두운 면을 알려주었다. 오픈 소스는 당연하지 않으며, 또 필요에 따라 무기로 사용될 수도 있다.

마치며

오픈 소스는 공짜가 아니다. 지속 가능한 미래를 위해 결국 누군가 지속적으로 리소스를 투입해야 한다. 우리는 항상 이를 인지하고 있어야 하며, 이를 그저 해프닝으로 취급해 버린다면 오픈 소스 생태계는 결국 무너질 것이다.

이러한 상황을 피하고자 우리는 무엇을 할 수 있을까. 난 가장 쉽고 빠른 방법을 선택했다. 후원 말이다. 금액이 크지는 않지만 Evan You와 core-js 팀을 후원하고 있다. 이러한 작은 기여들이 모여 결국 더 나은 오픈 소스 생태계를 만들어 낼 수 있기를 희망한다.


  1. left-pad 사건 이후 NPM에서 완전히 리포지토리를 삭제할 수는 없기에, 이전 버전을 설치해 사용할 수는 있다. ↩︎