ActivityPub

한국 마스토돈 연합위키
둘러보기로 가기 검색하러 가기

ActivityPub(액티비티펍)은 분산형 / 탈중앙형 소셜 네트워크를 위한 프로토콜입니다. 마스토돈에서는 A 인스턴스가 B 인스턴스와 서로 글, 팔로우 등의 여러 가지 정보를 주고받을 수 있습니다. 이 때 서로 대화하는 양식이 ActivityPub 입니다.

ActivityPub은 마스토돈 만의 것이 아니라, 일종의 표준안입니다. 그래서 마스토돈은 ActivityPub를 구현한 다른 SNS와도 통신할 수 있습니다.

ActivityPub 을 지원하는 SNS 서버 소프트웨어들[편집]

관련 링크[편집]

호환성[편집]

기본적인 사항은 동일하지만, 프로그램마다 지원하는 범위가 다르거나 커스텀 기능이 있는 경우가 많아 모든 기능이 호환되지는 않습니다. 특히 미스키앞에 misskey를 붙인 전용 정보를 많이 사용하는 편입니다.

프로그래머를 위한 설명[편집]

ActivityPub은 분산형 / 탈중앙형 SNS를 위한 서버 <-> 서버, 클라이언트 <-> 서버 간의 프로토콜입니다. 보통은 서버간의 프로토콜만 구현합니다.

주요 특징[편집]

  • ActivityPub은 ActivityStreams 2.0 을 기반으로 한 프로토콜입니다. 특히 실제 개체는 ActivityStreams Vocabulary 권고안에 나와있습니다.
  • 주고받는 내용은 JSON-LD 입니다.
  • 사용자를 찾는 방법을 정의하지는 않습니다.
    • 시장 지배적인 구현체인 마스토돈이 WebFinger 라는 방법으로 사용자를 탐색하므로 마스토돈과 호환되려면 WebFinger도 구현해야 합니다.
    • WebFingermy_id@example.com 처럼 이메일과 같은 방식으로 사용자를 찾는 방법입니다.

ActivityStreams 개체 형태로 보기[편집]

실제 서비스중인 곳에서 어떤 형태로 글이나 사용자 등이 연합되는지 보면 이해하는 데 상당히 도움이 됩니다.

  • 마스토돈에서는 주소 끝에 ?format=json 을 넣으면 바로 JSON 형태로 게시글 등을 확인할 수 있습니다.
  • 마스토돈을 포함한 모든 구현체에서, HTTP Get 요청 시 헤더에 Accept: application/activity+json 을 넣으면 JSON 형태로 받아볼 수 있습니다.

개발자용 참고 링크[편집]