액티비티펍

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

액티비티펍(ActivityPub)은 콘텐츠 구성을 위해 액티비티 스트림 2.0 형식을 사용하며, 객체, 활동, 액터의 세 가지 주요 데이터 유형을 활용하는 인터넷 표준 규격이다. 액터는 받은 편지함과 보낸 편지함을 통해 데이터를 주고받으며, 사용자는 활동을 생성하여 다른 서버에 전달한다. 액티비티펍은 월드 와이드 웹 컨소시엄(W3C)에서 제안되었으며, 매스토돈을 비롯한 다양한 소셜 미디어 플랫폼에서 사용되고 있다. 액티비티펍은 분산 서비스 거부 공격 및 계정 이전의 어려움과 같은 비판을 받기도 하지만, 텀블러, 플립보드, 스레드 등 여러 플랫폼에서 구현을 지원하며, 소셜 미디어 플랫폼 간의 연결을 가능하게 할 잠재력을 가지고 있다.

액티비티펍
개요
종류분산 소셜 네트워크 프로토콜
개발자월드 와이드 웹 컨소시엄
크리스틴 레머-웨버
에반 프로드로무
기타
발표일2018년 1월 23일
기반ActivityStreams
JSON-LD
영향AT 프로토콜
웹사이트ActivityPub 공식 웹사이트
목적탈중앙화 소셜 네트워킹

이미지 준비중입니다.

ActivityPub 로고

이미지 준비중입니다.

ActivityPub의 핵심 기능을 보여주는 인포그래픽. 액터가 받은 편지함에서 메시지를 읽고, 받은 편지함은 연동을 통해 다른 액터로부터 메시지를 받는다. 액터는 또한 보낸 편지함으로 메시지를 보내고, 이는 연동을 통해 다른 액터에게 전달된다.
기술 정보
기반 프로토콜ActivityStreams
JSON-LD
관련 기술ActivityPump
통신 방식서버 간 통신
📚 더 읽어볼만한 페이지
  • 소셜 소프트웨어 - 협업 소프트웨어
    협업 소프트웨어는 팀의 협업을 지원하기 위해 설계된 소프트웨어로, 커뮤니케이션, 컨퍼런싱, 조정 기능을 제공하며 그룹웨어, 웹 기반 도구 등 다양한 형태로 활용된다.
  • 소셜 소프트웨어 - GNU 소셜
    GNU 소셜은 분산형 소셜 네트워크를 위한 자유 소프트웨어 플랫폼으로, 마이크로블로그 형태의 메시지 공유 기능을 제공하며, 플러그인 시스템과 OStatus 프로토콜을 지원한다.
  • 2018년 도입 - 대포병탐지레이더-II
    대포병탐지레이더-II는 능동위상배열 레이더 기술과 질화갈륨 소자를 사용하여 60km 이상 탐지 거리를 확보하고 18시간 연속 운용이 가능한 무기 체계이다.
  • 2018년 도입 - K808 장갑차
    K808 장갑차는 대한민국 육군의 기동력과 타격력 향상을 위해 현대로템에서 개발한 8륜 구동 차륜형 장갑차로, 2021년부터 양산되어 대한민국 육군에 납품되고 있으며, 런플랫 타이어, 타이어 공기압 조절 장치, 워터제트 추진 방식 등의 특징과 400마력 디젤 엔진을 탑재하여 우수한 기동성을 제공하며, 해외 시장 진출을 모색하고 있다.
  • 분산 컴퓨팅 - 클라우드 컴퓨팅
  • 분산 컴퓨팅 - 그리드 컴퓨팅
    그리드 컴퓨팅은 지리적으로 분산된 컴퓨터 자원을 연결하여 가상 슈퍼컴퓨터를 구축하는 기술이며, 유휴 자원을 활용하고 과학 연구 등 다양한 분야에 활용된다.

2. 디자인

액티비티펍은 콘텐츠 구성을 위해 액티비티 스트림 2.0 형식을 사용하며, 이는 자체적으로 JSON-LD를 사용한다. 액티비티펍에서 사용되는 세 가지 주요 데이터 유형은 객체, 활동, 액터이다. 객체는 이미지, 비디오, 위치, 이벤트 등 추상적인 항목이 될 수 있다. 활동은 객체를 생성하고 수정하는 작업이며, 예를 들어 `Create` 활동은 객체를 생성한다. 액터는 개인, 그룹, 응용 프로그램 또는 서비스를 나타내며 객체의 소유자이다.

모든 액터 유형에는 사용자의 활동을 주고받는 받은 편지함과 보낸 편지함 스트림이 있다. 데이터를 게시하려면(예: 기사 좋아요) 사용자는 기사 객체를 좋아한다고 선언하는 활동을 생성하고 이를 보낸 편지함에 게시한다. 그러면 액티비티펍 서버는 활동의 `to`, `bto`, `cc`, `bcc` 필드에 나열된 받은 편지함에 POST 요청을 통해 해당 활동을 전달한다. 수신 서버는 새로 받은 활동을 처리하고 좋아요 액션을 추가하여 기사를 업데이트한다.

