What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

연합우주란 무엇일까?

X(구 Twitter)나 Instagram 같은 중앙화된 소셜 미디어에 지치셨나요? 데이터 프라이버시, 알고리즘 추천, 그리고 끊임없는 광고가 걱정되시나요? 여기 대안이 있습니다. 바로 연합우주(fediverse)입니다.

페디버스(fediverse)는 “federated”(연합된)와 “universe”(우주)를 합친 말로, 한국어권에서는 주로 “연합우주”라고 불립니다. 연합우주는 하나의 거대한 플랫폼이 아닌, 서로 대화할 수 있는 독립적인 서버(인스턴스)들의 네트워크입니다.

이게 어떻게 가능할까요? 바로 ActivityPub이라는 프로토콜 덕분입니다. 이 프로토콜은 서로 다른 소셜 미디어 플랫폼이 정보를 교환할 수 있게 해주는 공통 언어 같은 것입니다.

연합우주는 어떻게 작동하나요?

연합우주를 이해하는 가장 쉬운 방법은 이메일 시스템과 비교하는 것입니다.

Gmail 사용자가 네이버 메일 사용자에게 이메일을 보낼 수 있는 것처럼, Mastodon 사용자는 Misskey나 PeerTube 사용자와 소통할 수 있습니다. (Mastodon, Misskey, PeerTube가 무엇인지는 아래에서 설명하겠습니다. Gmail과 네이버처럼 서로 다른 서비스라고 보시면 됩니다.) 이것이 가능한 이유는 이 서비스들이 모두 같은 언어인 ActivityPub 프로토콜로 대화하기 때문입니다.

연합우주에서 사용자 ID는 @사용자명@인스턴스.도메인 형식으로 되어 있습니다. 이메일 주소와 매우 비슷하죠? 예를 들면:

  • @honggildong@mastodon.social: mastodon.social 인스턴스 사용자
  • @kimcheolsu@pixelfed.social: pixelfed.social 인스턴스 사용자
  • @leeyeonghui@misskey.io: misskey.io 인스턴스 사용자

연합우주의 다양한 플랫폼 둘러보기

연합우주는 마치 여러 행성으로 이루어진 태양계 같습니다. 각 행성(플랫폼)은 고유한 특성을 가지고 있지만, 모두 같은 우주(연합우주)에 속해 있죠. 아래 표에서 주요 플랫폼들을 살펴봅시다:

플랫폼 설명 주요 인스턴스 특징
Mastodon X(구 Twitter)와 유사한 마이크로블로깅 플랫폼 • mastodon.social (공식 인스턴스)
• 우리.인생 (한국 중심)
500자 제한의 짧은 게시물, 해시태그, 컨텐츠 경고 기능
Misskey 일본에서 개발된 고도로 커스터마이징 가능한 마이크로블로깅 플랫폼 • misskey.io (가장 인기 있는 일본 인스턴스)
• 스텔라 (한국 중심)
리액션, 게임, 채팅 등 다양한 기능, 높은 커스터마이징 가능성
Pixelfed Instagram과 유사한 이미지 공유 플랫폼 • pixelfed.social (공식 인스턴스)
• 추억:사진 (한국 중심)
스토리, 필터, 발견 기능
PeerTube YouTube와 유사한 비디오 호스팅 플랫폼 • PeerTube.TV P2P 기술로 비디오 스트리밍, 채널, 재생목록
WriteFreely 미니멀한 블로그 플랫폼 • write.as Markdown 지원, 심플한 디자인
Lemmy Reddit과 유사한 링크 애그리게이터 및 토론 플랫폼 • lemmy.ml
• YuruLemmy (한국 중심)
커뮤니티(서브레딧과 유사), 투표, 토론

플랫폼 vs 인스턴스: 무슨 차이가 있을까?

연합우주를 이해할 때 흔히 혼동되는 개념이 있습니다. 바로 플랫폼(소프트웨어)과 인스턴스(서버)의 차이인데요.

플랫폼은 Mastodon, Misskey, Pixelfed와 같은 소프트웨어 자체를 의미합니다. 이들은 오픈 소스 소프트웨어로, 누구나 다운로드받아 설치할 수 있습니다.

