---
# System prepended metadata

title: 오픈 소스의 어두운 면
tags: [노트]

---

:::warning
2022년 1월경 작성했던 글을 다듬어 올린 글
:::

## TL;DR

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

## 서론

나는 오픈 소스 소프트웨어(OSS)에 꽤 긍정적이다.

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

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

하지만 밝은 면만 있는 것은 아니었다.

## faker.js

> 여기서 언급하는 faker.js는 [커뮤니티에 의해 Fork 된 동명의 faker.js](https://www.npmjs.com/package/@faker-js/faker)가 아닌, Marak에 의해 관리되던 이전의 faker.js를 의미합니다.

JavaScript 진영에는 [faker.js](https://www.npmjs.com/package/faker) 라는 이름의 OSS가 하나 있다.

이 모듈은 이름, 이메일, 날짜, 텍스트 등 다양한 카테고리에 대한 더미 데이터를 만들어 주는데, 이러한 특징으로 테스트나 프로토타입에 필요한 Mock 데이터를 만들 때 많이 사용되곤 했었다.

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

<figure style="text-align: center; font-size: 12px">
    <img width="400" src="https://hackmd.io/_uploads/r1TwiXngT.png" alt="faker.js GitHub">
    <figcaption style="margin-top: 4px"><span><a href="https://github.com/marak/Faker.js/" target="_block">faker.js GitHub (현재는 404)</a></span></figcaption>
</figure>

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

[^1]: [left-pad 사건](https://www.theregister.com/2016/03/23/npm_left_pad_chaos/) 이후 NPM에서 완전히 리포지토리를 삭제하는 것은 불가능하기에, 이전 버전을 설치해 사용할 수는 있다.

### 사건의 전말

{%youtube R6S-b_k-ZKY %}

요약하자면 이렇다.

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

### 내 생각

Marak의 입장이 이해되지 않는 것은 아니다.

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

```mermaid
flowchart TD
    o["오픈소스"]
    c["기업"]
    u["사용자"]
    
    o -->|코드| c -->|서비스| u
    u -->|수익| c -->|?| o
```

기업의 입장도 이해가 간다.

OSS를 사용하는 기업 입장에서는, 무료로 사용할 수 있는 것은 무료로 사용하는 것이 당연하다. 괜히 비즈니스 모델 캔버스에서 "비용"과 "수익" 항목의 자리가 큰 것이 아니다. 오픈 소스 기여는 기업에 큰 이익이 되지 않을 수 있고, 오히려 불필요한 비용이 될 수도 있다. 굳이 이런 위험을 감수할 필요가 있을까?

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

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

## 결론

OSS는 공짜가 아니다. 지속 가능한 미래를 위해 결국 누군가의 헌신적인 노동이 필요하며, 그것이 없다면 그 OSS는 생명이 다한 것과 마찬가지라 할 수 있다. 오픈 소스의 혜택을 누리는 우리는 항상 이를 인지하고 있어야 하며, 이를 그저 하나의 해프닝으로 취급해 버린다면 오픈 소스 생태계는 결국 무너질 것이다.

이러한 상황을 피하고자 우리는 무엇을 할 수 있을까? 나의 경우 오픈 소스 개발자들을 후원하고 있다. 현재는 Vite 팀의 Evan You와 Anthony Fu, 그리고 core-js 팀을 후원하고 있는데, 그리 큰 금액은 아니지만 이러한 작은 기여들이 모여 결국 더 나은 오픈 소스 생태계를 만들어 낼 수 있을 것으로 생각한다.
