@yeoul류효정 님, 어서 오세요!

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 341 following · 228 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
해커스펍에 사람이 많아지면서 오늘 점심쯤 마스토돈 들어왔더니 피드에 새 글이 80개 정도 쌓여있었다. 눈물이 날 뻔했다...
洪 民憙 (Hong Minhee) shared the below article:
W3C Breakout Session on ActivityPub in the Browser
Evan Prodromou @evanprodromou@socialwebfoundation.org
I’ll be leading a session on the Browser experience of ActivityPub social networking as part of W3C Breakouts Day 2025. This is a virtual event, open to all members of the Web community; connection information in the link.
ActivityPub encourages interconnection between independent, heterogeneous social networking platforms. One of the most confusing parts of the ActivityPub network for many users is interacting with people and content on remote servers. How can you like, share or reply to an image or article on one server with your account from another server? How can you follow or block a person whose profile page you are looking at?
I briefly outlined one solution to this problem on Cross-server Interactions in ActivityPub on my personal blog last year. In that article, I cover how remote servers can act as clients for your home server, sending your activities directly to your ActivityPub API endpoint.
In the breakout session, I’ll be going over another solution: letting the browser be an API client on its own. The Social Web Incubator Community Group (SocialCG) has a task force for ActivityPub HTML discovery, with a draft report on ActivityPub discovery . This report shows how we can surface API information about a person or content in the HTML pages displayed in the Web browser. In the session, I’ll discuss how that API information could be used in a browser extension to make API calls for liking, sharing, replying to the content on the page, or following a person.
I’m especially interested in developing a proof-of-concept browser extension for Vivaldi (my daily-drive browser) to show how this can work.
If you’re interested in deeper integration of social networking features into the Web browser, please make sure to come to the talk!
음… 이거 어쩌면 Mastodon의 버그일 수도 있겠다. Mastodon이 팔로워 컬렉션 동기화할 때 next
를 안 따라가는 것 같다는 의심. 이거 검증하려면 또 어케 해야 하나… 골치 아프네.
Ghost 쪽에서 Mastodon 개발 팀에 물어봤더니 next
안 따라가는 게 맞다고 한다. 그런데, Ghost는 이미 페이지네이션을 끈 상태라고 한다! 그럼 또 뭐가 문제냐…
음… 이거 어쩌면 Mastodon의 버그일 수도 있겠다. Mastodon이 팔로워 컬렉션 동기화할 때 next
를 안 따라가는 것 같다는 의심. 이거 검증하려면 또 어케 해야 하나… 골치 아프네.
出勤途中に Hackers' Pub を覗いて、帰りにもまた入ってみたらびっくりしました。すごく賑わっていますね!
Twitter で見かけた方もいて嬉しいです。もう一人一人に歓迎の挨拶をするのは難しくなってきましたが、(心の中では)勝手に親近感を感じています😅
帰り道で溜まっていた投稿をなんとか全部読み終えました!😂 皆さん、今日もお疲れさまでした。
GitHub Actions now supports free-threaded Python!
I wrote up how to add it your workflows so you can start testing free-threaded Python 3.13 and 3.14 with either actions/setup-python or actions/setup-uv.
https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/
무슨 생각? 자고 싶다는 생각.
Hello, world!
@ahastudioAshal aka JOKER 아샬 님, 어서오세요!
무슨 생각? 자고 싶다는 생각.
Hello, world!
출근길에 Hackers' Pub 확인하고, 퇴근길에 또 Hackers' Pub 에 들어왔다가 깜짝 놀랐습니다. 북적북적하네요.
트위터에서 보던 분들도 보여서 반갑네요. 이제 한분 한분 환영 인사드리기는 어려울 지경입니다만, (혼자 속으론) 친밀감 느끼는 중 😅
퇴근길에 밀린 글들 간신히 다 읽었습니다! 😂 편안한 저녁 되세요.
@arkjunJuntai Park 퇴근이 늦으시네요… 푹 쉬세요!
출근길에 Hackers' Pub 확인하고, 퇴근길에 또 Hackers' Pub 에 들어왔다가 깜짝 놀랐습니다. 북적북적하네요.
트위터에서 보던 분들도 보여서 반갑네요. 이제 한분 한분 환영 인사드리기는 어려울 지경입니다만, (혼자 속으론) 친밀감 느끼는 중 😅
퇴근길에 밀린 글들 간신히 다 읽었습니다! 😂 편안한 저녁 되세요.
Hackers' Pub에 ko-Kore
(國漢文混用) 飜譯 파일 넣는 想像…
@outsiderisOutsider 님, 환영합니다!
마크다운 쓸수 있어서 너무 좋다.
@anarcher맹수 어서오세요!
마크다운 쓸수 있어서 너무 좋다.
ping
@rainygirl 어서오세요!
블루스카이를 연합우주보다 먼저 썼고, 해커뉴스에서 관련 주장에 대해서 꽤 싸우기도 한 입장에서 민희님의 글 〈Bluesky는 X의 훌륭한 대안일 수 있지만, 연합우주의 대안은 아닙니다〉에 대한 반대 의견을 제시하고자 한다. 이 의견이 연합우주에 대한 전면적인 비판이 아니라는 것을 의견을 제시하기에 앞서 확실히 해 둔다(그랬다면 Hackers' Pub에 들어 올 일이 없었겠지).
탈중앙화는 매력적인 개념임이 틀림 없다. 인터넷의 많은 중요한 요소들이 어느 정도 탈중앙화되어 있으므로 탈중앙화가 인터넷의 장점들에 큰 몫을 했다는 생각을 쉬이 할 수 있고, 어느 정도는 그게 사실이기도 하니까. 하지만 엄밀히 말하자면 탈중앙화는 기술적인 특징이지 그 자체로 장점이 아니며, 탈중앙화가 장점으로 작용하려면 연결고리가 필요하다. 이를테면 비트코인을 위시한 암호화폐는 본디 비잔틴 실패까지 대비할 수 있는 강력한 탈중앙화를 장점으로 내세웠으나, 결국 화폐로서 제대로 사용되기 시작하자 현실 경제와의 커플링 때문에 그 "장점"이 크게 희석되고 말았다. 현 시점에서 암호화폐는 무에서 유의 신뢰를 창조하여 신용화폐의 요건을 충족하는 데까지는 성공했고 그것만으로도 역사적인 일이기는 하지만, 그게 탈중앙화랑 무슨 상관이 있느냐 하면 글쎄올시다.
블루스카이가 연합우주보다 덜 탈중앙화되어 있음은 분명하다. 민희님의 글에서 지적되었듯, 블루스카이가 이런 선택을 한 가장 큰 이유는 온전한 소셜 네트워크 기능을 위해 전역 뷰가 필수적으로 필요하다고 보았기 때문이다. 반대로 말하면 연합우주는 더 탈중앙화를 하기 위하여 전역 뷰를 포기했는데, 이 때문에 연합우주에서의 "소셜 네트워크"는 트위터/X와는 구조가 크게 다르다. 노드 규모가 문턱값에 다다르지 못하면 다른 노드에 있는 사용자를 찾아서 팔로해야만 온전한 소셜 네트워크 구성이 가능한데, 연합우주 안에서는 이런 외부 사용자를 찾는 구체적인 방법을 제공하지 않는다. 물론 인터넷과 똑같이 검색 엔진이 존재할 수야 있겠지만, 크롤링으로 인한 부하와 프라이버시에 대한 의견 차이 때문에 현실적으로 작동하는 연합우주 내 검색 엔진은 없다고 알고 있다. 따라서 연합우주에서 소셜 네트워크의 구성은 연합우주 바깥의, 보통은 중앙화되어 있는, 다른 소셜 네트워크(이를테면 현실 인간 관계)를 빌어야만 하는데, 이러면 탈중앙화가 큰 가치가 있을까?
한편으로는 전역 뷰가 소셜 네트워크의 단점이라고 주장할 수 있는 여지도 있다. 트위터/X를 오래 써 본 사람이라면 다 알겠지만 한 무리의 사람들이 다른 의견을 가진 무리와 충돌하는 주된 통로는 검색이나 해시태그를 통한 노출, 즉 전역 뷰이기 때문이다. 그러나 현실의 규모 있는 연합우주 노드들을 살펴 보면 각 노드가 곧 한 무리에 대응하는 식으로 충돌을 미리 회피하는 형태로 구성되지, 딱히 이런 충돌을 막기 위한 접근을 가지고 있는 것은 아니다. 노드 운영자를 위해 차단하는 걸 추천하는 서버 목록 같은 게 돌아다니는 건 연합우주 바깥의 일이지 않는가. 결국 전역 뷰의 역할을 대체하는 소셜 네트워크 바깥의 또 다른 소셜 네트워크가 존재할 것이기에, 우리가 소셜 네트워크를 어떤 이유로든 유용하다고 여긴다면 전역 뷰가 없는 게 장점이 될 수는 없다.
모든 이들이 이런 사고 과정을 가지고 블루스카이나 연합우주를 선택했다고 생각하진 않지만, 적어도 현 시점에서 사용자들은 블루스카이(이 글을 쓰는 시점에서 약 3360만명)를 연합우주(FediDB와 Fediverse.party로부터 추정할 때 최대 1530만명)보다 선호하는 것은 틀림이 없다. 게다가 블루스카이의 규모는 최근 1년 사이에 10배 불어난 것이고, 조금 장애가 있었지만 현재는 잘 동작하는 것으로 보인다. 위의 논의와 결합해 보면, 블루스카이는 정석적인 스케일링에 성공하고 있는 반면 연합우주는 스케일링 문제를 회피하기 위해 온전한 소셜 네트워크의 구성을 포기했다고 볼 수도 있는 대목이다. 블루스카이가 못미더운 부분은 분명히 존재하지만, 연합우주가 더 좋은 소셜 네트워크 경험을 제공한다고 가정하고 블루스카이의 단점을 제시할 수는 없다. 마치 암호화폐를 논할 때 장점만 말할 수 없는 것과 마찬가지로 말이다.
RE: https://hackers.pub/@hongminhee/2025/bluesky-a-good-alternative-to-x-not-to-the-fediverse
아마 글은 SNS의 기능으로선 훌륭한 대안이지만, 탈중앙화적 지향점이나 기술 특성을 연합우주와 비교하면 대안이 되지 않는다는 의미라고 생각합니다. 아직 블루스카이를 비롯한 AT Protocol 쪽은 사실상 Bluesky 서버에 굉장히 의존적이라고 생각되구요. (PDS 서버를 띄울 수 있게 된 것도 그렇게 오래 되지 않았으니...)
저도 일반 사용자들이 연합우주를 고려할 때 (필수는 아니지만 결국...) 탈중앙화나 분산에 대한 개념을 이해해야한다는 점이 꽤 큰 진입 장벽이 되고 있다 느껴서, 저는 연합우주와 X 그리고 Bluesky가 어느 쪽도 다른 쪽의 "완전한 대안"이 될 수는 없다고 생각합니다.
마크다운까지는 지원
@alternative Markdown 확장도 다양하게 지원합니다. ㅎㅎㅎ 다이어그램 같은 것도 지원하고요.
Hackers' Pub에서 DOT 언어(Graphviz)로 다이어그램 그리기
Hackers' Pub의 숨겨진 기능 중 하나는 Graphviz의 DOT 언어를 지원한다는 것입니다. 예를 들어, 다음과 같은 다이어그램을 그릴 수 있습니다:SimpleActivityPubserver_a서버 A(Mastodon)server_b서버 B(Hackers' Pub)server_a->server_bActivityStreams 데이터 전송(HTTP POST)server_b->server_a응답 및 상호작용(HTTP POST)<Graphviz를 이용하는 법은 간단합니다. Markdown의 코드 블럭 문법 안에 DOT 언어로 다이어그램을 기술하신 뒤, 코드 블럭의 언어 태그에 graphviz를 붙이시면 됩니다. 위에서 예를 든 다이어그램은 Markdown에서 아래와 같이 쓰면 됩니다:```graphvizdigraph SimpleActivityPub { graph [rankdir=LR, fontname="sans-serif", bgcolor="white"]; node [fontname="sans-serif", shape=box, style="rounded,filled"]; edge [fontname="sans-serif"]; server_a [label="서버 A\n(Mastodon)", fillcolor="#AED6F1"]; server_b [label="서버 B\n(Hackers' Pub)", fillcolor="#A3E4D7"]; server_a -> server_b [label="ActivityStreams 데이터 전송\n(HTTP POST)", color="red"]; server_b -> server_a [label="응답 및 상호작용\n(HTTP POST)", color="blue"];}```<참고로 Graphviz는 긴 게시글 뿐만 아니라 단문에서도 똑같이 지원합니다.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
@xtjuxtapose 어서오세요!
그러고 보니 탈퇴 기능도 만들어야 하는데…
@hongminhee洪 民憙 (Hong Minhee) 아하 아쉽군요... fediverse 프로토콜 지원하는 앱 중에 얻어걸리듯이 지원되는 게 하나는 있을 줄 알았습니다 ㅋㅋㅋ
@bin_bash_shell이수호 그게 여러 사정이 있는데요, ActivityPub에도 S2S 인터랙션과 C2S 인터랙션이 존재하지만 실제로는 전자만 쓰이고 후자의 역할을 Mastodon API가 사실상의 표준이 되어서 맡고 있습니다… 그래서 Mastodon 클라이언트 앱은 있지만 연합우주 클라이언트 앱은 없는 게 현실이예요. 그러다 보니 Pleroma, Akkoma, Hollo 등이 모두들 Mastodon 호환 API를 구현하고 있고요.
Mastodon 호환 API를 구현하면 기존 Mastodon 클라이언트 앱을 활용할 수 있다는 장점도 있지만, Mastodon에 없는 기능은 추가하기 어렵다는 단점도 있습니다. 예를 들면 Mastodon은 인용 기능이 없잖아요? 그래서 인용 기능과 Mastodon 호환 API를 둘 다 구현해도 인용은 Mastodon 클라이언트 앱으로 못 하는 상황이 되는 거죠.
Hackers' Pub은 일단 Mastodon 호환 API를 구현할 생각은 없긴 해요. 차라리 자체 모바일 앱을 개발하는 게 낫지 않을까 싶고, 그 전에 일단 모바일 웹을 더 잘 닦아두는 걸 먼저 하려고요.
Hackers' Pub에서는 Markdown 내용 안에 HTML을 어느 정도 (XSS을 허용하지 않을 정도) 허용하고 있습니다. 그래서 <abbr>
, <kbd>
, <ruby>
같은 태그를 써서 좀 더 풍성한 서식화가 가능합니다.
crontab은 원하는대로 동작하지 않을 때가 많고 왜 안 되는지 이유를 알기도 어려웠는데 ChatGPT에게 물어 보니 source ~/.profile
넣고 해보라길래 그렇게 했더니 잘 된다.
@curry박준규 아니면 스크립트가 항상 절대 경로를 사용하게 하고 현재 작업 디렉터리(CWD)나 환경 변수 등에 의존하지 않게 만들면 되더라고요. 물론, 스크립트를 그렇게 짜는 게 좀 고통스럽긴 하지만요…
초대장 뿌리는 기능도 구현해야 하는데… 지금은 그냥 데이터베이스 직접 들어가서
UPDATE account SET left_invitations = least(left_invitations + 1, 3);
날리고 있다. 😓
@flow 님 어서오세요!
블루스카이를 연합우주보다 먼저 썼고, 해커뉴스에서 관련 주장에 대해서 꽤 싸우기도 한 입장에서 민희님의 글 〈Bluesky는 X의 훌륭한 대안일 수 있지만, 연합우주의 대안은 아닙니다〉에 대한 반대 의견을 제시하고자 한다. 이 의견이 연합우주에 대한 전면적인 비판이 아니라는 것을 의견을 제시하기에 앞서 확실히 해 둔다(그랬다면 Hackers' Pub에 들어 올 일이 없었겠지).
탈중앙화는 매력적인 개념임이 틀림 없다. 인터넷의 많은 중요한 요소들이 어느 정도 탈중앙화되어 있으므로 탈중앙화가 인터넷의 장점들에 큰 몫을 했다는 생각을 쉬이 할 수 있고, 어느 정도는 그게 사실이기도 하니까. 하지만 엄밀히 말하자면 탈중앙화는 기술적인 특징이지 그 자체로 장점이 아니며, 탈중앙화가 장점으로 작용하려면 연결고리가 필요하다. 이를테면 비트코인을 위시한 암호화폐는 본디 비잔틴 실패까지 대비할 수 있는 강력한 탈중앙화를 장점으로 내세웠으나, 결국 화폐로서 제대로 사용되기 시작하자 현실 경제와의 커플링 때문에 그 "장점"이 크게 희석되고 말았다. 현 시점에서 암호화폐는 무에서 유의 신뢰를 창조하여 신용화폐의 요건을 충족하는 데까지는 성공했고 그것만으로도 역사적인 일이기는 하지만, 그게 탈중앙화랑 무슨 상관이 있느냐 하면 글쎄올시다.
블루스카이가 연합우주보다 덜 탈중앙화되어 있음은 분명하다. 민희님의 글에서 지적되었듯, 블루스카이가 이런 선택을 한 가장 큰 이유는 온전한 소셜 네트워크 기능을 위해 전역 뷰가 필수적으로 필요하다고 보았기 때문이다. 반대로 말하면 연합우주는 더 탈중앙화를 하기 위하여 전역 뷰를 포기했는데, 이 때문에 연합우주에서의 "소셜 네트워크"는 트위터/X와는 구조가 크게 다르다. 노드 규모가 문턱값에 다다르지 못하면 다른 노드에 있는 사용자를 찾아서 팔로해야만 온전한 소셜 네트워크 구성이 가능한데, 연합우주 안에서는 이런 외부 사용자를 찾는 구체적인 방법을 제공하지 않는다. 물론 인터넷과 똑같이 검색 엔진이 존재할 수야 있겠지만, 크롤링으로 인한 부하와 프라이버시에 대한 의견 차이 때문에 현실적으로 작동하는 연합우주 내 검색 엔진은 없다고 알고 있다. 따라서 연합우주에서 소셜 네트워크의 구성은 연합우주 바깥의, 보통은 중앙화되어 있는, 다른 소셜 네트워크(이를테면 현실 인간 관계)를 빌어야만 하는데, 이러면 탈중앙화가 큰 가치가 있을까?
한편으로는 전역 뷰가 소셜 네트워크의 단점이라고 주장할 수 있는 여지도 있다. 트위터/X를 오래 써 본 사람이라면 다 알겠지만 한 무리의 사람들이 다른 의견을 가진 무리와 충돌하는 주된 통로는 검색이나 해시태그를 통한 노출, 즉 전역 뷰이기 때문이다. 그러나 현실의 규모 있는 연합우주 노드들을 살펴 보면 각 노드가 곧 한 무리에 대응하는 식으로 충돌을 미리 회피하는 형태로 구성되지, 딱히 이런 충돌을 막기 위한 접근을 가지고 있는 것은 아니다. 노드 운영자를 위해 차단하는 걸 추천하는 서버 목록 같은 게 돌아다니는 건 연합우주 바깥의 일이지 않는가. 결국 전역 뷰의 역할을 대체하는 소셜 네트워크 바깥의 또 다른 소셜 네트워크가 존재할 것이기에, 우리가 소셜 네트워크를 어떤 이유로든 유용하다고 여긴다면 전역 뷰가 없는 게 장점이 될 수는 없다.
모든 이들이 이런 사고 과정을 가지고 블루스카이나 연합우주를 선택했다고 생각하진 않지만, 적어도 현 시점에서 사용자들은 블루스카이(이 글을 쓰는 시점에서 약 3360만명)를 연합우주(FediDB와 Fediverse.party로부터 추정할 때 최대 1530만명)보다 선호하는 것은 틀림이 없다. 게다가 블루스카이의 규모는 최근 1년 사이에 10배 불어난 것이고, 조금 장애가 있었지만 현재는 잘 동작하는 것으로 보인다. 위의 논의와 결합해 보면, 블루스카이는 정석적인 스케일링에 성공하고 있는 반면 연합우주는 스케일링 문제를 회피하기 위해 온전한 소셜 네트워크의 구성을 포기했다고 볼 수도 있는 대목이다. 블루스카이가 못미더운 부분은 분명히 존재하지만, 연합우주가 더 좋은 소셜 네트워크 경험을 제공한다고 가정하고 블루스카이의 단점을 제시할 수는 없다. 마치 암호화폐를 논할 때 장점만 말할 수 없는 것과 마찬가지로 말이다.
RE: https://hackers.pub/@hongminhee/2025/bluesky-a-good-alternative-to-x-not-to-the-fediverse
Hello, world!
Hello, world!
Nix 기반의 인프라 관리에 관심있으신 Go 고수분 계시다면 nix-snapshotter에 관심 가져보시는걸 추천드립니다. 지금 메인테이닝이 살짝 안되고있는데 기여자가 많아지면 좋겠네요.
Hackers' Pub 사용자 분들은 모바일에서 작성할 때 무슨 앱을 많이 쓰시나요?
@bin_bash_shell이수호 아직 지원하는 앱이 없습니다… 웹으로 쓰셔야 하는데, 웹도 모바일에서 많이 깨지고 있어요. 🙄
물 들어올때 노젓기 준비 ON
@hongminhee洪 民憙 (Hong Minhee) 해커스펍에 아직 마스토돈 API를 구현하지 않은 것이 의도하신 건가요, 아니면 로드맵에는 존재하는데 아직 구현을 안 하신 건가요?
@curry박준규 사실 로드맵에도 없긴 합니다. Mastodon API로는 표현할 수 없는 기능들이 이미 꽤 되어서요. 이를테면 인용도 Mastodon에서는 지원 안 해서 Mastodon API로 표현이 안 됩니다.
이게 해커들의 퍼블릭 하우스입니까? 맥주 한잔 하고 싶은 좋은 곳이군요. 🍺 (술 안마심)
@tedpool테드풀 사실 저도 술은 안 마신답니다… ㅋㅋㅋ 어서 오세요!
이게 해커들의 퍼블릭 하우스입니까? 맥주 한잔 하고 싶은 좋은 곳이군요. 🍺 (술 안마심)
洪 民憙 (Hong Minhee) replied to the below article:
Hackers' Pub CoC
daisuke @dai@hackers.pub
読みました。
自分はホンさんと繋がってまだ日は浅いけど、その理想や指針が反映された良い行動規範だと思います。
純粋に、発展に協力したいです。
コミュニティにおいてなによりも大切なのは、すべての事象に入門者が存在する これを参加者が理解することです。
- あなたの知っていることのほとんどを他の方は知らない
- 初見の人がそれを知らないことは当たり前(同じことを何度も聞くのは別です)。
私はこれが根底にあると、アウトプットの大切さに気づくとともに新規参入者の受け入れが楽しくなり活性化すると信じています。
そしてそのアウトプットは間違いなく未来の自分に還元されます。
入門者が恐縮せずに参加できることこそ現代の開発者コミュニティや一部の新旧SNSに欠けている点です、これは分母が大きいことが要因のひとつなので少数で濃い議論ができるHackers' Pubの初期方針は理にかなっています。
@daidaisuke お読みいただきありがとうございます!いつもお世話になっております。
洪 民憙 (Hong Minhee) shared the below article:
Hackers' Pub CoC
daisuke @dai@hackers.pub
読みました。
自分はホンさんと繋がってまだ日は浅いけど、その理想や指針が反映された良い行動規範だと思います。
純粋に、発展に協力したいです。
コミュニティにおいてなによりも大切なのは、すべての事象に入門者が存在する これを参加者が理解することです。
- あなたの知っていることのほとんどを他の方は知らない
- 初見の人がそれを知らないことは当たり前(同じことを何度も聞くのは別です)。
私はこれが根底にあると、アウトプットの大切さに気づくとともに新規参入者の受け入れが楽しくなり活性化すると信じています。
そしてそのアウトプットは間違いなく未来の自分に還元されます。
入門者が恐縮せずに参加できることこそ現代の開発者コミュニティや一部の新旧SNSに欠けている点です、これは分母が大きいことが要因のひとつなので少数で濃い議論ができるHackers' Pubの初期方針は理にかなっています。
@ak 어서 오세요!
Bluesky와 페디버스(fediverse)의 비교
------------------------------
## 핵심 아키텍처 차이: 메시지 전달 vs 공유 힙
- *페디버스* : 이메일과 유사한 “메시지 전달” 방식 사용
- 특정 수신자에게 직접 메시지 전달
- 필요한 서버에만 메시지가 전송되어 효율적
- 개인이 저렴한 하드웨어로도 노드 운영 가능
- Bluesky : “공유 힙” 방식 사용
- 모든…
------------------------------
https://news.hada.io/topic?id=19952&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
洪 民憙 (Hong Minhee) replied to the below article:
Bluesky는 X의 훌륭한 대안일 수 있지만, 연합우주의 대안은 아닙니다

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
최근 X(구 Twitter)를 떠나는 사람들이 늘면서 Bluesky에 대한 관심이 뜨겁습니다. Bluesky는 깔끔한 인터페이스와 과거 Twitter와 유사한 사용자 경험을 제공하며, 신뢰할 수 있는 이탈(credible exit)이라는 매력적인 개념을 내세워 X의 유력한 대안으로 떠오르고 있습니다. 하지만 Bluesky와 그 기반 프로토콜인 AT Protocol을 연합우주(fediverse)의 대안으로 보기에는 근본적인 차이가 존재합니다. 이 글에서는 Christine Lemmer-Webber 씨(@cwebber)의 날카로운 분석(〈Bluesky는 실제로 얼마나 탈중앙화 되어 있나〉 및 〈답장: 답장: Bluesky와 탈중앙화〉)을 바탕으로, Bryan Newbold 씨(@bnewbold)의 반론(〈Bluesky와 탈중앙화에 대한 답변〉)을 충분히 고려하면서 Bluesky가 어째서 X의 대안은 될 수 있어도 연합우주의 대안은 될 수 없는지 이야기를 풀어볼까 합니다.
메시지 전달 對 공유 힙: 근본적인 설계 차이
Bluesky와 연합우주의 가장 큰 차이점 중 하나는 설계입니다. 연합우주는 이메일이나 XMPP와 유사한 메시지 전달(message passing) 방식을 채택하고 있습니다. 이는 특정 수신자에게 메시지를 직접 전달하는 방식으로, 효율성이 높습니다. 예를 들어, 수많은 서버 중 단 몇 곳의 사용자만 특정 메시지에 관심을 있다면 해당 서버에만 메시지를 전달하면 됩니다. 비유하자면, 철수가 영희에게 편지를 보내려면 직접 영희의 집으로 편지를 보내고, 영희가 회신하고 싶으면 직접 철수에게 회신하는 것과 같은 방식입니다.
반면, Bluesky는 공유 힙(shared heap) 방식을 사용합니다. 이는 메시지를 특정 수신자에게 직접 보내는 대신, 모든 메시지를 중앙의 “릴레이”라는 곳에 저장하고, 관심 있는 사용자가 릴레이에서 자신에게 필요한 정보를 필터링하는 방식입니다. 이는 마치 모든 편지가 하나의 거대한 우체국(릴레이)에 쌓이고, 각자가 이 우체국에 방문하여 자신에게 관련된 편지를 직접 찾아야 하는 것과 같습니다. 이런 방식에서는 메시지가 직접 전달되지 않기 때문에, 답글이 어떤 메시지에 대한 것인지 파악하려면 모든 가능한 메시지를 알고 있어야 합니다.
이 설계는 데이터와 색인을 분리하여 유연성을 제공한다는 주장도 있지만, 필연적으로 대규모 중앙 집권화된 릴레이에 의존하게 되어 탈중앙화의 이상과는 거리가 멀어진다는 한계가 있습니다.
결국 Bluesky가 공유 힙 방식을 채택하고 중앙 집권화된 릴레이에 의존하게 되는 데에는 운영 비용이라는 현실적인 이유가 크게 작용합니다. Christine Lemmer-Webber 씨의 분석에 따르면, Bluesky에서 전체 네트워크 기록을 저장하는 릴레이를 운영하는 데에는 상당한 스토리지를 요구하며, 이는 빠르게 증가하고 있습니다. 2024년 7월에는 약 1TB의 저장 공간이 필요했지만, 불과 4개월 후인 11월에는 약 5TB로 증가했습니다. 상업용 호스팅 서비스 기준으로 이는 연간 수만 달러(약 $55,000)에 달하는 비용이 발생할 수 있습니다.
반면, 연합우주에서는 개인이나 소규모 단체가 Raspberry Pi와 같은 저렴한 장비로도 GoToSocial과 같은 소프트웨어를 실행하여 독립적인 노드를 운영할 수 있습니다. 물론 대규모 연합우주 인스턴스는 더 많은 비용이 들겠지만, Bluesky의 전체 릴레이 운영 비용과는 비교하기 어려울 정도로 저렴합니다. 이처럼 운영 비용의 현격한 차이는 Bluesky가 분산된 구조를 채택하기 어렵게 만들고, 결국 중앙 집권화된 릴레이에 의존하게 만드는 주요 원인이라고 볼 수 있습니다.
전역 뷰에 대한 집착과 중앙 집권화의 심화
Bluesky는 댓글 누락과 같은 문제를 피하기 위해 네트워크 전체의 일관된 전역 뷰를 유지하는 데 집중하는 것으로 보입니다. 이러한 목표는 사용자 경험 측면에서 긍정적일 수 있지만, 필연적으로 중앙 집권화를 야기합니다. 대표적인 예가 차단 목록의 전체 공개입니다. 네트워크 전체의 일관성을 유지하기 위해 누가 누구를 차단했는지 모든 앱뷰가 알아야 하므로, 차단 정보가 공개되는 것입니다.
이는 개인 정보 보호 측면에서 심각한 우려를 낳을 수 있습니다. 단순히 누군가의 게시물을 보고 차단된 사람을 추측하는 것과, 네트워크에 “J. K. Rowling[1]을 차단한 모든 사람”을 직접 질의할 수 있는 것 사이에는 큰 차이가 있습니다. 실제로 ActivityPub 개발 과정에서는 이런 문제를 고려하여 서버 간에 차단 활동을 전달하지 않도록 명시적으로 설계했습니다. 이는 차단한 사람이 차단당한 사람의 보복을 받을 위험을 줄이기 위함입니다.
반면 연합우주에서는 각 서버가 독립적으로 차단 정책을 시행하며, 사용자에게 더 많은 자율성을 제공합니다.
AT Protocol과 개방형 표준으로서의 ActivityPub
연합우주의 핵심 프로토콜인 ActivityPub은 W3C의 채택 권고안으로, 개방형 표준입니다. 이는 누구나 자유롭게 구현하고 사용할 수 있으며, 다양한 소프트웨어 간의 상호 운용성을 보장합니다. 현재 페디버스 커뮤니티는 FEP를 중심으로 활발하게 프로토콜을 개선하고 발전시켜 나가고 있습니다. 반면, Bluesky의 AT Protocol은 아직 특정 사기업에 의해 주도되고 있으며, 개방형 표준으로서의 지위는 아직 확립되지 않았습니다. 이는 페디버스가 가진 확장성과 지속 가능성 측면에서 중요한 차이점이라고 할 수 있습니다.
DM의 중앙화
Bluesky는 콘텐츠 주소 지정이나 이동 가능한 아이덴티티와 같은 탈중앙화 요소를 도입했지만, DM은 완전히 중앙화되어 있습니다. 사용자가 어떤 PDS를 사용하든, 어떤 릴레이를 사용하든 상관없이 모든 DM은 Bluesky 회사를 통해 전송됩니다.
이는 Bluesky가 아직 기능적으로 완전한 Twitter 대체품이 되기 위해 속도를 우선시했다는 증거입니다. Bluesky는 이 DM 시스템이 장기적인 솔루션이 아니라고 밝혔지만, 대부분의 사용자들은 이 사실을 인지하지 못하고 있으며 DM도 AT Protocol의 다른 기능처럼 작동한다고 가정합니다.
이러한 중앙화된 DM 구현은 “신뢰할 수 있는 이탈”이라는 Bluesky의 핵심 가치와도 모순됩니다. 만약 Bluesky社가 적대적인 인수나 정책 변경을 겪게 된다면, 사용자들의 개인 대화는 완전히 회사의 통제 하에 남게 됩니다.
이동 가능한 아이덴티티와 DID: Bluesky 방식의 한계
Bluesky는 이동 가능한 아이덴티티(portable identity)를 핵심적인 장점 중 하나로 내세우며, 이를 위해 DIDs, 즉 분산 식별자를 활용합니다. 이는 사용자가 자신의 계정과 데이터를 다른 플랫폼으로 쉽게 이동할 수 있도록 하는 중요한 기능입니다. 하지만 Christine Lemmer-Webber는 AT Protocol이 채택한 did:web
과 did:plc
방식이 여전히 DNS와 Bluesky社가 관리하는 중앙 집권화된 PLC 레지스트리에 의존하고 있어 완전한 사용자 통제하의 독립적인 아이덴티티를 제공하는지 의문을 제기합니다.
더 놀라운 점은 Bluesky社가 초기에 모든 계정에 대해 동일한 rotationKeys
를 사용했다는 사실입니다. 이는 클라우드 HSM 제품이 키별로 비용을 청구해서 각 사용자에게 고유한 키를 제공하는 것이 금전적으로 비용이 많이 들었기 때문이라고 합니다. 이러한 접근 방식은 DIDs 시스템을 구축하는 근본적인 목표와 모순되는 것으로 보입니다.
중요한 점은 DIDs 기술 자체가 탈중앙화된 아이덴티티를 위한 잠재력을 가지고 있음에도, Bluesky와 AT Protocol이 채택한 특정 방식이 중앙 집권화된 요소에 의존한다는 것입니다. 블록체인 기반의 DIDs와 같은 진정으로 탈중앙화된 방식도 존재하지만, AT Protocol은 비교적 구현이 쉬운 did:web
과 did:plc
를 선택했습니다. 따라서 사용자가 Bluesky 생태계를 벗어나 자신의 아이덴티티를 완전히 독립적으로 관리하고자 할 때 제약이 발생할 수 있습니다.
또한 현재 시스템에서는 Bluesky社가 사용자의 키를 대신 관리하고 있어, 사용자가 현재는 Bluesky社를 신뢰하더라도 미래에 신뢰하지 않게 된 경우에도 여전히 회사에 의존해야 합니다. Bluesky社가 사용자를 대신하여 이동을 수행하도록 신뢰해야 하며, 심지어 Bluesky社가 사용자에게 향후 신원 정보를 제어할 권한을 위임하더라도 Bluesky社는 항상 해당 사용자의 키를 통제할 것입니다.
한편, 연합우주에서는 이미 노마딕 아이덴티티(nomadic identity)라는 개념을 통해 이동 가능한 아이덴티티에 대한 논의와 연구가 활발하게 진행되어 왔습니다. 이는 단순히 계정을 이전하는 것을 넘어, 사용자의 데이터와 관계, 심지어 평판까지도 자유롭게 이동할 수 있도록 하는 더 포괄적인 개념입니다. 《We Distribute》에 실린 기사 〈오, Zot! ActivityPub에 노마딕 아이덴티티가 도입된다〉에 소개된 Zot 프로토콜과 같은 기술은 이미 연합우주 안에서 이러한 노마딕 아이덴티티를 구현하기 위한 메커니즘을 제공하고 있습니다. 또한, FEP-ef61와 같은 제안을 통해 ActivityPub 자체를 개선하여 더 나은 이동 가능한 아이덴티티 기능을 추가하려는 노력도 진행 중입니다.
그래서, 결론은?
결론적으로, Bluesky는 사용자 친화적인 인터페이스와 신뢰할 수 있는 이탈 기능을 통해 X의 훌륭한 대안이 될 수 있습니다. Bluesky는 콘텐츠 주소 지정 방식을 통해 노드가 다운되더라도 콘텐츠가 살아남을 수 있게 하는 등 연합우주가 아직 충분히 활용하지 못하는 몇 가지 강점도 가지고 있습니다.
하지만 중앙 집권화된 설계, 전역 뷰에 대한 집착으로 인한 부작용, 개방형 표준으로서의 한계, DM의 중앙화, 그리고 이동 가능한 아이덴티티 구현의 제한점 등 여러 측면에서 연합우주의 대안으로 보기는 어렵습니다. 연합우주는 메시지 전달 방식의 분산된 아키텍처, 낮은 참여 장벽, 개방형 표준 기반의 활발한 커뮤니티 개발, 그리고 사용자에게 더 많은 자율성과 통제권을 제공하는 철학을 바탕으로 구축된, 근본적으로 다른 종류의 탈중앙화 소셜 네트워크입니다.
또한, Bluesky社가 벤처 캐피털 자금을 확보함에 따라 “조직은 미래의 적이다”라는 그들의 자체 인식에도 불구하고, 투자자 수익과 플랫폼 성장이라는 상업적 압력이 진정한 탈중앙화 추구보다 우선시될 위험이 있습니다. 특히 유료 계정과 광고가 도입되면서 이러한 우려는 더욱 커질 수 있습니다.
따라서 Bluesky는 X를 대체할 수 있을지 모르지만, 연합우주가 제공하는 탈중앙화된 가치와 경험을 대체하기는 어려울 것이라고 생각합니다. 두 시스템은 근본적으로 다른 목표와 설계 철학을 가지고 있으며, 이상적으로는 서로를 보완하는 방향으로 발전해 나갈 수 있을 것입니다.
판타지 소설 시리즈 《해리 포터》의 작가. ↩︎
GeekNews에도 〈Bluesky와 페디버스(fediverse)의 비교〉라는 제목으로 올렸습니다.
Hackers' Pubは現在、韓国語中心のコミュニティが形成されていますが、日本語のコミュニティも拡大することを希望しています。Hackers' Pubは、まるでQiitaやZennの様なソフトウェア開発者の為のブログプラットフォームであると同時に、MisskeyやMastodonの様なマイクロブログプラットフォームでもあり、何よりもActivityPubをサポートしているので、Mastodonや Misskey等とも交流が出来ます。(このアカウントもHackers' Pubのアカウントです!)
Hackers' Pubに興味の有る方は、私にDMでメールアドレスをお知らせいただければ、招待状を送らせていただきます。 是非、ご参加をお待ちしております。宜しくお願いします。
📢 Hackers' Pub 초대 시스템 오픈!
Hackers' Pub에 초대 시스템이 적용되었습니다. 이제 설정 → 초대 페이지에서 지인들을 초대할 수 있습니다.
주요 내용:
- 초대장 3장 지급: 기존 회원분들께 3장의 초대장이 지급되었습니다.
- 초대 방법: 설정 → 초대 페이지에서 초대 링크를 생성하여 공유하거나, 이메일 주소를 입력하여 초대할 수 있습니다.
- 추가 초대: 초대장은 향후 비정기적으로 추가될 예정입니다.
- 자동 팔로: 초대자와 피초대자는 자동으로 상호 팔로됩니다. (언팔로 가능.)
Hackers' Pub의 퀄리티를 유지하고, 더욱 풍성한 기술 논의를 위해 신중한 초대를 부탁드립니다.
궁금한 점이나 건의사항은 답글로 남겨주세요.
Hackers' Pub 커뮤니티 성장에 많은 참여 부탁드립니다!
📢 Hackers' Pub 招待システムオープン!
Hackers' Pub に招待システムが適用されました。これで設定→招待ページから知人を招待できます。
主な内容:
- 招待状3枚支給:既存会員の皆様には3枚の招待状が支給されました。
- 招待方法:設定→招待ページで招待リンクを作成して共有するか、メールアドレスを入力して招待できます。
- 追加招待:招待状は今後不定期に追加される予定です。
- 自動フォロー:招待者と被招待者は自動的に相互フォローされます。(フォロー解除可能)
Hackers' Pub のクオリティを維持し、より豊かな技術議論のために慎重な招待をお願いいたします。
ご不明な点やご要望は、この投稿への返信としてお寄せください。
Hackers' Pub コミュニティの成長にご協力をお願いいたします!
📢 Hackers' Pub 초대 시스템 오픈!
Hackers' Pub에 초대 시스템이 적용되었습니다. 이제 설정 → 초대 페이지에서 지인들을 초대할 수 있습니다.
주요 내용:
- 초대장 3장 지급: 기존 회원분들께 3장의 초대장이 지급되었습니다.
- 초대 방법: 설정 → 초대 페이지에서 초대 링크를 생성하여 공유하거나, 이메일 주소를 입력하여 초대할 수 있습니다.
- 추가 초대: 초대장은 향후 비정기적으로 추가될 예정입니다.
- 자동 팔로: 초대자와 피초대자는 자동으로 상호 팔로됩니다. (언팔로 가능.)
Hackers' Pub의 퀄리티를 유지하고, 더욱 풍성한 기술 논의를 위해 신중한 초대를 부탁드립니다.
궁금한 점이나 건의사항은 답글로 남겨주세요.
Hackers' Pub 커뮤니티 성장에 많은 참여 부탁드립니다!
하루에 한 번씩 Apple 한국 홈페이지 들어가서 MacBook Air M4 출시일 공개 되었는지 확인하고 있다… 😑
Excited to see the #FediLUG (#Fediverse Linux Users Group) in #Japan organizing a reading club for our Creating your own federated microblog tutorial! 🎉 Their first session is coming up, where participants will work through creating their own #ActivityPub-compatible microblog using #Fedify. Thanks for spreading the word about Fedify in Japan! 🇯🇵
自分がハッカーかというと名乗るには烏滸がましいけど、興味はあるので、どなたかHacker's Pubに招待くださればうれしい。
@h12o DMでメールアドレスを教えていただければ、招待させていただきます!
自分がハッカーかというと名乗るには烏滸がましいけど、興味はあるので、どなたかHacker's Pubに招待くださればうれしい。
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 저는 데이터모델을 정의하는 언어가 따로있는게 좋다고 생각해서 Prisma를 골랐거든요. 마이그레이션부터 다 해주겠다고 하는데 그때당시엔 아주 믿음직해보였습니다ㅋㅋ 이게 본인이 하기 싫은거일수록(저의 경우엔 마이그레이션이 특히) 프레임워크 형태로 주어지면 넙죽 받아먹게 되더라고요. 지금 고르라면 저도 Drizzle ORM을 시도해볼거 같습니다
@bglbgl gwyng
@curry박준규 아, 확실히 저도 Prisma의 첫 인상은 같은 이유로 되게 좋았습니다. ㅋㅋㅋㅋ