내가 Internet에게 어떤 Code가 Merged될지 결정하게 했을 때 무슨 일이 일어났는가 (Week 1)

발행: (2026년 1월 15일 오후 08:56 GMT+9)
12 min read
원문: Dev.to

Source: Dev.to

Cover image for What Happened When I Let the Internet Decide What Code Gets Merged (Week 1)

Max

레포가 인터넷에게 어떤 것이 배포될지 결정하게 했을 때—그리고 그 다음에 일어난 일.

2026년 1월 5일, 23:12 UTC – 커밋을 푸시했습니다: 카운트다운 타이머와 풀 리퀘스트 목록이 포함된 간단한 Next.js 앱.

규칙

  • 누구나 PR을 제출할 수 있습니다.
  • 커뮤니티는 👍 반응으로 투표합니다.
  • 가장 많이 투표된 PR은 매주 일요일에 병합됩니다.
  • 모든 것이 변경될 수 있습니다—규칙도 포함해서.

I called it OpenChaos.

Six days later it hit #1 on Hacker News.

This is the story of Week 1.

숫자

MetricValue
400+
포크35+
풀 리퀘스트70+
스팸으로 폐쇄29
열려 있고 경쟁 중30+
HN 메인 페이지에서의 시간17+

Day 1 – Bootstrap

MVP는 하룻밤 만에 만들었습니다: 카운트다운 타이머, 열린 PR 목록, 그리고 GitHub의 리액션 API에서 가져온 투표 수.

첫 번째 PR을 직접 제출했습니다: dark‑mode toggle – 모든 프로젝트에 다크 모드 논쟁이 필요하니까요.

몇 시간 안에, 저만은 아니었습니다.

2일차 – 니힐리스트가 도착하다

PR #2: “종료하라”
@Salman‑Sali 은(는) 모든 것을 삭제하는 PR을 제출했습니다 (7,108줄 삭제). 설명은 비어 있었습니다.

“이 PR에 찬성표를 누른 사람들은 아마도 트럼프 지지자일 겁니다”

Salman‑Sali 가 답변했습니다:

“hey mister, its not me who chose chaos”

PR은 CI에서 실패했습니다. 민주주의에는 안전장치가 있었습니다.

하지만 이야기는 끝나지 않았습니다.

Day 3 – 선두주자 등장

PR #6: “Calculate +1 and -1 reactions”
@yokeTH 은(는) 다운‑투표와 업‑투표를 모두 집계하는 기능을 제출했습니다. 순점수가 승자를 결정하게 됩니다.

이는 진정한 개선이었으며 동시에 무기도 되었습니다. 다운‑투표가 반영되기 시작하자, “Vote to shut it down” PR은 점차 입지를 잃어갔습니다.

Day 4 – 내 규칙을 깨다

사이트에 잘못된 투표 수가 표시되고 있었습니다. PR #1은 147표였지만 화면에는 30표만 보였습니다. GitHub API는 반응을 페이지로 나누어 제공하는데, 이를 고려하지 않았던 것이었습니다.

두 가지 선택이 있었습니다:

  1. 누군가가 수정 사항을 제출할 때까지 기다리고, 커뮤니티가 그 수정에 대해 투표하도록 한다.
  2. 바로 수정을 푸시해서 투표가 정상적으로 작동하도록 만든다.

저는 두 번째를 선택했습니다.

첫 번째 수정을 적용한 뒤, 인증 없이 60 요청/시간이라는 레이트‑리밋에 걸려 또 다른 수정을 푸시해야 했습니다.

투표를 올바르게 집계하는지에 대해 투표할 수는 없습니다. 그것은 순환 논리입니다.

투표 시스템은 민주주의가 작동하기 전에 제대로 작동해야 합니다. 모든 개입은 이 전제에 대한 작은 배신처럼 느껴집니다.

Day 4 (Part 2) – 시연

