GitHub의 Copilot 이슈 생성과 AI 중심 기능 도입을 계기로, 저자가 GitHub를 떠나 Codeberg와 자체 호스팅으로 옮기며 느낀 불신, 라이선스와 데이터셋 문제, 그리고 개발 문화와 오픈소스의 미래에 대한 우려를 정리한 글.
Riven Skaye / 2025년 5월
GitHub는 오랫동안 내 프로젝트들의 좋은 집이었다. 트래픽도 없고, 눈에 띄지도 않았으며, 드물게 외부에서 상호작용이 있더라도 코드 만지는 걸 좋아하는 사람들끼리의 인간적인 교류였다. 하지만 이제 변화의 조짐이 보이고 있고, 나는 AI가 싸질러 놓은 이슈 하나라도 받을 위험을 감수하고 싶지 않다.
나는 내 작업 흐름에 AI를 강제로 끼워 넣는 지점에서 선을 긋는다. Copilot이나 비슷한 AI 도구로 열린 이슈는 일절 인정하지 않을 거다. 소프트웨어를 쓰다가 막히는 부분이 있다면, 네가 직접 문제를 적어 넣을 수 있다. 코드를 볼 필요도 없고, 동작 원리를 알 필요도 없다. 그냥 “이거 고장났어요, 고쳐주세요(pls fix)”라고만 적어도 나는 기꺼이 도와준다. 하지만 네가 직접 이슈 하나 쓰는 수고도 안 하겠다면, 나도 널 도와줄 생각이 없다. 그리고 GitHub는 자기네 AI를 차단하는 기능도 제공하지 않기 때문에 남은 유일한 해결책은 플랫폼 전체에서 그냥 떠나버리는 것뿐이다.
이 글은 승천일 연휴 동안에 수정했다. 4일 동안 충분히 생각을 정리할 시간이 있어서, 실수들을 고치고 아직 결정을 못 내렸던 부분들에 대해서도 방향을 정하게 되었다.
이건 근거도 없이 징징대는 글이 아니다. 매 줄마다 M$를 까대는 글이 될 것도 아니다(솔직히 말하면, 최근 결정들 때문에 GH에서 밀려나고 있으니 그럴 예정이긴 하다). 여기서 내가 내리는 선택들과 쓰는 내용에는 실제 이유와 논거가 있다.
그렇다고 해서 이게 벼락처럼 갑자기 생긴 일은 아니다. 2022년까지 거슬러 올라간다. 사람들이 Copilot과 Copilot이 세상에 토해낸 코드의 양을 두고 M$를 상대로 소송을 제기했을 때부터다. 라이선스가 허용하는 범위를 한참 넘어선 코드들이 서로 라이선스가 안 맞는 프로젝트들에 사용되고 있었고, 그걸 쓰는 사람들은 그런 사실을 애초에 듣지도 못해서 아무것도 모른 채였다.
아니면 2018년으로 더 거슬러 올라갈 수도 있겠다. M$가 GH를 인수했을 때 수많은 사용자들이 분노했고, 그때부터 이미 사람들이 “과연 포용, 확장, 소멸(Embrace, Extend, Extinguish)을 지금껏 안전하다고 여겨졌던 플랫폼에 어떻게 적용할까?”를 의심하기 시작했다. 유저를 항상 ‘제품’이라 부르던 개발사들이, 갑자기 자기들도 똑같은 함정에 걸려든 기분을 느끼게 된 것이다. 그전까지 GitHub는 달라 보였다. 하지만 이제 사람들 머릿속 뒤편에서 이런 말이 다시 울려 퍼졌다.
네가 돈을 내고 제품을 쓰는 게 아니라면, 네가 곧 제품이다.
앞에서 말했듯이, 2025-05-19 기준으로 GitHub는 AI 찌꺼기 이슈를 생성할 수 있게 했고, 1337 H4X0R! rizz를 위한 바이브 코딩도 시켜준다. 혹시 “그냥 Copilot 유저 페이지 가서 차단하면 되지 않나?”라고 생각하고 있다면, 그런 시도는 하지 말라는 경고를 새겨들어라(진짜로 차단하고 싶은 마음뿐이더라도). 그 과정을 밟으면 Copilot 프로그램에 가입시키려고 들 것이다.
나를 모르는 사람을 위해 말하자면, 나는 AI를 극도로 혐오한다. 특정 작업을 위해 훈련된 신경망은 유용할 수 있다. 하지만 LLM과 범용 모델은 그저 쓰레기에 불과하다. 헛소리를 지껄이고, 망쳐놓고, 잘 봐줘야 허위 정보를 늘어놓는다. 나는 경계선에 있는 해적질 비디오 인코딩을 취미로 한다. 업로드/다운로드가 나쁜 것이고, 그게 법적으로 처벌 대상이다. 보호된 자료를 배포한다고 주장할 일은 절대 없다. 그러다 보니 하나의 흐름이 눈에 들어온다. NN """스케일러"""(사실상 그냥 셰이더)들은 잘못 쓰이면 텍스처와 디테일을 모조리 날려버리는 경향이 있다. 디테일을 지들 마음대로 지어내기도 잘한다. 다만 이건, 출력에서 진짜 필요한 비트들만 나오게 제한(clamp)하면 고칠 수 있다. LLM과 다른 AI들도 다를 게 없다. 그리고 GH가 지금 하고 있는 일은, 랜덤한 사람들에게 자기네 초대형 모델을 들려주면서 남들한테 AI 찌꺼기를 잔뜩 투척하라고 부추기는 것이다. 난 이걸 용납할 생각이 없고, 너희도 그러지 말아야 한다!
이 모든 것이 나를 가능한 한 빨리 탈출하고 싶게 만들었다. 중요한 것들을 옮길 준비는 마쳤으니, 이제 뭘 할 수 있는지 보자.
그렇다면 지금 날 GitHub에 붙잡아 두는 건 뭘까? 음, crates.io와 docs.rs1 요구사항 때문이다. 그들은 현재 다른 제공자를 지원하지 않는다2. 그리고 나 자신이 게으르기도 하고, 또는 다른 방법으로는 가입이 안 됐기 때문에 GH OAuth에 묶여 있는 서비스들도 몇 개 있다. 하지만 그것도 큰일은 아니다! GH 프로필을 이용해서 사람들을 내 Codeberg로 안내하면 된다. 또 필요하다면, Codeberg 쪽에서 푸시가 들어오면 즉시 미러로 전달하도록 설정할 수도 있다. (수정: 안 한다. 경고와 링크를 명시적으로 추가한 뒤에 마이그레이션하고 아카이브로 남길 거다.)
안타깝게도 이런 조치는 정작 메시지를 받아야 할 곳에 크게 닿지를 않는다. GitHub는 밈을 북돋는 데 쓰이고 있다. 벌써 1년이 넘게 그런 식으로 해왔고, 어느 정도 제대로 코딩할 줄 아는 사람들에게 경험을 더 나쁘게 만들면서까지 계속 밀어붙이고 있다. 물론 훨씬 전부터 AI 쓰레기를 굴리긴 했지만, 이렇게까지 공격적으로 모두에게 사용을 강요해서 개발자 경험을 해치는 건 최근의 일이다.
이 일 때문에 Arctic Code Vault가 정말 좋은 것인지, 아니면 M$가 Copilot 훈련용으로 수백만 개의 무료 저장소를 얻기 위한 또 다른 각도였는지도 다시 생각하게 됐다. 앞에서 링크한 소송도 똑같은 문제를 다룬다. 모델이 원래는 그렇게 쉽게 갖다 써서는 안 되는 코드를 문자 그대로 내뱉는다는 점 말이다. 그리고 그들이 유일한 가해자도 아니다. 네 코드는 아마 BigCode Stack 안에 들어 있을 것이다. 이건 67TB짜리 데이터셋인데, 단순히 제외 요청을 무시했을 뿐 아니라, 불투명한 옵트아웃 절차까지 갖고 있다. 네가 원하든 말든, 그냥 네 오픈소스 코드를 포함시켜 버린다. 마지막 릴리스는 2023년이었고, 2024년 2월자 이 이슈에 따르면, 안 들어 있다고 새끼손가락 걸고 약속했던 코드까지 포함돼 있다.
내 편집증은 아마 이보다 훨씬 더 많은 데이터셋이 세상에 널려 있을 것이고, 어떤 것들은 출처조차 밝히지 않을 거라는 확신에서 나온다. 누가, 어느 회사가 네 코드를 자기네 AI 훈련에 쓰고 있는지 알아낼 방법이 전혀 없다. 라이선스를 위반하는 건 오랫동안 손가락질받아 왔지만, AI는 남의 땀으로 이득을 챙기던 디지털 도둑질의 시대를 다시 열고 있는 것 같다. 저작자 표시 한 줄, 라이선스 호환성 한 줄 없이 말이다.
요컨대, 네가 오픈소스 활동을 하고 있다면, 넌 공짜 노동력으로 쓰이고 있는 셈이다. 어떤 사람이 네 제품을 쓰면서도 밖으로 티 안 내는, 그 미심쩍지만 그래도 어느 정도 익숙한 수준의 ‘영광’조차 아닌, 사람들이 자신의 작업을 자랑스럽게 공유하게 만들던 신뢰와 약속이 깨지는 방식으로 말이다. 이건 그냥 “어디 BigCorp 내부 툴링이 C++ Georg의 FLOSS 코드에 의존하고 있지만, 우리는 그걸 외부에 말하지 않는다.” 수준이 아니다. Georg의 평생 작업을 100번쯤 되씹어서 토해내고, 그 코드를 자기네 폐쇄형 쓰레기 안에 대충 넣어 돈을 버는 것이다. Georg를 직접 고용해서 최적화된 코드를 얻는 대신에 말이다.
새로 나온 GitHub Copilot for docs, issues, PRs는 이 플랫폼의 안전성뿐 아니라, 업계 전체로서의 기술의 미래에 대해서도 나를 걱정하게 만든다. 우리가 기업들이 자기 코드가 어디서 왔는지 투명하게 공개할 거라고 신뢰할 수 없다면, FSF 같은 단체들이 대응하기 위해 만들어졌던 과거의 과도한 협박과 입막음의 시대로 다시 돌아가지 않겠다는 보장이 어디 있을까? (현재 FSF의 상황은 잠시 잊어두자.) 그리고 이제 막 시작한 개발자들을 믿고, 스스로 문서를 읽으리라고 기대할 수 있을까? 아니면 그냥 AI로 요약하게 내버려두고, 그 과정에서 중요한 부분이 빠졌거나 이미 알려진 제한 사항이나 함정 때문에 코드가 안 돌아가면 불평만 쏟아낼까?
새로운 세대의 프로그래머들한테서 벌어지는 일을 떠올리면, 정말 할 말이 많아진다. 우리는 이미 “바이브 코딩”이나, 사람에게 묻기 전에 ChatGPT나 다른 LLM에게 먼저 코드를 물어보는 행태를 보며, 웃으면서도 내심 공포를 느끼고 있다. LLM이 짜 준 코드가 미묘하게(혹은 대놓고) 망가지는 방식을, 실전에서 여러 번 보여줘야 했다. 예를 들어 /admin/ 엔드포인트는 인증으로 보호돼 있다. 하지만 그건 존재하는 페이지에 대한 GET 요청에만 통한다. POST나 PUT을 보내면 인증이 우회되고, 빠진 인자들은 친절하게 설명까지 된다. 이런 일이 더 흔해질 생각을 하면 끔찍하지만, 이미 사방에서 그런 징조를 보고 있다. AI는 프로그래머 세계의 엔쉬티피피피케이션(enshittification)으로 변해가고 있다. 기업들은 이제 AI를 신입을 끌어들이는 미끼로 쓰려 하고, 이게 분명한 미래라고 믿기 때문에, 하이프 열차에 안 올라탄 사람을 보면 미쳤다고 생각한다. 하지만 난 그런 미래의 일부가 되고 싶지 않다.
내가 보기엔 분명한 메시지를 보내는 방법은 딱 두 가지뿐이고, 둘 다 실제로 도움이 될지는 확실치 않다. 그 메시지는 두 가지 형태 가운데 하나를 취할 수 있다. 첫 번째 방법은 힘을 모아 청원을 시작하거나, 이 광기를 멈추기 위해 공개 서한을 작성하는 것이다. 모든 AI를 멈추자는 얘기는 아니다. 사람들 목구멍에 AI 찌꺼기를 억지로 밀어 넣는 부분만이라도 멈추자는 말이다. 그 편지에는 누구든 서명할 수 있고, 이걸 원치 않는 사람이 얼마나 많은지 분명하게 보여줄 수 있을 것이다. 두 번째 방법은, 우리가 옮길 수 있는 모든 것을 GitHub 밖으로 옮기는 것이다. 훨씬 더 극단적인 수단이고, 규모가 큰 프로젝트일수록 작업량이 막대해진다. 하지만 지금 벌어지는 변화들이 얼마나 환영받지 못하는지 더없이 분명하게 보여줄 것이다. OpenJDK 같은 일부 대형 프로젝트는, 필요해지는 즉시 GH를 떠날 수 있도록 미리 준비해 두기도 했다. 그들, 그리고 그들 같은 다른 유명 프로젝트들이 실제로 움직여 준다면 정말 좋을 것이다.
솔직히 말해, 이 둘 중 어느 것도 당장 일어날 것 같진 않다. 이 모든 일의 발단이 된 토론 스레드는, 당장이라도 떠나겠다고 협박하는 사람들로 가득하지만, 실제로 행동에 옮길 준비가 된 사람들은 별로 없다. 어떤 이들은 M$ 저장소에 AI 생성 이슈를 폭탄처럼 퍼부어서 진흙탕 싸움을 벌이자고도 하는데, 나는 경영진이 오히려 그걸 승리로 여길 거라고 본다. 어쨌든 이슈 처리 시간은 (즉시 닫기로) 줄어들고, Copilot 사용자 수는 늘어나니까 말이다. 이런 결정을 내리는 사람들은 현실과 철저히 동떨어져 있어서, 그냥 숫자가 웃기게 올라가는 걸 보며 좋아한다.
또 다른 사람들은 “이 이슈가 해결되지 않으면 떠나겠다”고 말한다. 하지만 “엿이나 먹어라, AI는 남는다(get rekt, AI is staying)”는 답변도 기술적으로는 토론에 응답하는 셈이다. 어떤 이들은 “비슷한 일이 또 벌어지면 떠나겠다”고 말한다. 다음번에도 똑같이 말하겠다는 준비를 해 두었겠지. 그럼에도, 실제로 GitHub에서 빠져나갈 방법을 적극적으로 찾기 시작한 사람들이 꽤 많다는 사실에는 기분 좋게 놀랐다.
여론이라는 동전이 어느 쪽으로 떨어지든, 나는 떠난다. 저장소들은 곧 미러 아카이브로 전환될 것이다. GH 쪽에서는 가능한 한 Issues와 PRs를 전부 꺼버릴 것이고, 이 블로그의 업데이트·빌드·호스팅 자동화를 다른 곳으로 옮길 방법을 알아볼 것이다 너는 이미 내 VPS에서 이 글을 읽고 있다. 누군가 이 글을 읽을 때쯤에는 내가 처음 글을 올렸을 무렵에는, 블로그는 이미 미러링되어 깨진 부분이 있는지를 확인 중이었다. 워크플로 마이그레이션을 쉽게 만드는 방법 같은, 이주에 대한 팁이 있다면 Codeberg나 이메일로 연락을 부탁한다.