인스턴스는 그 소프트웨어를 실행하는 개별 서버를 말합니다. mastodon.social과 우리.인생은 모두 Mastodon 플랫폼을 실행하는 별도의 인스턴스입니다.

Meta의 Threads 같은 일부 서비스는 플랫폼과 인스턴스가 동일합니다. 하지만 대부분의 연합우주 서비스는 여러 인스턴스로 구성되어 있습니다.

연합우주의 매력 포인트

연합우주가 갖는 몇 가지 매력적인 특징이 있습니다:

  1. 탈중앙화: 특정 기업이 모든 데이터와 규칙을 통제하지 않습니다. 각 인스턴스는 자체 규칙을 가질 수 있습니다.
  2. 데이터 주권: 자신의 데이터에 대한 더 많은 통제권을 가질 수 있습니다.
  3. 검열 저항성: 한 인스턴스가 차단되더라도 다른 인스턴스로 쉽게 이동할 수 있습니다.
  4. 커뮤니티 중심: 각 인스턴스는 특정 관심사나 지역 커뮤니티를 중심으로 형성됩니다.
  5. 다양성: 다양한 플랫폼과 인스턴스가 존재하여 선택의 폭이 넓습니다.

연합우주 시작하기

연합우주에 참여하는 것은 생각보다 쉽습니다:

  1. 자신의 관심사나 지역과 관련된 인스턴스를 선택합니다.
  2. 해당 인스턴스에 계정을 만듭니다.
  3. 다른 인스턴스의 사용자들을 팔로우하고 소통을 시작합니다!

한국 사용자라면 Mastodon 인스턴스인 우리.인생, Misskey 인스턴스인 스텔라 같은 한국어 중심 인스턴스를 추천합니다. 한국어 환경을 지원하고 한국 사용자들이 활발하게 활동하고 있어 시작하기 좋습니다.

아니면 이 글이 올라온 Hackers' Pub도 괜찮습니다. 소프트웨어 엔지니어들을 위한 소셜 미디어랍니다. 아직 개발중이라 공개적으로 가입을 받고 있지는 않습니다만, 홍민희에게 연락 주시면 계정을 생성해 드릴 수 있습니다.

ActivityPub: 연합우주의 심장

이제 개발자 관점에서 ActivityPub이 어떻게 작동하는지 자세히 살펴보겠습니다.

ActivityPub은 W3C에서 권장하는 표준 프로토콜로, 분산 소셜 네트워킹의 기반이 됩니다. ActivityStreams 2.0 데이터 형식을 기반으로 하며, 서로 다른 서버 간에 정보를 교환하는 방법을 정의합니다.

ActivityPub의 핵심 개념

ActivityPub은 몇 가지 핵심 개념으로 구성됩니다:

  1. 액터(actor): 사용자, 그룹 등 행동을 수행할 수 있는 주체입니다. 각 액터는 고유한 URL을 가지며, 수신함(inbox)과 발신함(outbox)을 가집니다.
  2. 액티비티(activity): 액터가 수행하는 행동으로, 게시물 작성, 댓글 좋아요, 다른 사용자 팔로우 등이 있습니다.
  3. 객체(object): 텍스트 게시물, 이미지, 비디오와 같이 생성되고 공유되는 콘텐츠입니다.

실제 작동 방식

홍길동(@honggildong@mastodon.social)이 게시물을 작성하고, 이영희(@leeyeonghui@misskey.io)가 이에 반응하는 과정을 살펴봅시다:

  1. 게시물 작성: 홍길동이 Mastodon에서 게시물을 작성합니다. Mastodon 서버는 이 게시물을 ActivityStreams 2.0 형식의 Create(Note) 액티비티로 변환합니다. 이 액티비티는 홍길동의 팔로워(이영희 포함)에게 전달됩니다.

  2. 게시물 수신: 이영희의 Misskey 서버는 이 액티비티를 받고 처리하여 이영희의 타임라인에 홍길동의 게시물을 표시합니다.

  3. 상호작용: 이영희가 게시물에 좋아요를 누르면, Misskey 서버는 Like(Note) 액티비티를 생성하여 홍길동의 Mastodon 서버로 보냅니다. 홍길동은 이영희가 자신의 게시물을 좋아했다는 알림을 받게 됩니다.