@Kl0ven은 “should have use proper pagination :(”라는 제목의 동일한 PR 30개를 열었습니다. 저는 스팸이라고 생각하고 모두 닫았습니다.

Kl0ven은 하나만 통과시켰습니다: PR #45 “F, At least I tried” (현재 투표: –4).

이는 버그를 보여주기 위한 시연이었습니다. GitHub API는 기본적으로 30개의 결과만 반환합니다. 레포에 PR을 대량으로 올리면 Kl0ven은 오래된 제출물을 그 제한을 넘어가게 만들어 리더보드에서 완전히 사라지게 했습니다. 이 행동은 스팸이 아니라, 제가 몰랐던 결함을 드러낸 것이었습니다.

Day 5 – 극적인 철회

다운‑투표가 이제 그의 불리하게 작용하면서, @Salman‑Sali 가 자신의 PR을 닫고 다음과 같은 메시지를 남겼습니다:

Thank you for all those who have supported me.
It is with great regret that I have to say that I am dropping out of this race.
The big‑money‑funded PRs have plotted against me. They want to calculate the negative votes too. The big money has influenced this election. I will not stand for this injustice.
Therefore I am dropping out of this race.

누군가가 답했습니다:

“STOP THE COUNT!”

GitHub PR이 정치 풍자가 되었습니다.

Day 5 (Part 2) – 창조자의 희생

dark‑mode PR #1 은 (228 up‑votes) 로 승리하고 있었으며 최초의 머지가 될 예정이었습니다. 하지만 뭔가 잘못된 느낌이 들어서 철회했습니다:

“Withdrawing to keep the first merge purely community‑driven. Let the chaos decide.”

왜냐고 물었을 때:

“Didn’t feel right winning my own game.”

첫 번째 머지는 커뮤니티에 속해야 했습니다.

Day 6 – The Meme Becomes Real

PR #13: “Rewrite it in Rust”
모든 프로젝트는 결국 이 댓글을 달게 됩니다. **@wvanlit**는 실제로 이를 수행하기로 했습니다: WASM으로 컴파일된 완전한 Rust 재작성, 배포 준비 완료.

문제는 하나뿐이었습니다 – Vercel 빌드가 계속 실패했습니다:

Module not found: Can't resolve '@/wasm/pkg/openchaos_wasm'

밈은 실제였지만, 컴파일되지 않았습니다.

Community reaction:

“once this gets done, we can put this in the linux kernel” → “이 작업이 완료되면, 이를 리눅스 커널에 넣을 수 있겠네요”

Day 6 – Hacker News

350 + points, 70 + comments – #1 on the front page.

The comments were beautiful:

  • “Twitch plays GitHub” → “트위치가 깃허브를 연주한다”
  • “Like Reddit but Nomic” → “레딧과 비슷하지만 노믹처럼”
  • “Codified Dadaismus” → “코드화된 다다이즘”
  • “It’s an absurdist art software project, devoid of an…

    y consistent intent or purpose beyond the operating principles.” → “이것은 부조리주의 예술 소프트웨어 프로젝트이며, 운영 원칙을 넘어서는 일관된 의도나 목적이 없습니다…”

Someone asked what the point was.

The best reply:

“I don’t think there’s a point. You can always submit a point; if it gets voted you will have your point.” → “나는 그것에 의미가 있다고 생각하지 않는다. 언제든지 포인트를 제출할 수 있다; 투표가 되면 당신은 그 포인트를 얻게 될 것이다.”

첫 번째 병합

Sunday, January 12, 2026 · 09:00:37 UTC

I merged PR #6: “Calculate +1 and ‑1 reactions” by @yokeTH.

Final score: 903 upvotes

OpenChaos의 첫 번째 커뮤니티 주도 변경으로 다운보트가 카운트됩니다. 순수 업보트 민주주의로 시작한 프로젝트가 이제 권력에 대한 첫 검증을 받게 되었습니다. 아이러니는 나에게서 사라지지 않았습니다.

2주 차 시작

리더보드가 초기화되었습니다. 새로운 경쟁자들이 등장했습니다:

순위PR무엇을 하는가순이익
1#13Rust로 재작성+409
2#51매일 혼돈 (일일 병합)+365
3#47Comic Sans와 함께 IE6 모드+179
4#8PR 상태 표시기 표시+122
5#11다크/라이트 모드 반전+57

Rust 재작성이 2주 차를 선도하고 있습니다. 누군가 빌드를 고치면, 밈이 현실이 됩니다.

내가 배운 것

  1. 사람들은 혼돈에 구조를 부여하고 싶어한다.
    승리한 PR은 다운‑투표 카운팅을 추가한다. 3위 PR은 병합 빈도를 변경한다. 거버넌스는 커뮤니티의 첫 번째 본능이다.

  2. 밈이 현실이 된다.
    “Rewrite it in Rust”(러스트로 다시 작성하라)는 2주 차를 선도하고 있으며 실제로 일어날 수도 있다.

  3. 모든 시스템은 게임화된다.
    48시간 이내에 사람들은 투표 조작, 미끼‑전환 커밋, 봇 공격에 대해 논의했다. 보안 대화는 첫 번째 병합보다 먼저 시작되었다.

  4. 드라마는 스스로 쓰여진다.
    나는 정치 풍자나 극적인 철수를 계획하지 않았다. 혼돈이 자체적인 서사를 만들었다.

  5. 유지보수자는 중립적일 수 없다.
    나는 손을 떼려 했지만 결국 수정사항을 푸시하고 스팸을 닫았다. @Kl0ven은 내가 놓친 버그를 밝혀냈다—그들은 틀리지 않았다.

다음은

  • PR #13 – Rust 재작성(빌드를 누군가 고친다면)을 제공할 수 있습니다.
  • PR #51 – 병합을 매일로 바꿀 수 있습니다.
  • PR #47 – 우리를 1999년으로 돌려보낼 수 있습니다.

그게 요점입니다.

규칙은 규칙을 바꿀 수 있습니다. 혼돈이 바로 기능입니다.

400 + stars, a Hacker News front page, and the best GitHub drama I’ve ever seen. I’ll take it.

Max (@skridlevsky)

openchaos.dev

∞의 1주차. 일요일에 봐요.

Back to Blog

관련 글

더 보기 »

1주차 과제

Git은 코드 협업, 코드 변경 사항 및 변경자를 추적하는 데 사용되는 버전 관리 시스템입니다. 일반적인 Git 명령어로는 `bash git --version`이 있으며, 이는 Git이 설치되어 있는지 확인합니다.

오픈소스 개발자 포트폴리오

깨끗하고 프로덕션 준비가 된 Next.js 포트폴리오 오픈소스로, 자체 개발자 사이트를 만들 때 참고용으로 사용할 수 있습니다. 개요: 개발자를 위한 사이트를 구축하고 있다면...