I Regret Migrating to Codeberg

Marius

Codeberg로 이전한 것을 후회한다

Codeberg로 이전한 것을 후회한다

GitHub를 떠난 가장 큰 이유는 특정 기능 하나나 장애 한 번 때문이 아니었다. Microsoft 소유가 된 이후 플랫폼이 겪은 “엔시티피케이션(enshittification)” 때문이었다. 웹 인터페이스는 느려 터진 JavaScript 덩어리로 다시 쓰였고, 예전에는 그냥 잘 되던 것들이 망가지거나 너무 느려져서 쓰기가 극도로 고통스러워졌다. 기술적인 퇴보를 넘어 GitHubWhatsApp이 그렇듯 사실상 “공공 인프라”가 되어 버렸다. 전 세계 소프트웨어 중 상당 부분의 소스 코드를 호스팅하면서, 이를 통해 Microsoft에게 그 어떤 기업도 가져서는 안 될 수준의 영향력과 감시 능력을 쥐여 주었고, 이는 곧 모든 이의 프로젝트, 나아가 모든 이의 디지털 삶에 대한 것이었다. 거기에 더해 정당한 개발자들이 Microsoft의 자의적인 차단으로 계정을 잃었다는 이야기까지 더해지면서, 적어도 다른 어딘가에 백업을 두는 것이 좋겠다는 생각이 더욱 굳어졌다.

Codeberg는 현실적인 대안처럼 보였다. 무료 오픈소스 프로젝트에 신뢰할 만한 보금자리를 제공했고, 더 중요한 건 그 보금자리가 마찬가지로 무료였다는 점이다. 지구상에서 가장 큰 소프트웨어 기업의 자회사가 아니라 비영리 협회가 운영한다는 점에서 더욱 그랬다. 안타깝게도 최근 이용 약관 업데이트는 내가 그곳으로 옮긴 이유 중 하나, 바로 그 “자유”라는 부분을 바꾸는 첫걸음처럼 보인다.

인간의 어리석음

지금까지 내가 공개한 모든 프로젝트는 “인공 지능”이 아니라 100% 인간의 어리석음으로 만들어졌다. 더 정확히는 LLM으로. Codeberg가 대부분 LLM으로 만들어진 프로젝트를 금지하는 것에 대해 나는 그리 강한 감정을 가지고 있지 않다. 적어도 정당한 암호화폐 프로젝트에 대한 동시 금지 조항에 느끼는 감정만큼은 아니다. 후자는 LLM이 그 자리를 차지하기 전 몇 년간 암호화폐가 오늘의 악당(villain-du-jour)이었던 기억 때문에 별다른 이유 없이 함께 묶인 것처럼 읽힌다. 두 조항은 며칠 차이로 등장했다. LLM 금지는 6월 29일, 암호화폐 금지는 7월 2일이었고 둘 다 Assembly 2026 안건이었다. 그리고 약관은 후자를 그중에서도 하필 “Codeberg의 평판을 해치는 콘텐츠” 항목 아래에 넣었는데, 이는 “이를 통째로 금지할 뚜렷한 근거나 실제 나쁜 선례가 충분히 있지 않다”는 말을 법률 용어로 돌려 말한 것처럼 들린다.

하지만 공지 블로그 글은 매우 형편없이 쓰여 있으며, 그중에서도 “아무도 없는 개발팀(The development team of none)”이라는 제목의 섹션이 가장 심하다. 거기에는 이렇게 쓰여 있다.

LLM을 이용해 코드를 작업하면 아드레날린이 솟구친다. 빠르게 개발하고 마치 큰 팀이 있는 것처럼 만들 수 있다. 다만 사실 팀은 없다. 실제로는 (대개) 혼자서 에너지를 코드로 바꾸는 통계적 기계와 함께 일하고 있을 뿐이다.

그리고 조금 더 아래에는 이렇게 적혀 있다.

많은 ‘바이브 코더(vibe coder)’들이 자신에게 실제로는 커뮤니티가 없다는 사실을 깨닫지 못하는 것 같다.