마치 다른 언어를 사용하는 사람들이 통역사를 통해 대화하는 것과 비슷하죠? ActivityPub이 바로 그 통역사 역할을 합니다.

ActivityPub의 실제 메시지 들여다보기

개발자로서 실제 ActivityPub 메시지가 어떻게 생겼는지 궁금하실 텐데요. 몇 가지 예시를 살펴봅시다:

1. 사용자 프로필(액터) 정보

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1"
  ],
  "id": "https://mastodon.social/users/honggildong",
  "type": "Person",
  "preferredUsername": "honggildong",
  "name": "홍길동",
  "summary": "연합우주의 개척자",
  "inbox": "https://mastodon.social/users/honggildong/inbox",
  "outbox": "https://mastodon.social/users/honggildong/outbox",
  "followers": "https://mastodon.social/users/honggildong/followers",
  "following": "https://mastodon.social/users/honggildong/following",
  "publicKey": {
    "id": "https://mastodon.social/users/honggildong#main-key",
    "owner": "https://mastodon.social/users/honggildong",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
  },
  "icon": {
    "type": "Image",
    "mediaType": "image/jpeg",
    "url": "https://mastodon.social/system/accounts/avatars/000/000/001/original/avatar.jpg"
  }
}

이 JSON 데이터는 홍길동의 프로필 정보를 담고 있습니다. 사용자 이름, 소개, 프로필 사진 URL, 그리고 중요한 inboxoutbox URL이 포함되어 있죠.

2. 게시물 작성 액티비티

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://mastodon.social/users/honggildong/statuses/123456/activity",
  "type": "Create",
  "actor": "https://mastodon.social/users/honggildong",
  "published": "2025-02-21T14:30:00Z",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://mastodon.social/users/honggildong/followers"
  ],
  "object": {
    "id": "https://mastodon.social/users/honggildong/statuses/123456",
    "type": "Note",
    "content": "<p>연합우주에 오신 것을 환영합니다! #fediverse #연합우주</p>",
    "published": "2025-02-21T14:30:00Z",
    "attributedTo": "https://mastodon.social/users/honggildong",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "cc": [
      "https://mastodon.social/users/honggildong/followers"
    ],
    "tag": [
      {
        "type": "Hashtag",
        "href": "https://mastodon.social/tags/fediverse",
        "name": "#fediverse"
      },
      {
        "type": "Hashtag",
        "href": "https://mastodon.social/tags/연합우주",
        "name": "#연합우주"
      }
    ]
  }
}

이것은 홍길동이 게시물을 작성했을 때 생성되는 Create(Note) 액티비티입니다. 게시물 내용, 해시태그, 공개 범위 등이 포함되어 있습니다.

3. 팔로우 액티비티

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://misskey.io/users/leeyeonghui/follow/1234",
  "type": "Follow",
  "actor": "https://misskey.io/users/leeyeonghui",
  "object": "https://mastodon.social/users/honggildong"
}

이영희가 홍길동을 팔로우할 때 생성되는 Follow 액티비티입니다. 단순하죠?

ActivityPub 서버 구현하기: 개발자를 위한 팁

직접 ActivityPub 서버를 구현하고 싶다면 다음 단계를 따라야 합니다:

  1. 액터 구현: 사용자 프로필 정보를 ActivityStreams 형식으로 제공합니다.
  2. 수신함과 발신함 설정: HTTP 엔드포인트를 만들어 액티비티를 받고 전송합니다.
  3. 서명 및 인증: HTTP Signatures를 사용하여 요청을 서명하고 검증합니다.
  4. 액티비티 처리: 다양한 액티비티 유형(Create, Follow, Like 등)을 처리하는 로직을 구현합니다.
  5. 데이터 저장: 사용자, 게시물, 액티비티 등의 정보를 데이터베이스에 저장합니다.
  6. 연합 정책 구현: 어떤 인스턴스와 연합할지, 어떤 컨텐츠를 허용할지 등을 설정합니다.