2.1. 데이터 예시

다음은 사용자 계정을 나타내는 액터 객체의 예시다.

```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"@language": "ja"
}
],
"type": "Person",
"id": "https://kenzoishii.example.com/",
"following": "https://kenzoishii.example.com/following.json",
"followers": "https://kenzoishii.example.com/followers.json",
"liked": "https://kenzoishii.example.com/liked.json",
"inbox": "https://kenzoishii.example.com/inbox.json",
"outbox": "https://kenzoishii.example.com/feed.json",
"preferredUsername": "kenzoishii",
"name": "石井健蔵",
"summary": "この方はただの例です",
"icon": [
"https://kenzoishii.example.com/image/165987aklre4"
]
}
```

기사 객체를 좋아하는 활동의 예시:

```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"@language": "en"
}
],
"type": "Like",
"actor": "https://dustycloud.org/christine/",
"summary": "Christine liked 'Minimal ActivityPub update client'",
"object": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
"to": [
"https://rhiaro.co.uk/#amy",
"https://dustycloud.org/followers",
"https://rhiaro.co.uk/followers/"
],
"cc": "https://e14n.com/evan"
}
```

기사 객체의 예시:

```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"@language": "en-GB"
}
],
"id": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
"type": "Article",
"name": "Minimal ActivityPub update client",
"content": "Today I finished morph, a client for posting ActivityStreams2...",
"attributedTo": "https://rhiaro.co.uk/#amy",
"to": "https://rhiaro.co.uk/followers/",
"cc": "https://e14n.com/evan"
}

3. 프로젝트 현황

ActivityPub은 월드 와이드 웹 컨소시엄(W3C)에서 인터넷 표준 규격으로 제안되었다. 초기에는 "ActivityPump"로 명명되었으나, "상호 발행"이라는 프로토콜의 목적에 더 부합한다고 여겨져 "ActivityPub"으로 변경되었다.

2023년, 독일의 주권 기술 기금(Sovereign Tech Fund)은 다양한 액티비티펍 구현과 사양 준수 여부를 테스트하기 위한 새로운 제품군을 구축하기 위해 socialweb.coop에 152000EUR를 기부했다.

4. 비판

잘 최적화되지 않은 액티비티펍 구현은 네트워크의 분산된 특성으로 인해 다른 웹사이트 및 서버에 의도치 않은 분산 서비스 거부 공격을 유발할 수 있다. 예를 들어, 마스토돈의 OpenGraph 링크 미리보기 구현을 들 수 있는데, OpenGraph 메타데이터가 있는 링크를 포함하는 게시물을 수신하는 모든 인스턴스는 관련 데이터(예: 썸네일)를 매우 짧은 시간 내에 다운로드하며, 이는 갑작스러운 요청 폭주로 인해 서버 속도를 늦추거나 충돌을 일으킬 수 있다.

액티비티펍은 계정을 한 서버에서 다른 서버로 기본적으로 이동하는 것을 지원하지 않아, 구현 시 자체적인 해결책을 구축해야 한다는 비판을 받아왔다. 페디버스 개선 제안 기구를 통해 이동 활동(Move activity)을 사용하여 계정을 이전하는 표준화된 시스템을 구축하기 위한 작업이 진행되어 왔지만, 현재 제안은 기본적인 팔로워 이전만 허용하며, 다른 모든 데이터는 원래 계정에 연결된 상태로 유지된다.

ActivityPub 구현체는 원격 게시물의 답글 및 답글 스레드의 일부가 누락되고, 원격 게시물에 대한 오래된 통계(예: 좋아요 및 리포스트)를 표시한다는 비판을 받아왔다. 그러나 이것은 ActivityPub 프로토콜 자체의 문제가 아니라 필요할 때 업데이트된 데이터를 위해 콘텐츠를 새로 고치지 않는 구현체의 문제이다.

액티비티펍 소프트웨어에서 일반적으로 사용되는 사용자 이름 형식(예: @[email protected]영어과 같이 acct URI에서 체계를 at 기호로 대체한 형식)은 대부분의 사용자가 이해하기에는 너무 복잡하다는 비판을 받아왔다. 하지만 액티비티펍 자체는 사용자 이름으로 모든 URI를 지원하며, 이는 프로토콜 자체가 아닌, 마스토돈 및 기타 액티비티펍 구현의 제한 사항이다.

5. 액티비티펍을 사용하는 소프트웨어

액티비티펍은 다양한 종류의 소프트웨어에서 사용되며, 사용자들은 이를 통해 서로 다른 플랫폼 간에도 소통하고 콘텐츠를 공유할 수 있다.

소프트웨어 종류별 현황

* 연합 (서버 대 서버) 프로토콜: 마스토돈, 넥스트클라우드, 피어튜브, Pixelfed, Pleroma, 워드프레스, 스레드 등이 액티비티펍을 지원하여 서버 간 연합을 가능하게 한다.
* 오디오 호스팅: Castopod (2020년), Funkwhale (2018년, 사용자 11,448명) 등이 액티비티펍을 지원한다.
* 블로그: 다양한 블로그 플랫폼이 액티비티펍을 지원한다.

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자 수최초 ActivityPub 호환 릴리스포크
Akkoma18,1082022Pleroma
Epicyon32019
Firefish (구 Calckey)19,6952022Misskey
GNU social (구 StatusNet; 이전 Laconica)3682018
GoToSocial1,9192021
Honk72019
Iceshrimp3,0962023Firefish
마스토돈9,630,3832017
Micro.blog168,4182021
microblog.pub662022
Misskey849,9302018
넥스트클라우드 Social~502018
Pleroma138,2942018
Plume25,2902018
Sharkey11,0612023Misskey
Snac1762022
Socialhome2,3252016
Takahē2782022
Threads130,000,000 (2024년 2월)2023
Wafrn8912023
워드프레스6,000개 이상의 블로그2023
WriteFreely160,7612018


* 도서 목록: 북웜 (2021년, 사용자 34,351명 또는 27,698명)과 앙벤테르 (2021년)가 액티비티펍을 지원한다.
* 소셜 뉴스:

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자최초 ActivityPub 호환 출시포크
플립보드145,000,000 (2023년 2월) 2023
kbin 66,3202023
레미 392,0742019
lotide 4572020
mbin 5,4902023kbin


* 기타/멀티 포맷:

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자 수최초 액티비티펍 호환 출시유형
Friendica20,0692019블로그, 이벤트 관리, 그룹, 이미지 갤러리
Gancio1,2732020캘린더, 이벤트 플래너
Guppe?2021그룹
Hubzilla5,7482017블로그, 이벤트 플래너, 파일 호스팅, 이미지 갤러리, 위키
Libervia?2022 (베타)블로그, 이벤트 관리, 파일 공유, 인스턴트 메시징
매트릭스 (브리지를 통해)-2021인스턴트 메시징
Mobilizon45,5032020이벤트 관리, 그룹
Owncast2402022실시간 스트리밍
PeerTube351,1422018비디오 공유
Pixelfed18,7332018이미지 공유
Postmarks292023소셜 북마크
Streams?2022블로그, 이미지 공유, 위키
Zap222019블로그, 파일 호스팅, 이미지 갤러리


* 구현 예정: 텀블러, 깃랩(GitLab), 고스트(Ghost), 포지조(Forgejo) 등에서 액티비티펍 구현이 예정되어 있다.

5.1. 연합 (서버 대 서버) 프로토콜

마스토돈, 넥스트클라우드, 피어튜브, Pixelfed, Pleroma, 워드프레스, 스레드

5.2. 오디오 호스팅

👆
좌우로 밀어서 보기
소프트웨어 이름사용자 수최초 ActivityPub 호환 릴리스
Castopod2020년
Funkwhale11,448명2018년

5.3. 블로그

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자 수최초 ActivityPub 호환 릴리스포크
Akkoma18,1082022Pleroma
Epicyon32019
Firefish (구 Calckey)19,6952022Misskey
GNU social (구 StatusNet; 이전 Laconica)3682018
GoToSocial1,9192021
Honk72019
Iceshrimp3,0962023Firefish
마스토돈9,630,3832017
Micro.blog168,4182021
microblog.pub662022
Misskey849,9302018
넥스트클라우드 Social~502018
Pleroma138,2942018
Plume25,2902018
Sharkey11,0612023Misskey
Snac1762022
Socialhome2,3252016
Takahē2782022
Threads130,000,000 (2024년 2월)2023
Wafrn8912023
워드프레스6,000개 이상의 블로그2023
WriteFreely160,7612018

5.4. 도서 목록

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자최초 ActivityPub 호환 릴리스
북웜34,351 (2021년), 27,698명 (2021년)2021년
앙벤테르?2021년

5.5. 소셜 뉴스

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자최초 ActivityPub 호환 출시포크
플립보드145,000,000 (2023년 2월) 2023
kbin 66,3202023
레미 392,0742019
lotide 4572020
mbin 5,4902023kbin

5.6. 기타/멀티 포맷

👆
좌우로 밀어서 보기
소프트웨어 이름총 사용자 수최초 액티비티펍 호환 출시유형
Friendica20,0692019블로그, 이벤트 관리, 그룹, 이미지 갤러리
Gancio1,2732020캘린더, 이벤트 플래너
Guppe?2021그룹
Hubzilla5,7482017블로그, 이벤트 플래너, 파일 호스팅, 이미지 갤러리, 위키
Libervia?2022 (베타)블로그, 이벤트 관리, 파일 공유, 인스턴트 메시징
매트릭스 (브리지를 통해)-2021인스턴트 메시징
Mobilizon45,5032020이벤트 관리, 그룹
Owncast2402022실시간 스트리밍
PeerTube351,1422018비디오 공유
Pixelfed18,7332018이미지 공유
Postmarks292023소셜 북마크
Streams?2022블로그, 이미지 공유, 위키
Zap222019블로그, 파일 호스팅, 이미지 갤러리

5.7. 구현 예정

* 텀블러 (2022년 11월 발표)
* 깃랩(GitLab)
* 고스트(Ghost)
* 포지조(Forgejo)