이는 자유 소프트웨어가 만들어지는 방식에 대한 이해가 부족한 얘기다. 대다수 FOSS 개발자는 1인 체제이며, 그들 곁에 있는 유일한 cOmMuNiTy란 기능을 요청하거나 버그를 제보하면서도 정작 아무런 기여도 하지 않는 사용자들뿐인 경우가 대부분이다. 나는 이 웹사이트가 생기기 전, 심지어 GitHub 자체가 생기기 전부터(아직 SourceForge가 잘나가던 시절을 기억하는가?) 수십 년간 재미있는 조그만 도구들을 공개해 왔지만, 그 어떤 프로젝트도 Codeberg가 그 글에서 낭만적으로 그리는 의미의 진짜 “커뮤니티”를 가져본 적이 없다. 나는 모든 걸 손으로 직접 코딩하고 그에 터무니없이 많은 시간을 쏟아붓는 외로운 늑대(lone wolf)이며, LLM이 진짜 커뮤니티를 가진 진짜 프로젝트와 가짜 프로젝트를 가르는 기준이라는 생각은, 어느 포지에서든 평균적인 쓸모 있는 작은 도구가 어떻게 탄생하는지를 들여다보면 성립하지 않는다.

솔직히 Codeberg가 이런 주장을 하는 것 자체가 조금은 건방지게 느껴진다. 플랫폼 자체가 사실상 Forgejo 생태계 안에서 살아가고 있는데, ForgejoGiteaForgejo가 존재하기도 전 6년 가까이 쌓아 올린 활발한 기여자 커뮤니티를 탈취 계승한 프로젝트이기 때문이다. 남의 커뮤니티를 하드 포크해서 가져온 프로젝트가 뒤돌아서는 1인 개발자들에게 커뮤니티가 없다고 훈계하는 모습은, 진지한 표정으로 주장하기 어려운 입장이다.

게다가 Codeberg“커뮤니티를 가지고 있음”“호스팅할 가치가 있는 정당한 소프트웨어임”을 혼동하고 있다. 개인 프로젝트의 기준은 언제나 작동하는 빌드, 가능하다면 라이선스, 그리고 어쩌면 README 정도였지, 기여자로 가득 찬 채널이 아니었다. 작고 1인 작가가 만든 도구 생태계를 가치 있게 만드는 요소 중 상당 부분은 바로 커뮤니티가 없어도 존재 자체로 정당화된다는 점에 있으며, 개인의 코드를 호스팅하는 것이 존재 이유인 포지에서 그 반대를 주장하는 것은 어색하다.

검열

나를 거슬리게 하는 건 LLM 프로젝트에 대한 특정 금지나 암호화폐 프로젝트에 대한 특정 금지가 아니다. “자유 소프트웨어”를 내세운 허브가 이제 사용자들에게 어떤 종류의 소프트웨어가 좋고 어떤 종류는 나쁘다고 말하고 있다는 점이며, 이는 보이는 것보다 검열에 가깝다. 플랫폼이 약관에 특정 범주 전체가 “평판을 해친다”며 그에 근거해 삭제될 수 있다고 적는 순간, 판단 기준은 코드가 합법적인지, 작동하는지, 쓸모 있는지가 아니라 플랫폼이 취한 입장에 부합하는지가 된다. 나는 그런 식의 전면 금지로 걸려드는 프로젝트 중 상당수가 바이브 코딩으로 만든 쓰레기나 shitcoin 구현물이 아니라 정당한 소프트웨어라고 생각한다.

내가 아는 한 이런 방식을 택한 모든 플랫폼은 사용자들에게 이념을 강제하기 시작한 순간 분열되었다. 그 이념이 무엇이었든, 당시에는 아무리 정당해 보였든 마찬가지였다. 작동 방식은 항상 같다. 실제 문제가 나타나고, 인기가 없는 범주가 명백한 주범으로 지목되고, 플랫폼은 문제를 해결하는 대신 범주 자체를 금지하고, 그 금지가 다시 다음 범주, 그리고 그다음 범주에 대한 선례가 된다. 오늘 금지하는 것이 논란의 여지가 없다고 해서 내일 그 메커니즘이 존재할 이유가 생기며, 첫 번째 금지에 박수 쳤던 사용자들은 두 번째 금지에 대해서는 거의 의견을 묻지도 못한다.

두 범주 모두 문제가 없지 않다는 점은 나도 인정한다. LLM으로 만들어진 저장소는 인프라에 부담을 주고, 감당할 수 없는 양의 저품질 이슈와 풀 리퀘스트를 쏟아내며, 저작권과 코드 출처에 대한 실질적인 의문을 동반한다. 이 모든 것은 Codeberg도 글에서 언급한 부분이다. 암호화폐 분야 역시 소프트웨어의 어떤 영역보다 노골적인 사기를 많이 만들어냈을지 모른다. 하지만 오늘의 악당(villain-du-jour)에 대한 전면 금지가 그 어떤 문제에 대한 해결책도 되지는 않는다.