개발을 시작하기 전에 Mastodon, Misskey 같은 기존 구현체의 코드를 살펴보는 것이 도움이 됩니다. 처음부터 모든 것을 구현하는 것보다 Fedify 같은 프레임워크를 활용하는 것도 좋은 방법입니다.

WebFinger: 사용자를 찾는 방법

연합우주에서 @leeyeonghui@misskey.io 같은 사용자 ID를 어떻게 실제 ActivityPub 액터 URL로 변환할까요? 그 비밀은 WebFinger 프로토콜에 있습니다:

GET https://misskey.io/.well-known/webfinger?resource=acct:leeyeonghui@misskey.io

이 요청을 보내면 서버는 다음과 같은 응답을 반환합니다:

{
  "subject": "acct:leeyeonghui@misskey.io",
  "links": [
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "https://misskey.io/users/leeyeonghui"
    }
  ]
}

이제 https://misskey.io/users/leeyeonghui URL을 통해 사용자의 전체 프로필 정보를 얻을 수 있습니다. 마치 전화번호부에서 이름으로 전화번호를 찾는 것과 비슷하죠!

연합우주의 도전 과제와 미래

연합우주는 계속 성장하고 있지만, 몇 가지 도전 과제도 있습니다:

  1. 확장성: 수많은 서버 간의 통신을 효율적으로 처리하는 것은 쉽지 않습니다.
  2. 모더레이션: 각 인스턴스가 자체 규칙을 가지므로 콘텐츠 조정에 일관성이 부족할 수 있습니다.
  3. 발견성: 중앙화된 플랫폼에 비해 새로운 사용자나 콘텐츠를 찾기 어려울 수 있습니다.
  4. 사용자 경험: 일부 플랫폼은 아직 UI/UX 측면에서 개선이 필요합니다.

그러나 Threads와 같은 주요 서비스들이 ActivityPub을 채택하기 시작하면서, 연합우주의 미래는 밝아 보입니다. 개발자로서, 이런 성장하는 생태계에 참여할 수 있는 기회가 많이 있습니다.

마무리

연합우주와 ActivityPub은 중앙화된 소셜 미디어의 대안으로서 점점 더 주목받고 있습니다. 사용자에게 더 많은 통제권을 부여하고, 다양하고 풍부한 온라인 경험을 제공하는 연합우주의 세계는 계속해서 확장되고 있습니다.

개발자로서, 여러분은 이 새로운 탈중앙화된 웹의 생태계에 기여할 수 있습니다. 기존 애플리케이션에 ActivityPub 지원을 추가하거나, 완전히 새로운 서비스를 만들거나, 현재의 도전 과제를 해결하는 솔루션을 개발할 수 있습니다.

한국 개발자들의 참여가 늘어나면 한국 사용자들을 위한 더 다양하고 풍부한 서비스가 생길 것이고, 이는 더 건강하고 다양한 인터넷 문화를 만드는 데 기여할 것입니다.

그럼, 연합우주로의 여행을 시작해 보시는 건 어떨까요?

Read more →
6
3
3
0
0
0
0

If you find yourself in a disagreement with me and then try to get the last word by declaring that no, I need not respond further because you don't want to hear what I have to say in an attempt to eliminate the misunderstanding, then you can rightly fuck off. You will be blocked, if you can't be bothered to persevere in eliminating a misunderstanding to which you contributed in a fashion.

0
0
0
0
0
0
0
0
0

Semi-regular reminder that you can literally save lives today by donating to "Come Back Alive" charity. It is (AFAIK) the largest, one of the oldest, and known to be effective and transparent. You can choose from multiple projects to donate, it accepts different types of payments from overseas, and it works on multiple aspects, including but not limited to air defence, medical evacuation, training, and veteran care savelife.in.ua/en/

0
0
0

Not My Cat with her favorite toy. Two nights ago, after play time I collapsed the telescoping pole, rolled up the string, palmed the bird, and hid it on top of a bookcase behind a finger print kit on display there (my wife writes mystery). But by morning, she had found a way up, closed the lid on the kit, and was dragging the toy, string trailing, all over the building! This cat is trouble...

