
코드 호스팅이 왜 한 곳에 다 모여있을까
생각해보면 좀 이상한 일이에요. 우리가 이메일을 주고받을 때는 지메일 쓰는 사람이 네이버 메일 쓰는 사람한테 자유롭게 메일을 보내잖아요. 트위터에서 도망친 사람들이 모이는 Mastodon이나 Bluesky도 서로 다른 서버끼리 게시물이 오가고요. 그런데 코드 호스팅, 그러니까 Git 저장소를 올려두는 곳은 사실상 GitHub 하나에 다 몰려 있어요. GitLab이나 Codeberg 같은 대안이 있긴 하지만, 거기에 있는 프로젝트에 PR(Pull Request)을 보내려면 그쪽에도 따로 계정을 만들어야 하죠. 이게 당연한 게 아니라는 문제 제기를 하는 프로젝트가 바로 Tangled예요.
Tangled가 말하는 'Forge의 연합'
Forge라는 단어가 좀 낯설 수 있는데요, 이건 GitHub, GitLab, Gitea처럼 "Git 저장소를 호스팅하면서 이슈, PR, 코드 리뷰 같은 협업 기능까지 제공하는 플랫폼"을 통틀어 부르는 말이에요. 대장간(forge)에서 코드를 두드려 만든다는 비유에서 온 표현이고요.
Tangled가 주장하는 건 단순해요. "이 forge들이 서로 통신할 수 있어야 한다"는 거예요. 내가 Codeberg에 계정이 있고, 어떤 프로젝트는 GitHub에 있다고 쳐요. 지금은 GitHub 계정을 새로 만들어야 PR을 보낼 수 있는데, 만약 forge들이 연합되어 있다면 내 Codeberg 계정으로도 GitHub 프로젝트에 PR을 보낼 수 있어야 한다는 거죠. 마치 지메일에서 네이버 메일로 메일 보내듯이요.
Tangled는 이 문제를 풀기 위해 Bluesky가 쓰는 AT Protocol을 기반으로 시스템을 만들고 있어요. 사용자의 신원(identity)이 특정 서버에 묶이지 않고, 자기 도메인이나 DID(분산 식별자)로 표현되기 때문에, 어디서든 "나는 나야"를 증명할 수 있게 됩니다. PR이나 이슈도 ActivityPub이나 비슷한 메시지 형태로 서버 간에 오갈 수 있게 설계되고 있고요.
기술적으로 어떻게 가능한가
핵심은 Git 자체가 이미 분산 시스템이라는 점이에요. Git은 Linus Torvalds가 처음부터 "중앙 서버 없이도 동작하게" 만든 도구예요. 내 로컬 저장소가 원본만큼 완전한 사본을 가지고 있고, 패치를 이메일로 주고받던 게 Git의 원래 사용 방식이었죠. 리눅스 커널은 지금도 메일링 리스트로 패치를 받습니다.
그러니까 사실 Git은 진작부터 연합되어 있었어요. 다만 GitHub가 등장하면서 "PR"이라는 워크플로우와 이슈 트래커, 코드 리뷰 UI를 묶어 표준화했고, 그게 너무 편해서 다들 GitHub에 모이게 된 거예요. Tangled는 "PR과 이슈 같은 메타데이터도 분산 프로토콜로 주고받자"는 마지막 퍼즐을 맞추려는 시도라고 보면 됩니다.
비슷한 시도들과 비교해보면
Forgejo(Gitea의 포크) 진영에서도 ForgeFed라는 ActivityPub 기반 연합 프로토콜을 만들고 있어요. Codeberg는 이 ForgeFed를 적극 지원하는 입장이고요. 또 Radicle이라는 프로젝트는 P2P 방식으로 아예 서버 자체를 없애버리는 접근을 취하고 있죠. 노드끼리 직접 코드와 이슈를 주고받는 방식인데, 이건 좀 더 급진적인 형태예요.
Tangled의 차별점은 AT Protocol을 골랐다는 거예요. ActivityPub은 Mastodon에서 검증되긴 했지만 분산 신원 측면에서 한계가 있고, AT Protocol은 "PDS(개인 데이터 서버)를 옮겨다닐 수 있다"는 강력한 데이터 이식성을 가지고 있거든요. 내 계정과 내 데이터를 한 서버에서 다른 서버로 통째로 옮길 수 있는 거예요.
한국 개발자 입장에서 보면
현실적으로 당장 GitHub를 떠나라는 얘기는 아니에요. 회사 일은 거의 GitHub Enterprise나 GitLab에서 돌아가고, 채용에서도 GitHub 프로필이 사실상 표준이니까요. 다만 마이크로소프트가 GitHub를 인수한 이후 AI 학습 데이터로 코드가 쓰이는 문제, 특정 국가 개발자 계정 차단 같은 사건들이 있었던 걸 떠올려보면, "코드 호스팅 단일 실패점"이라는 위험은 분명히 있어요.
사이드 프로젝트나 개인 작업물은 Codeberg나 Tangled 같은 대안 forge에 백업으로 올려두는 것도 좋은 습관이고, 길게 보면 이런 연합 forge가 표준화될 때 미리 워크플로우를 익혀두는 것도 의미가 있어요.
마무리
GitHub 독점이 영원하지 않을 수 있다는 가능성, 그리고 Git의 원래 정신이 분산이었다는 점을 다시 생각해보게 하는 프로젝트예요. 여러분은 GitHub 외에 어떤 코드 호스팅을 써보셨나요? Forge 연합이 정말 필요하다고 느끼시나요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공