이제 Linus Torvalds 같은 이들조차 LLM그저 도구일 뿐이며 “분명히 유용한 도구”라고, 주의 깊게 사용하고 그 결과물을 다른 모든 것과 같은 기준으로 평가한다면 Linux 커널 개발에서도 정당한 자리를 가질 수 있다는 꽤나 합리적인 주장을 하고 있다. 지구상에서 가장 크고 중요한 오픈소스 프로젝트의 메인테이너가 LLM을 무조건 금지할 범주가 아니라 결과로 평가해야 할 도구로 다룰 수 있다면, 뒷마당 코드 포지(backyard code forge) 하나쯤은 같은 일을 해낼 수 있어야 한다.

나 역시 앞으로 LLM이 기술과 사회 전반에 미칠 영향에 대해 걱정하고 있으며, 아마 Codeberg의 정책을 쓴 사람만큼이나 걱정하고 있을 것이다. 다만 콘텐츠를 금지하는 것, 지금 벌어지고 있는 일이 정확히 그것인데, 그것이 나아갈 길이라고는 믿지 않는다.

합리적인 해결책

내가 Codeberg가 택했기를 바란 것은 바로 그들이 글에서 스스로 밝힌 실제 문제, 즉 자원 소비와 그에 따른 인프라 비용을 실제 자원 문제로 다루는 해결책이었다. 이용 약관을 바꾸어 저자가 해당 저장소에 LLM으로 생성된 코드가 포함되어 있거나 암호화폐와 관련되어 있음을 알리는 체크박스에 표시하도록 하고, 그런 저장소는 다른 모두와 같은 자원을 받지 않는 별도의 인프라 계층으로 분리하는 것이다. 특정 할당량을 갖는 계층으로 말이다. 그리고 저자가 소비한 만큼 비용을 지불하도록 할 수도 있다. 진실을 정직하게 밝히는 것은 (적어도 처음에는) 비용이 들지 않을 것이고, 밝히지 않았다가 적발될 경우 Codeberg가 지금 처음부터 전체 범주에 적용하고 있는 바로 그 영구적이고 즉각적인 차단 조치를 받게 하면 된다.

마찬가지로 LLM이나 Crypto 라벨이 붙은 프로젝트에는 Codeberg가 해당 저장소의 품질이나 정확성에 대해 전혀 책임지지 않는다는 점을 명시하는 고지가 자동으로 표시되도록 할 수 있다. 심지어 그 경고문에 Codeberg는 LLM이나 암호화폐 사용을 승인하지 않는다는 점을 노골적으로 적어, 사람들이 확실히 알게 하고 Codeberg“평판 리스크”가 없도록 extra-extra-extra 확실하게 할 수도 있을 것이다.

이런 방식이라면 자원을 많이 소모하는 프로젝트의 비용을 그것을 만든 사람들이 부담하게 되고, 플랫폼이 존재하는 이유였던 프로젝트들을 위한 공유 자원은 그대로 유지된다. 이 모든 것을 Codeberg가 애초에 어떤 범주의 소프트웨어가 이념적으로 용인될 수 있는지를 결정하지 않고도 할 수 있다. “우리가 동의하지 않는 것은 처음부터 전부 금지한다”는 접근은 잘못된 신호를 보내는 것이며, 매우 미끄러운 경사다.

두 금지 범주 중 어느 쪽에도 속하는 프로젝트 하나 없는 나조차도 이제 직접 공개 Git 호스팅을 구축하는 방안을 알아보고 있으며, Codeberg옮긴 지 불과 몇 달 만에 그곳을 떠날 생각이다. 금지 자체 때문이 아니라, 약관을 변덕스럽게 고쳐 쓰고, 그런 변경이 고려 중이라는 사실조차 제대로 알리지 않으며, 사용자들이 의견을 낼 수 있는 방법조차 주지 않는 플랫폼에 의존하고 싶지 않기 때문이다.

결정들은 Codeberg 자체의 Assembly 2026을 거쳤으니, 이는 대부분의 플랫폼이 신경도 쓰지 않는 것보다 더 많은 절차를 거친 셈이다. 그럼에도 일반 사용자인 나는 아마 다른 대부분의 사람들과 마찬가지로, 이미 결정이 내려진 당일에 사이트 상단에 뜬 짙은 파란색 배너를 통해 그 사실을 알게 되었다. ToS 변경에 대한 안내는 고맙지만, 플랫폼이 이런 방향으로 갈지 아직 고민 중이었을 때 배너를 띄워 줬더라면, 그리고 토론 스레드나 최소한 투표라도 링크해 줬더라면 좋았을 것이다. 그래야 금지된 특정 범주가 아니라 플랫폼 전체의 자유에 대해 내가 가진 우려를 표할 수 있었을 테니까.

원문은 Marius님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.