A Gray tabby cat leaping towards the camera showing fangs and claws, green eyes narrowed, trying to catch a feathered toy on a string.
0
0
0

哈維爾《無權力者的權力》

當 AI 必須依靠資料進行強大的運算,有所依據的做推論和查找;檯面上的大人物卻可以依著自己的政治目的,睜眼說瞎話 — 多荒謬的世界啊。

https://x.com/ike_saul/status/1892623014300107253?s=61

法西斯的特徵之一,是任意挪用語言的概念 — 就像中共憲法裡也宣稱自己是民主自由的國家。而當民主世界裡的語言,及其所累積、架構的價值和真實,逐漸被毀壞,就會滑入一個沒有真相、極權而充滿意識形態口號的世界。

最近在讀哈維爾《無權力者的權力》,曾經在共產專制下生活了3、40年的人們,最終革命成功,他們看體制的經驗和智慧往往是珍貴的啟示。

文章的開頭,提到在「人民 — 極權體制」之間的橋樑和黏著劑,正是「意識形態」,而人民既是這整套系統裡的客體,也是主體(社會自動總體性 social auto-totality)。一方面透過意識形態、口號,緩和了「真實」所帶來的衝突,人民身在其中,成為體制順從的一部分,沒有了自我真誠的感受和多樣性,取消了人性、使人匿名,成為自動排除個人意志的機制。

另一方面,這也建立在人們願意奉行謊言的基礎上,畢竟如果沒有遵守規則的大家,遊戲是無法成立的。

於是整個系統得以運行,並使權力的內在獲得一致性,得以穩定和延續的保障,同時所有人在這個系統裡,無法改變它,即便政治上的權力鬥爭也無法將之否定或動搖,否則就會被系統自動排除在外。

因此台灣和中國人民的往來裡,不時浮現不同歷史脈絡和政體養成下,彼此的異質性和衝突(文革、去歷史的、狼性);也可見過去不少人希望透過經濟讓中國與世界接軌、進而促進其民主化的願望,並沒有實現,反而中國挾帶巨量資本與市場的優勢,將其極權系統的影響力外溢,連帶影響世界經濟與競爭的格局 — 國家的極權化、強人化,以及透過更全面的數位科技來監控,進行系統的維穩。

哈維爾也提到,當「獨裁體制 + 消費主義」,會使人們願意屈從於功利主義,對謊言視而不見,進而讓渡了自身的尊嚴、道德和自由。某程度似乎也預見了目前發展的態勢?

0
0
0
0
0

【第5回みんなのつぶやき文学賞結果発表会、日時決定!】
🔔2025年3月22日(土)16:00~19:00ごろ

今回は恒例のオンライン無料生配信に加えて、神保町PASSAGE bis! BOOKS CAFÉでのリアル観覧(有料)もできます!

🚨リアル観覧のお席には限りがございます。ご予約はお早めに‼️

詳細
allreviews.jp/news/7244

第5回結果発表会の出演者は倉本さおり、長瀬海、橋本輝幸、山本貴光、若林踏の5名。上位にランクインした作品を書評家たちが熱く紹介します。果たしてみんなが選んだ2024年ベスト小説は何だ? どうぞお楽しみに。

0
0

Hallo Fediverse, das Netzwerk "Gleiche soziale Rechte für alle" ist jetzt auch !
Zum Start ein kleines Abschiedsbild einer wunderschönen Auftakttagung in Hannover.

Stay tuned, wir starten jetzt durch.
Gegen das Asylbewerberleistungsgesetz, gegen die diskriminierende Bezahlkarte! 🔥

Foto von ca. 30-40 Menschen unter einem Balkongeländer auf dem Hof des UJZ Korn in Hannover. Am Geländer hängt ein Transpi mit dem Text: Asylbewerberleistungsgesetz abschaffen!
0
0
0
0
0

HIV/AIDS/PreP und der Rechtsruck in Deutschland

Heute hat mich 1 Vorstand von Pro Plus Berlin angerufen. Nun werde ich meinen Vortrag bei der Mitgliederversammlung persönlich halten.

Dieser dreht sich um Bedrohungen u.A. für HIV-Positive, an AIDS Erkrankte und HIV-PrEP Gebrauchende.

