Codeberg로 옮긴 걸 후회한다
원문은 Marius님이 에 게재했습니다. 이 블로그 구독하기

내가 GitHub를 떠난 주된 이유는 특정 기능 하나나 장애 한 번 때문이 아니었다. Microsoft 소유가 된 이후 플랫폼이 겪은 “엔쉬티피케이션” 때문이었다. 웹 인터페이스는 느릿한 JavaScript 덩어리로 재작성됐고, 그 결과 예전엔 아무 문제 없이 잘 되던 것들이 망가지거나 너무 끔찍하게 느려져서 쓰는 것 자체가 고역이 됐다. 기술적 퇴보를 넘어 GitHub는 WhatsApp이 그랬던 것처럼 사실상 “공공 인프라”가 되어 있었다. 전 세계 소프트웨어 중 엄청난 비중의 소스 코드를 호스팅하면서, Microsoft에게 모든 사람의 프로젝트, 나아가 모든 사람의 디지털 삶 전반에 대해 그 어떤 단일 기업도 가져서는 안 될 정도의 영향력과 감시 능력을 쥐여준 것이다. 거기에 더해 정당한 개발자들이 Microsoft의 자의적인 차단으로 계정을 잃었다는 이야기들은 적어도 어딘가 다른 곳에 백업 하나쯤은 둬야겠다는 생각을 더욱 굳히게 했다.
Codeberg는 괜찮은 대안처럼 보였다. 자유·오픈소스 프로젝트에 평판 좋은 보금자리를 제공했고, 더 중요한 건 완전히 무료라는 점이었다. 지구상에서 가장 큰 소프트웨어 회사의 자회사가 아니라 비영리 단체가 운영한다는 점에서였다. 안타깝게도 최근 이용약관 업데이트는 내가 그곳으로 옮긴 이유 중 하나, 바로 “자유” 부분을 바꾸는 첫걸음으로 보인다.
인간의 어리석음
내가 지금까지 공개한 모든 프로젝트는 “인공지능”이 아니라 100% 인간의 어리석음으로 만들어졌다. 더 정확히 말하면 LLM으로 만든 게 아니다. Codeberg가 주로 LLM으로 만들어진 프로젝트를 금지하는 것에 대해 나는 딱히 강한 감정은 없다. 적어도 합법적인 암호화폐 프로젝트를 동시에 금지한 것에 대해 느끼는 감정만큼은 아니다. 그건 LLM이 그 자리를 차지하기 전 몇 년 동안 암호화폐가 오늘의 악당이었던 기억 때문에 별다른 이유 없이 그냥 함께 끼워 넣은 것처럼 읽힌다. 두 조항은 불과 며칠 차이로 등장했다. LLM 금지는 6월 29일에, 암호화폐 금지는 7월 2일에, 둘 다 Assembly 2026 제안으로 올라왔고, 약관은 후자를 하필이면 “Codeberg의 평판을 해치는 콘텐츠”라는 항목 아래에 분류해 놓았다. 법률 용어로 번역하면 “일괄 금지할 만한 확실한 근거나 실제 나쁜 선례가 딱히 없지만 일단 금지한다”처럼 들린다.
그러나 공지 블로그 글은 정말 형편없이 쓰여 있다. 그중에서도 “없는 개발팀(The development team of none)”이라는 제목의 섹션이 최악이다. 거기엔 이렇게 적혀 있다:
LLM을 이용해 코드를 작업하면 아드레날린이 솟구친다. 마치 큰 팀을 거느린 것처럼 빠른 속도로 개발하고 만들 수 있다. 다만 팀은 존재하지 않는다. 사실 당신은 (종종) 혼자이며, 에너지를 코드로 바꾸는 통계 기계와 함께 일하고 있을 뿐이다.
그리고 조금 더 아래에는 이렇게 쓰여 있다:
많은 ‘바이브 코더’들이 자신에게 실제로는 커뮤니티가 없다는 사실을 깨닫지 못하는 것 같다.
이건 대부분의 자유 소프트웨어가 어떻게 만들어지는지와 동떨어진 이야기다. 대다수 FOSS 개발자는 1인 체제이며, 그들 주변에 있는 유일한 cOmMuNiTy란 기능을 요구하거나 버그를 제보하면서 정작 어떤 형태로든 기여는 거의 하지 않는 사용자들뿐이다. 나는 이 웹사이트가 생기기 전, 심지어 GitHub 자체가 생기기 전부터( SourceForge가 그렇게 핫하던 시절을 기억하는가?) 수십 년 동안 말도 안 되게 자잘한 도구들을 공개해 왔지만, 그 어떤 프로젝트에도 적어도 Codeberg가 그 글에서 낭만적으로 그리는 의미의 실제 “커뮤니티”가 존재한 적은 한 번도 없다. 나는 모든 걸 손으로 직접 코딩하는 외로운 늑대이며, 그 일에 터무니없을 정도로 많은 시간을 쏟는다. LLM이 진짜 커뮤니티를 가진 진짜 프로젝트와 가짜 프로젝트를 가르는 기준이라는 생각은, 어떤 저장소에 올라오는 평범하고 유용한 작은 도구들이 애초에 어떻게 생겨나는지를 들여다보면 전혀 설득력이 없다.
솔직히 Codeberg가 이런 주장을 한다는 것 자체가 좀 거만하게 느껴진다. 생각해보면 이 플랫폼은 사실상 Forgejo 생태계 안에 살고 있고, Forgejo는 Gitea가 6년 가까이 쌓아 올린 활발한 기여자 커뮤니티를 탈취 상속받은 것이기 때문이다. 남의 커뮤니티를 하드 포크로 가져와 놓고 이제 와서 혼자 일하는 개발자들에게 커뮤니티가 없다고 훈계하는 프로젝트가, 뻔뻔하지 않게 그 주장을 펼친다는 건 어려운 일이다.
게다가 Codeberg는 “커뮤니티를 갖는 것”과 “호스팅할 가치가 있는 정당한 소프트웨어인 것”을 혼동하고 있다. 개인 프로젝트의 기준은 언제나 작동하는 빌드, 가능하면 라이선스, 그리고 어쩌면 README 정도였지, 기여자로 가득한 채널이 아니었다. 작고 1인 제작자가 만든 도구 생태계가 가치 있는 이유 중 상당 부분은 정확히 커뮤니티가 없어도 존재 자체가 정당하다는 데 있다. 개인들의 코드를 호스팅하는 것이 존재 이유인 저장소가 정반대를 주장하는 건 어색하다.
검열
나를 거슬리게 하는 건 LLM 프로젝트에 대한 특정한 금지나 암호화폐 프로젝트에 대한 특정한 금지가 아니다. “자유 소프트웨어”를 중심으로 세워진 허브가 이제 사용자들에게 어떤 종류의 소프트웨어가 좋고 어떤 종류가 나쁘다고 말하기 시작했다는 점이며, 이는 겉보기보다 검열에 훨씬 가깝다. 플랫폼이 어떤 범주 전체가 “평판을 해친다”며 그 근거로 삭제할 수 있다고 약관에 적어 넣는 순간, 결정 기준은 더 이상 그 코드가 합법적인지, 작동하는지, 유용한지가 아니라 플랫폼이 취한 입장과 일치하는지가 된다. 그런 식의 포괄적 금지 조치에 걸려드는 프로젝트 중 상당수는 바이브 코딩으로 찍어낸 쓰레기나 shitcoin 구현물이 아니라 정당한 소프트웨어라고 나는 생각한다.
내가 떠올릴 수 있는 모든 플랫폼은 사용자들에게 이념을 강제하기 시작한 순간 분열됐다. 그 이념이 무엇이든, 당시에는 아무리 정당해 보였든 마찬가지였다. 메커니즘은 언제나 동일하다. 실제 문제가 등장하고, 인기 없는 범주가 명백한 범인으로 지목되고, 플랫폼은 문제를 해결하는 대신 그 범주를 금지하고, 그 금지가 다음 범주, 그리고 그다음 범주에 대한 선례가 된다. 오늘 금지하는 것이 논란이 없다고 해서 내일 그 메커니즘이 존재할 이유가 되는 것이고, 첫 번째 금지에 박수 친 사용자들은 두 번째 금지에 대해서는 거의 의견을 묻지 않는다.
두 범주 모두 문제가 없지 않다는 점은 인정한다. LLM 기반 저장소는 실제로 인프라에 부담을 주고, 감당할 수 없는 양의 저품질 이슈와 풀 리퀘스트를 양산하며, 저작권과 코드 출처에 대한 실질적인 질문을 안고 있다. 이 모든 것은 Codeberg도 글에서 언급한 바다. 암호화폐 분야 역시 소프트웨어의 어떤 분야보다 노골적인 사기를 많이 만들어냈을지 모른다. 하지만 오늘의 악당에 대한 일괄 금지가 그 어떤 문제에 대한 해결책도 되지 않는다.
우리는 이제 심지어 Linus Torvalds 같은 사람이 LLM은 그저 도구일 뿐이며 “분명히 유용한 도구”라고, 신중하게 사용하고 그 결과물을 다른 모든 것과 동일한 기준으로 검증한다면 Linux 커널 개발에서도 정당한 자리를 차지할 수 있다는 꽤나 합리적인 주장을 하는 것을 본다. 지구상에서 가장 크고 영향력 있는 오픈소스 프로젝트의 관리자가 LLM을 눈에 보이는 즉시 금지해야 할 범주가 아니라 결과로 판단해야 할 도구로 대할 수 있다면, 군소 코드 저장소 하나도 같은 정도는 할 수 있다.
나 역시 앞으로 LLM이 기술에, 그리고 사회 전반에 미칠 영향에 대해 걱정한다. 아마 Codeberg 정책을 쓴 사람만큼이나 걱정하고 있을 것이다. 다만 나는 콘텐츠를 금지하는 것 — 지금 일어나고 있는 일이 정확히 그것이다 — 이 앞으로 나아갈 방법이 아니라고 믿을 뿐이다.
합리적인 해결책
내가 Codeberg가 선택했으면 했던 것은 실제 문제를 자원 문제로 다루는 해결책이다. 그들 스스로 글에서 밝힌 실제 문제는 자원 소비와 그에 따른 인프라 비용이다. 이용약관을 바꾸더라도 저자가 해당 저장소에 LLM으로 생성된 코드가 포함되어 있거나 암호화폐 관련이라는 것을 알리는 체크박스에 표시하도록 요구할 수 있었다. 그러면 그런 저장소들은 다른 모든 저장소와 같은 자원을 받지 않는 별도의 인프라 계층으로 분리될 수 있다. 특정 할당량이 적용되고, 어쩌면 저자가 소비한 만큼 비용을 지불해야 하는 계층 말이다. 정직하게 진실을 신고하는 것은 (적어도 처음에는) 아무 비용도 들지 않았을 것이고, 신고하지 않고 나중에 적발되면 Codeberg가 지금 전체 범주에 대해 처음부터 적용하고 있는 바로 그 영구적이고 즉각적인 차단을 받게 하면 됐다.
마찬가지로 LLM이나 Crypto 라벨이 붙은 프로젝트에는 Codeberg가 해당 저장소의 품질이나 정확성에 대해 전혀 책임지지 않는다는 점을 명시하는 고지가 자동으로 표시되도록 할 수도 있었다. 심지어 한술 더 떠서 그 경고문에 Codeberg는 LLM이나 암호화폐의 사용을 지지하지 않는다는 점을 대놓고 적어, 사람들이 확실히 알아듣고 Codeberg에 “평판 리스크”가 전혀 없도록 만들 수도 있었다.
이런 식의 접근은 자원을 많이 잡아먹는 프로젝트의 비용을 그것을 만든 사람들에게 전가하고, 플랫폼이 존재하는 이유였던 프로젝트들을 위해 공유 자원을 남겨둔다. 그러면서 Codeberg가 애초에 어떤 종류의 소프트웨어가 이념적으로 허용 가능한지를 결정할 필요도 없어진다. “우리가 동의하지 않는 것은 모두 앞에서부터 금지한다”는 접근은 잘못된 신호를 보내는 것이며, 매우 미끄러운 경사다.
두 금지 범주 중 어느 하나에 속하는 프로젝트를 단 하나도 가지고 있지 않음에도, 나는 이제 직접 공개 Git 호스팅을 구축하는 방안을 알아보고 있으며, Codeberg로 옮긴 지 불과 몇 달 만에 다시 떠날 예정이다. 금지 자체 때문이 아니라, 이용약관을 즉흥적으로 고쳐 쓰면서 그 변경이 고려 중이라는 사실조차 제대로 알리지 않고, 사용자들에게 의견을 낼 방법조차 주지 않는 플랫폼에 의존하고 싶지 않기 때문이다.
결정 자체는 Codeberg 자체의 Assembly 2026을 거쳤으니, 이는 대부분의 플랫폼이 신경도 안 쓰는 것보다는 절차를 갖춘 셈이다. 그럼에도 불구하고 일반 사용자인 나는 아마 다른 대부분의 사람들과 마찬가지로 이미 결정이 끝난 당일에 사이트 상단에 뜬 짙은 파란색 배너를 통해 그 사실을 알게 됐다. ToS 변경에 대한 정보 자체는 고맙지만, 플랫폼이 이런 방향으로 갈지 아직 결정하는 중이었을 때 배너를 받았더라면 좋았을 것이고, 그 배너가 토론 스레드나 최소한 투표로 연결되어, 금지된 특정 범주 하나하나가 아니라 플랫폼 전체의 자유에 대한 내 우려를 표할 수 있었더라면 좋았을 것이다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기