연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드
(hackers.pub)- 연합우주(Fediverse) 개념 및 배경
- 중앙집중형 소셜 미디어(X(구 Twitter), Instagram 등)에 지친 사용자들을 위한 대안.
- 데이터 프라이버시, 알고리즘 추천, 끊임없는 광고 문제를 해소하기 위해 등장한 탈중앙화 네트워크.
- 연합우주의 구조와 작동 원리
- 구성: 하나의 거대한 플랫폼이 아니라, 서로 대화 가능한 독립적인 서버(인스턴스)들의 네트워크.
- 프로토콜: 모든 인스턴스가 ActivityPub이라는 공통 프로토콜을 사용하여 정보를 교환함.
- 이메일 유사 비유: Gmail 사용자가 네이버 메일 사용자와 소통하는 것처럼, Mastodon 사용자가 Misskey나 PeerTube 사용자와 통신할 수 있음.
- 사용자 ID 및 주요 플랫폼
- 사용자 ID 형식: @사용자명@인스턴스.도메인 (예: @honggildong@mastodon.social)
- 주요 플랫폼 및 인스턴스:
- Mastodon: X(구 Twitter)와 유사한 마이크로블로깅 플랫폼
- 예: mastodon.social, 우리.인생 (한국 중심)
- 특징: 500자 제한, 해시태그, 컨텐츠 경고 기능
- Misskey: 일본에서 개발된 고도로 커스터마이징 가능한 마이크로블로깅 플랫폼
- 예: misskey.io, 스텔라 (한국 중심)
- 특징: 리액션, 게임, 채팅 등 다양한 기능
- Pixelfed: Instagram과 유사한 이미지 공유 플랫폼
- 예: pixelfed.social, 추억:사진 (한국 중심)
- 특징: 스토리, 필터, 콘텐츠 발견 기능
- PeerTube: YouTube와 유사한 비디오 호스팅 플랫폼 (P2P 스트리밍)
- WriteFreely: 미니멀한 블로그 플랫폼 (Markdown 지원)
- Lemmy: Reddit과 유사한 링크 애그리게이터 및 토론 플랫폼
- Mastodon: X(구 Twitter)와 유사한 마이크로블로깅 플랫폼
- 플랫폼 vs. 인스턴스
- 플랫폼: Mastodon, Misskey, Pixelfed 등 소프트웨어 자체를 의미하며, 오픈 소스로 누구나 설치 가능.
- 인스턴스: 해당 소프트웨어를 실행하는 개별 서버. 예를 들어, mastodon.social과 우리.인생은 모두 Mastodon 플랫폼을 사용하는 별도의 인스턴스.
- 일부 서비스(예: Meta의 Threads)는 플랫폼과 인스턴스가 동일하지만, 대부분 연합우주는 여러 인스턴스로 구성됨.
- 연합우주의 매력 포인트
- 탈중앙화: 특정 기업이 모든 데이터를 통제하지 않음.
- 데이터 주권: 사용자가 자신의 데이터에 대해 더 많은 통제권을 가짐.
- 검열 저항성: 한 인스턴스가 차단되어도 다른 인스턴스로 손쉽게 이동 가능.
- 커뮤니티 중심: 각 인스턴스가 특정 관심사나 지역 커뮤니티를 기반으로 형성됨.
- 다양성: 여러 플랫폼과 인스턴스 중에서 선택할 수 있는 폭이 넓음.
- 연합우주 참여 방법
- 자신의 관심사나 지역에 맞는 인스턴스를 선택하여 계정을 생성.
- 한국 사용자라면 한국어 환경을 지원하는 우리.인생(Mastodon)이나 스텔라(Misskey) 같은 인스턴스를 추천.
- 소프트웨어 엔지니어를 위한 Hackers' Pub 등 특정 커뮤니티 참여도 가능.
- ActivityPub와 개발자 가이드
- ActivityPub 프로토콜:
- W3C 권장 표준으로, ActivityStreams 2.0 데이터 형식을 기반으로 함.
- 서로 다른 서버 간 정보를 교환하는 “공통 언어” 역할.
- 핵심 개념:
- 액터(actor): 사용자나 그룹 등 행동 주체 (고유 URL, inbox, outbox 포함)
- 액티비티(activity): 게시물 작성, 좋아요, 팔로우 등 행동
- 객체(object): 텍스트, 이미지, 비디오 등 공유 콘텐츠
- 실제 작동 방식 예시: 게시물 작성 시, 예를 들어 2025-02-21T14:30:00Z에 게시물이 생성되고 Create(Note) 액티비티로 변환되어 팔로워에게 전달됨.Follow 액티비티 등으로 상호작용이 이루어짐.
- 개발 팁:
- 액터 구현, HTTP 엔드포인트(수신함/발신함) 설정, HTTP 서명 및 인증, 데이터베이스 저장, 연합 정책 설정 등이 필요.
- 기존 구현체(Mastodon, Misskey)나 Fedify와 같은 프레임워크 활용 권장.
- WebFinger 프로토콜: @사용자명@인스턴스 형식의 ID를 실제 ActivityPub 액터 URL로 변환하는 방법 제공.
- 연합우주의 도전 과제와 미래 전망
- 도전 과제:
- 확장성: 수많은 서버 간 효율적인 통신 처리 필요.
- 모더레이션: 각 인스턴스의 자체 규칙으로 인해 일관성 부족 가능성.
- 콘텐츠 발견: 중앙화된 플랫폼보다 새로운 사용자나 콘텐츠 찾기가 어려울 수 있음.
- 사용자 경험: 일부 플랫폼의 UI/UX 개선 필요.
- 미래 전망:
- Threads와 같은 주요 서비스의 ActivityPub 채택으로 연합우주의 미래는 밝아 보임.
- 개발자와 사용자의 참여 증대로 건강하고 다양한 인터넷 문화 형성에 기여할 가능성.
- 결론
- 연합우주는 중앙집중형 소셜 미디어의 한계를 극복하고, 사용자에게 데이터 주권과 다양성을 제공하는 새로운 온라인 생태계임.
- 개발자와 사용자 모두가 이 탈중앙화 네트워크에 참여함으로써, 보다 풍부하고 건강한 인터넷 문화를 만들어 나갈 수 있음.
ActivityPub 프로토콜을 구현하면 누구나 인스턴스를 만들어 참여하고, 정보를 다른 인스턴스들에 보낼 수 있는건가요?
그렇다면 광고 뿌리기에 아주 좋을것 같아 보여요!
원하지 않는 광고는 모더레이션에서 거를 수 있습니다.
연합우주 각 인스턴스마다 행동강령이 있는데, 그 행동강령에 맞지 않는 적절하지 못한 인스턴스(스팸 및 광고, 혹은 부적절한 게시글)는 모더레이션에서 거를 수 있습니다.
블루스카이는 사용자들이 직접 뮤트리스트를 만들어서 공유하기도 하구요,
이해하신대로가 맞을 겁니다. 실제로 일부 인스턴스들은 폭력적이거나 가학적인 내용 혹은 NSFW 위주로 글이 올라오는 인스턴스가 있기도 한데, 누가봐도 안전한 SNS 이용에 어려움을 주는 인스턴스들은 타임라인으로 흘러가지 않도록 모더레이션 할 수 있습니다.