Der kluge @muellertadzioTadzio Mueller hat uns in einem Workshop zum Umgang mit (Rechts)Extremismus einige Handlungsmöglichkeiten aufgezeigt.





0
0
0
0
0
0
0
0
0

Sodala,

der Adapter für die auf ist fast fertig. Es felt noch das festschrauben, ausrichten und verkleben des Bajonetts. Danach werden innen noch ein paar Unebenheiten verschliffen und mit Mattlack beschichtet.

Den Umkehrring, welcher als Bajonett dient und der dann aufgeschraubt und verklebt wird, hier der Link:
ebay.de/itm/184196600124

Für alle, die den auch haben wollen, hier der Link zu den 3D sowie den druckbaren rtl Dateien:
momann.com/nikonz-sinar/nikonz

Nikon Z auf Sinar Adapter 1Nikon Z auf Sinar Adapter 3
0
0
0
0
0

🇬🇧 Is an introduction still allowed after 2½ years on Mastodon? 😁

My name is Laurens. I'm 45 years old and I live in the Netherlands, in the province of Drenthe. I live together with my long-time girlfriend, our son, our dog, cats and rabbits.

I work (haha) as a civil functionary. My hobbies are messing around with computers, gaming, reading and very loud guitar music. I toot about those subjects somewhat regularly, as well as about nature, science and politics.

0
0
0
0

🇳🇱 Mag een introductiepost nog na 2½ jaar op Mastodon? 😁

Mijn naam is Laurens. Ik ben 45 jaar en woon in een dorp op de Drentse Hondsrug. Ik leef samen met mijn vriendin, ons zoontje, onze hond, katten en konijnen.

Er moet toch brood op de plank komen, dus ik werk (haha) als ambtenaar. Mijn hobby's zijn klooien met computers, gamen, lezen en harde gitaarmuziek. Daar toot ik ook met enige regelmaat over, net als over natuur, wetenschap en politiek.

0
0
0
0

CW: Politics, suicide

This is why I will never tolerate “no politics” rules in any context (like at work or in online communities). “No politics” rules require everyone to silently accept that the person beside them is contributing to a reality in which an *11 year old girl* kills herself because of unmitigated ignorance and hatred.

Fuck everything about this.

kxii.com/2025/02/20/11-year-ol

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

My background photo is a tiny part of my old tech collection.
From left:
Hidden behind my icon is the last remnant of the Spitz Space Transit System planetarium that I worked with. It’s a remote control box for the Moon and Sun projectors, both PTZ.

2nd: the world’s only imax film frame counter. Capable of rates up to 3k RPM or 6k frames per minute.

3rd(back) is a Xerox fax machine HeNe tube laser. An absolute pleasure to run with the cover removed.

Continued in reply

0

Why did I not accept someone’s generous offer to follow me?

Because I couldn’t find enough ORIGINAL posts on their timeline to reassure me that they’re someone I wouldn’t follow back.

If someone prefers to boost instead of write their own, that’s fine! But I prefer your words and want to boost from the source when possible. And, I mutually follow.

We’re a network, a society.

0

PSA: CatCatNya~, as an instance, is currently involved in a potential legal case regarding (resolved by way of diversion) Austrian StGB § 107c (essentially Cyberbullying), as well as German StGB § 187 (Verleumdung) against the natural person (Jeremy Kescher) hosting it.

As a precaution, assume the following can happen:

  • The instance may disappear in the future (it will remain until legal proceedings end, unless forced otherwise by circumstances)
  • The instance may change ownership in the future

This is an early warning. However, migrating away, downloading your archive, and then deleting your account may not be a bad idea. Data seizure has become unlikely at this point, so migrating away is, in my opinion, not something I suggest anymore.
Still, this depends entirely on your threat model.

0
0
0
0

Original art ♥️

Pen on acid-free paper.

Created in 2013.

He comes with many names, yet, his true name is one that cannot be spoken by the human's tongue.

From his many known names, Azrael is one being loved more. He's one of the very kind mentors.

"Inside His embrace The Knowledge speaks. The Rule is to follow The Rule until the very last one."

Black and white art depicting Azrael, The Angel.
0