본문 바로가기
프로그램 개발해서 돈벌기/일반

Meta에서 출시 한 Threads에서 사용하는 ActivityPub 프로토콜 간략한 설명

by ubmuhan 2023. 7. 14.
반응형

ActivityPub

ActivityPub은 소셜 미디어 플랫폼 및 애플리케이션 간에 분산된 소셜 네트워킹을 위한 통신 프로토콜입니다. 이 프로토콜은 소셜 미디어 플랫폼이 서로 통신하고 상호작용할 수 있도록 하는 표준화된 방법을 제공합니다.

 

ActivityPub은 W3C의 Social Web Working Group에서 개발되었습니다. 이 그룹은 웹 기반의 소셜 네트워킹을 위한 표준을 제정하는 데 참여한 기술 전문가들로 구성되어 있습니다. ActivityPub은 이 그룹에서 개발된 가장 중요한 표준 중 하나입니다.

 

ActivityPub은 사용자, 그룹, 앱 등을 대표하는 개체들 간에 활동을 교환하기 위한 표준화된 방법을 제공합니다. 이를 통해 사용자는 다른 소셜 미디어 플랫폼 간에 상호작용하고, 콘텐츠를 공유하고, 팔로우하고, 좋아요를 누르는 등의 활동을 할 수 있습니다. 이 프로토콜은 분산된 아키텍처를 기반으로 하며, 사용자는 여러 다른 서버 또는 플랫폼에 계정을 가질 수 있습니다.

 

ActivityPub은 일련의 JSON-LD (JSON Linked Data) 메시지를 사용하여 활동을 전달합니다. 이 메시지들은 사용자 활동, 게시물, 주석, 좋아요 등 다양한 유형의 소셜 상호작용을 포함할 수 있습니다. 이런 활동들은 다른 서버로 전송되고, 수신 서버에서는 해당 활동을 처리하고 사용자에게 알림을 보내거나 다른 작업을 수행할 수 있습니다.

 

ActivityPub은 다양한 소셜 미디어 플랫폼에서 채택되고 있으며, 그 중에서도 Mastodon, PeerTube, Pixelfed 등이 널리 알려져 있습니다. 이들 플랫폼은 ActivityPub 프로토콜을 사용하여 사용자들이 서로 상호작용할 수 있는 분산된 소셜 네트워킹 환경을 제공합니다.

 

따라서 ActivityPub은 소셜 미디어 플랫폼의 중앙집중화와 단일 제어권에 대한 의존성을 해소하고, 개인의 데이터 소유권과 프라이버시를 강조하는 분산된 소셜 네트워킹을 가능하게 합니다.

 

ActivityPub 주요 구성 요소

  1. Actor (주체): ActivityPub에서는 사용자, 그룹, 앱 등을 "액터"라고 부릅니다. 액터는 고유한 식별자(URI)와 프로필 정보를 가지고 있습니다. 각 액터는 활동을 생성하고 수신할 수 있는 행위 주체입니다.
  2. Activity (활동): 활동은 액터 간에 전송되는 메시지입니다. 활동은 다양한 유형의 상호작용을 나타내며, 예를 들어 "포스트 작성", "좋아요", "팔로우" 등이 있습니다. 활동은 JSON-LD 형식으로 정의되어 있으며, 액터들은 이러한 활동을 생성하고 처리할 수 있습니다.
  3. Inbox 및 Outbox: 각 액터는 자체적인 Inbox(수신함)과 Outbox(송신함)을 가지고 있습니다. Inbox는 다른 액터로부터 수신된 활동을 저장하는 곳이며, Outbox는 액터가 생성한 활동을 보관하는 공간입니다. 이를 통해 액터는 활동을 수신하고 생성한 활동을 다른 액터에게 전송할 수 있습니다.
  4. Federated Architecture (연합 아키텍처): ActivityPub은 분산된 아키텍처를 기반으로 합니다. 각 소셜 네트워킹 서비스는 자체 서버를 운영하며, 서로 다른 서버 간에 액터와 활동을 전송하고 수신합니다. 이를 통해 사용자는 다양한 플랫폼에서 상호작용하고 데이터를 공유할 수 있습니다.

 

ActivityPub로 구현한 추천할만한 오픈 소스 소셜 미디어 플랫폼

  • Mastodon
  • Mksskey
  • PeerTube
  • Pixelfed

 

ActivityPub 정보 모음

https://github.com/BasixKOR/awesome-activitypub

 

GitHub - BasixKOR/awesome-activitypub: Awesome list of ActivityPub based projects

Awesome list of ActivityPub based projects. Contribute to BasixKOR/awesome-activitypub development by creating an account on GitHub.

github.com

 

W3C ActivityPub

https://www.w3.org/TR/activitypub/

 

ActivityPub

This section is non-normative. B.10 Sanitizing Content Any activity field being rendered for browsers (or other rich text enabled applications) should take care to sanitize fields containing markup to prevent cross site scripting attacks.

www.w3.org

 

 

 
반응형

댓글