컴퓨터 관련 제품들 중에 상품명에 "ㅇMMㅇ" 이라는 키워드를 넣은 경우가 많이 보이는데요.
검색해 봐도 진짜로 상품명에 쓰인 경우만 확인되고, 그밖의 언급을 전혀 찾을 수가 없네요. 업계 은어인가? 혹시 이것의 정체를 아시는 분?
@hongminhee@hackers.pub · 290 following · 197 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
컴퓨터 관련 제품들 중에 상품명에 "ㅇMMㅇ" 이라는 키워드를 넣은 경우가 많이 보이는데요.
검색해 봐도 진짜로 상품명에 쓰인 경우만 확인되고, 그밖의 언급을 전혀 찾을 수가 없네요. 업계 은어인가? 혹시 이것의 정체를 아시는 분?
近そうですね。 Chrome Built-in AIでのステータスもだいぶ前に「Early Preview Program (EPP)」からOrigin Trialになってました。
https://developer.chrome.com/docs/ai/built-in-apis
このEPPのTranslator, Language Detector, Sammarizerの各APIはLocalにGemini NanoをダウンロードしてChrome Canaryで管理(chrome://on-device-translation-internals/
)してテストされていました。
画像のように個別の言語辞書データをインストールしてトレーニングさせる感じ。
W3CもChromeも同じGoogle ChromeのDomenicさんが管理してるんですね。
@daidaisuke
Domenicさんは東京在住w
github.com/domenic
daisuke replied to the below article:
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Just reviewed the W3C draft for the Translator and Language Detector APIs. This is genuinely exciting development for web developers.
The proposal would add native browser support for:
No more relying on third-party translation services or embedding external APIs for basic language operations. All processing happens locally in the browser.
The API design is clean and straightforward:
// Translation example
const translator = await Translator.create({
sourceLanguage: "en",
targetLanguage: "fr"
});
const translatedText = await translator.translate("Hello world");
// Language detection example
const detector = await LanguageDetector.create();
const results = await detector.detect("Hello world");
// Returns array of detected languages with confidence scores
This will be a game-changer for multilingual sites and applications. The browser handles downloading appropriate language models and manages usage quotas.
The spec is still in draft form but shows promising progress toward standardizing these capabilities across browsers. Looking forward to seeing this implemented.
近そうですね。 Chrome Built-in AIでのステータスもだいぶ前に「Early Preview Program (EPP)」からOrigin Trialになってました。
https://developer.chrome.com/docs/ai/built-in-apis
このEPPのTranslator, Language Detector, Sammarizerの各APIはLocalにGemini NanoをダウンロードしてChrome Canaryで管理(chrome://on-device-translation-internals/
)してテストされていました。
画像のように個別の言語辞書データをインストールしてトレーニングさせる感じ。
W3CもChromeも同じGoogle ChromeのDomenicさんが管理してるんですね。
@heojaehun 안녕하세요 반갑습니다
https://conscious-forgery-a96.notion.site/1b3bf9d3f391808e90f3dcb97b67b70d?pvs=4
개인적으로 한국판 alternativeto.net 같은 사이트가 요즘 필요하다고 느껴져서... 우선은 간단한 Notion 사이트를 만들어 보았어요. Notion 계정이 있다면 누구나 참여가 가능해요. (제가 공유를 잘 했길 바라요...)
벌써 초대를 2명할 수 있군요. 좀 더 업업업~
저는 여기에 대안적 소프트웨어 이야기를 올릴 거예요
안녕 해커스펍!
언젠가 해커스펍 오프라인 밋업 같은 거 하면 사진기사 겸 봉사자로 놀러가고 싶음
해커스펍 DAU 50 가보자고
뉴욕 어딘가에는 컴파일러/DB/웹브라우저 등등 인터널을 까보면서 얘기하는 소셜클럽이 있다. 완전 비슷하게는 아니더라도 해커스펍을 중심으로 밋업을 하는것도 괜찮을지도? 밋업에 참여하는 외부인이 오면 초대장도 그때그때 발급해주는식으로 가고
잘하면 해커스펍이 연내에 규모로는 국내 서버 인원 10위 안에 들어갈 듯? 어쩌면 5위까지도...?
저도 최근 VSC에서 Zed로 넘어오게 됐습니다. 특히 블로그 글을 mdx로 작성하는 입장에서, 플러그인 없이도 mdx 문법과 미리보기를 지원하는 Zed가 정말 마음에 들었어요. 하지만 내장 터미널에서 한글 사용 시 글자가 제대로 표시되지 않고, 일부 작업 시 Zed가 강제 종료되는 문제가 생겨서 최근 이슈를 제보했습니다.
https://github.com/zed-industries/zed/issues/26036
https://github.com/zed-industries/zed/issues/27599
https://hackers.pub/@hongminhee/0195e9c3-2bc8-712a-a38e-aa355335ab0b/shares
좋은 글 잘 읽었습니다. 글도 잘 쓰시고 코딩도 잘 하시고 부럽습니다. 본문 내용 중 ‘두부와 강철 영수증’이란 표현이 재밌네요. ‘오라클’이라는 전문 용어도 처음 알게 되었습니다. 과거에 하시던 블록체인과 현재 하시는 액티비티펍이 뭔가 탈중앙화라는 공통 분모가 있는 것 같네요.
제작자피셜로 전달받은 바에 따르면
12.3kΩ
- 12.3: 12월 3일 내란세력을
- k: 처단(...)하기 위해
- Ω: 저항
이라고 합니다.
저항하기
Polymarket 등의 예측 시장에는 오라클 문제가 있다. 블록체인으로 만들어봤자, 어차피 베팅의 승패를 결정하려면 외부에서 딸깍 해줘야한다. 가령 4월 내에 탄핵이 이뤄질거냐 마냐 같은 게임을 상상하면 된다. 그 딸각하는 사람을 어떻게 믿을수 있냐는 문제가 오라클 문제다.
오라클 문제가 없는 예측 시장이 하나 생각났는데, 바로 수학 문제가 언제 풀릴 것이냐에 대한 것이다. 가령 리만 가설이 앞으로 1,000,000 블록 내에 풀릴지, 또는 P=NP랑 둘 중에 뭐가 먼저 풀릴지 등에 대한 것이다. 여기서 풀리는건 Lean 등으로 작성된 Formal Proof을 통해서 온체인으로 판단한다.
수학자들은 자신이 베팅을 걸어놓고 연구를 열심히해서 돈을 벌 수도 있다. 또 직접 연구를 하지 않더라도 GPU를 사서 자신의 베팅에 유리하도록 연구에 도움을 줄 수 있다. 앞서 그냥 유명하단 이유로 너무 거창한 문제를 예시로 들었는데, 그보다는 더 작고 쉬운 많은 문제들에 대해 이런 식의 경제가 돌아가는걸 상상해보자. 연구에 들어가는 자원 배분이 최적화되지 않을까?
요즘에는 굳이 터미널에서 vim, helix 같은 모달형 에디터를 써야하나 의문이 들어요
마우스를 안 쓰는 것이 과연 효율적인가? 오히려 비효율적이고 손목 건강에도 안 좋다는 의견도 있구요 (http://xahlee.info/kbd/mouse_vs_keyboard.html)
그리고 Keyball 같은 키보드 쓰기 시작하니까 마우스를 쓰는 것이 부담이 매우 줄어듦
제가 이런 에디터를 썼던 큰 이유 중 하나는 가벼워서 실행/종료가 부담없고 빠르다는 것이었는데
lapce 쓰면 괜찮지 않을까? 싶어서 요즘 lapce를 들여다보는 중
리눅스가 기술적 문제를 오픈 소스 정책 - 필요하면 너네가 알아서 해라 - 로 돌파한 또 하나의 경우는 이식성인데, 다른 OS들에 비해 리눅스는 이식성을 위한 기술적, 구조적 대응이 미진했고 이는 초기에 굉장한 비판의 대상이었음.
하지만 리눅스는 1. 사실상 어떤 시스템용으로든 돌아가는 오픈 소스 컴파일러 gcc, 2. 간단하고 통일된 자유 라이센스의 소스 코드, 그리고 무엇보다 3. 강력한 유저층를 바탕으로 거의 모든 시스템에서 돌아가게 됐음.
이후로 커널 이식성 기술에 대한 논의는 수요를 많이 잃어버렸음. 실제 그거 없어도 포팅 잘 되는데 왜 자원을 투입하나, 라는 질문에 답하기 어렵거든...; 윈도 드라이버 프레임웍이 커널 레벨의 추상화를 하고 있지만 이쪽은 목표가 다르지. 😅
https://philipbohun.com/blog/0007.html
리눅스는 커널, 앱(userland) 모두 오픈 소스를 암묵적으로 전제하는 경우가 많아서, Binary Compatibility에는 관심이 적음. 안 되면 소스 코드 있으니까 네가 직접 수정-컴파일-패키징하면 된다는 사고 방식. 리눅스 시스템 콜은 이제는 상당히 안정화된 api이고, 이걸 이용한 게 Docker.
다만 이게 사양으로 불변이 확정된 것은 아니므로, 독점 소프트웨어의 경우 장기간 실행 가능성을 담보하려면 호환 레이어나 가상화, 혹은 컨테이너를 쓸 필요는 있겠다. 어느 쪽이어도 Win32 포팅보다는 더 싸고 안정적인 방법일 듯.
@hongminhee洪 民憙 (Hong Minhee) <joke>조용히 눈에 안 띄고 싶었지만 최고관리자의 우렁찬 호명으로 존재가 드러나 버렸습니다. 왜 계정을 만들자마자 글도 쓰기 전에 팔로어가 일곱 명이나 붙었나 했더만 이거였군요. 조용히 눈에 안 띄고 살 권리를 관리자가 빼앗아갔습니다.</joke>
바이너리 배포에서의 안정성을 위한다면 아주 말이 안 되는 소리는 아니지만 프로그램에서의 시스템 콜의 오버헤드를 가중시키고 시스템 간의 완벽한 호환을 보장하기 어려운데다 이미 잘 쓰고 있는 POSIX API를 버리고 Windows API를 배포하는 것은 복잡도와 비효율성 그리고 리눅스 시스템을 제대로 활용할수 없는 유연성이 저해되고 너무나도 득보다 실이 큰것이 아닌가 하는
Foreign OS의 구성 요소를 통해서 해당 운영체제를 전체적으로 랩핑한다는 시도 자체는 정말 그래야 하는가? 싶다
오히려 리눅스에서 다이나믹 링킹을 할 방법을 찾는게 더 맞지 않나 싶은
RE: https://hackers.pub/ap/notes/0195e8d1-3e72-7dc9-a194-47e7d3202329
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) 전부 플랫팩을 쓰면 되는 게 아닐까요?
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) WASI도 있고... Win32 앱들 arm64로 포팅되려면 또 한세월일텐데 전부 WASI 씁시다
여기서 해커스펍 분들 다 팔로우함 ㅋㅋㅋㅋㅋㅋ
뭐야 해커스펍 마스토돈인 줄 알았는데 아니구나 자체 소프트웨어인건가요
마크다운 지원되는 한국인 위주 개발자 SNS 관심있으신 분 있나요?
洪 民憙 (Hong Minhee) shared the below article:
Lee Dogeon @moreal@hackers.pub
Warning
제목이 적절한지 잘 모르겠다. 본문은 Mastodon에 있는 Content Warnings이라는 것이 ActivityPub Activity 객체에서 어떻게 묘사되는지 확인하는 내용이다. 정확한 내용이 아닐 수 있다.
Mastodon에서 글을 쓸 때 Content Warnings을 자주 쓰는데:
요즘은 "혼자 말" 대신 요약을 좀 적어놓는 편인 것 같다. 그런데 Mastodon에서 글을 적으면 몇 글자 더 적을 수 있는지, 글자 수 제한을 표시해준다. Content Warnings을 적는데도 글자 수 제한이 줄어드는 것을 보고 본문과 Content Warnings가 같은 필드에 있는 걸까 그런 궁금증이 들었다. 어떻게 생겼는지 보고 글을 적고 있는 지금 다시 생각하면, 조금 잘못된(?) 상상이었던 것 같지만 암튼 그랬다.
내가 적은 글의 Activity 객체 버전을 확인해보려면 어떻게 해야 하지 싶던 중, @hongminhee 님이 만드신 Fedify에서 제공하는 CLI 도구에 관련 기능이 있었던 것 같아 살펴보니 fedify lookup
이라는 명령어가 있었다.
사용법은 아래와 같이 인자로 글 URL을 넘겨주면 됐다.
fedify lookup https://social.silicon.moe/@moreal/114252336335817713
그러면 아래와 같이 Activity 객체 내용을 보여준다:
$ fedify lookup https://social.silicon.moe/@moreal/114252336335817713
✔ Fetched object: https://social.silicon.moe/@moreal/114252336335817713.
Note {
id: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713",
attribution: URL "https://social.silicon.moe/users/moreal",
contents: [ "<p>본문</p>", <ko> "<p>본문</p>" ],
published: 2025-03-30T16:31:40Z,
replies: Collection {
id: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713/replies",
first: CollectionPage {
partOf: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713/replies",
next: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713/replies?only_other_accounts=true&page=true"
}
},
shares: Collection {
id: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713/shares",
totalItems: 0
},
likes: Collection {
id: URL "https://social.silicon.moe/users/moreal/statuses/114252336335817713/likes",
totalItems: 0
},
summary: "Content Warning 테스트",
url: URL "https://social.silicon.moe/@moreal/114252336335817713",
to: URL "https://social.silicon.moe/users/moreal/followers",
cc: URL "https://www.w3.org/ns/activitystreams#Public",
sensitive: true
}
✔ Successfully fetched the object.
"Content Warnings"에 넣었던 Content Warning 테스트
라는 문구는 summary
필드에 들어있었다.
summary
필드에 대해 살펴보기 위해서 ActivityPub 문서에 들어갔다. "Note"
를 키워드로 검색해보니 아래 같은 예제를 발견했다:
{"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"to": ["https://chatty.example/ben/"],
"attributedTo": "https://social.example/alyssa/",
"content": "Say, did you finish reading that book I lent you?"}
예전에 Fedify에 기여할 때 기억으로는 Activity가 JSON-LD 포맷으로 표현되므로 스키마를 확인하고자 @context
필드의 링크로 들어갔다. 그렇게 타고 들어가서 Note의 정의를 발견했는데 Object를 상속하였고, 상속받은 것 외에 자신만의 필드는 없어 보였다.
링크를 또 타고 들어가 summary의 정의를 볼 수 있었다. 설명은 아래와 같다:
A natural language summarization of the object encoded as HTML. Multiple language tagged summaries MAY be provided.
HTML로 스타일링할 수도 있고, 여러 언어별로 요약을 제공할 수도 있다고 한다. 아래 JSON은 문서에 있는 예제인데, 영어(en)와 스페인어(es), 중국어 간체(zh-Hans) 언어마다 요약을 각각 제공하는 것으로 보인다.
{
"@context": "https://www.w3.org/ns/activitystreams",
"name": "Cane Sugar Processing",
"type": "Note",
"summaryMap": {
"en": "A simple <em>note</em>",
"es": "Una <em>nota</em> sencilla",
"zh-Hans": "一段<em>简单的</em>笔记"
}
}
Content Warnings
에 요약을 적는 건 적절한 용례이다! (?)Content Warnings
를 쓰면 as:sensitive
확장 속성도 같이 추가되어서 Mastodon에서 Content Warnings
를 요약으로 쓰는 것이 마냥 맞는 용례는 아닌 것 같다.올해도 벌써 25%나 지나갔다는 사실이 믿기지 않네요. 그래도 한 건 많겠지 싶어서 1분기에 했던 일들을 회고로 정리해 봤습니다.
https://hackers.pub/@kodingwarrior/0195e565-deaa-7ab0-984f-1e6c065f0118
이거 관련해서 드는 생각.
리액션/북마크 기능이 추가된다면, 리액션/북마크가 많이 된 3~10개의 글을 내림차순으로 정렬해서 장문 아티클을 자동으로 발행하면 어떨까!?
트렌딩 / top 10 (week) / top 10 (month)
이런 봇들을 가입한 시점에 자동으로 팔로하게 한다던가!?
React Native에선 설계를 보고 라이브러리를 고를 수가 없다. 뭔가 돌아가긴하는게 있다면 그걸 써야한다. react-navigation의 디자인을 도저히 이해못하겠는데 다른 선택지가 없는게 예시다.
안녕하세요. @kodingwarriorJaeyeol Lee 님의 초대로 왔습니다.
기묘한 개발이야기 많이 듣고 싶어요!!
오늘 블로그에 쓴 따끈따끈한 글입니다 ㅎㅎ.
비개발자도 읽을 수 있는 MCP 설정 방법 글을 써보고 싶었어요.
https://chinensis.tistory.com/entry/초보자를-위한-MCP-서버-사용-가이드-클로드가-내-개인-파일과-유튜브-영상을-분석할-수-있게-해보자
해커스펍을 어떻게 사용해볼까 하다가, 우선 한동안은 블로그에 작성하는 글을 공유해보기로 했습니다.
오늘 공유할 글은 React의 디자인 패턴 중 하나인 Container/Presentational 패턴에 관한 글입니다. 예전에 교육 프로그램을 들을 때 팀 프로젝트로 Next.js 기반의 서비스를 구현한 적이 있는데, 해당 프로젝트의 회고를 진행하면서 컨테이너 패턴을 사용했다고 착각했습니다. 최근 이력서 피드백을 받다가 이를 깨달아서, 그렇다면 컨테이너 패턴은 뭔지, 그렇다면 제가 프로젝트에 사용했던 패턴은 과연 무엇이었는지를 글로 옮겨 봤습니다.
https://hoonieblog.xyz/blog/study-react-container-presentational-pattern
초대장 족보 40명 채움 캬캬
인구통계학적으로 더 골고루 전도를 해야한다...!!
해커스 펍이 왕성한 이 때, 혼자 조용히 저는 @hollo 가 좋아요 ㅎㅎ
@ak 10년도 더 전 예전 블로그에 이에 관해 글을 올리셨던 게 기억 나네요!
@hongminhee洪 民憙 (Hong Minhee) ㅋㅋㅋ 맞아요! 추억이 방울방울. 당시에 <Supersizing the Mind>를 요약해서 공유했더랬죠. 오랜 시간 영향을 준 (지금도 주고 있는) 좋은 책이었어요.
AI가 생성한 내용을 내 지식관리시스템(위키 등)에 복붙하면 그건 내 지식일까 아닐까?
2008년 경에 The extended mind (1998, Andy Clark and David Chalmers)라는 짧은 에세이를 읽었는데 여기서 본 내용이 참고할만 하다.
저자들은 장기기억 상실을 앓고 있는 사람이 수첩에 모든 걸 기록하고 항상 이를 참고한다면 그 수첩에 담긴 글들은 "확장된 기억"이라고 주장한다. 더 나아가서, 수첩의 내용이 단순히 "기억"이 아니라 "믿음extended dispositional belief"이기 위해서 필요한 기준을 추가로 제시한다.
AI가 생성한 내용을 검토 없이 복붙했다면 이는 4번을 만족하지 못하고, 이에 따라 3번에도 문제가 생긴다. 따라서 검토 없는 복붙은 좋은 전략이 아닐 뿐 아니라 내 지식관리시스템을 망칠 가능성이 크다.
참고로 에세이의 저자들은 이 중 마지막 기준에 논쟁의 여지가 있다고 말하긴 한다. 무의식적으로 믿음이 형성되는 경우, 기억 조작이 일어난 경우 등이 있기 때문. 그런데 KMS 맥락에선 4번이 중요하다고 봐도 되겠다.
hello, world!
The Rust Foundation is excited to join you on Mastodon. Going forward, we plan to exclusively share social media content here, on Bluesky, and on LinkedIn. 🦀
RustConf is also on Mastodon at @rustconf. Follow them if you're interested in the many updates about RustConf coming up!
darcs에 브랜치라는 개념이 없고 대신 저장소를 복제해서 패치를 선별적으로 적용한다고 한다. 프로그래밍 책 읽으면서 연습 문제를 풀려고 하는데 본문과 연습 문제가 다른 시간선(?)을 달려서 브랜치를 써볼까 했는데 브랜치가 없네⋯ https://chatgpt.com/share/67e8f4fd-7274-800c-8565-42c76aabd6e5
洪 民憙 (Hong Minhee) shared the below article:
洪 民憙 (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 (한국 중심) |
커뮤니티(서브레딧과 유사), 투표, 토론 |
연합우주를 이해할 때 흔히 혼동되는 개념이 있습니다. 바로 플랫폼(소프트웨어)과 인스턴스(서버)의 차이인데요.
플랫폼은 Mastodon, Misskey, Pixelfed와 같은 소프트웨어 자체를 의미합니다. 이들은 오픈 소스 소프트웨어로, 누구나 다운로드받아 설치할 수 있습니다.
인스턴스는 그 소프트웨어를 실행하는 개별 서버를 말합니다. mastodon.social과 우리.인생은 모두 Mastodon 플랫폼을 실행하는 별도의 인스턴스입니다.
Meta의 Threads 같은 일부 서비스는 플랫폼과 인스턴스가 동일합니다. 하지만 대부분의 연합우주 서비스는 여러 인스턴스로 구성되어 있습니다.
연합우주가 갖는 몇 가지 매력적인 특징이 있습니다:
연합우주에 참여하는 것은 생각보다 쉽습니다:
한국 사용자라면 Mastodon 인스턴스인 우리.인생, Misskey 인스턴스인 스텔라 같은 한국어 중심 인스턴스를 추천합니다. 한국어 환경을 지원하고 한국 사용자들이 활발하게 활동하고 있어 시작하기 좋습니다.
아니면 이 글이 올라온 Hackers' Pub도 괜찮습니다. 소프트웨어 엔지니어들을 위한 소셜 미디어랍니다. 아직 개발중이라 공개적으로 가입을 받고 있지는 않습니다만, 홍민희에게 연락 주시면 계정을 생성해 드릴 수 있습니다.
이제 개발자 관점에서 ActivityPub이 어떻게 작동하는지 자세히 살펴보겠습니다.
ActivityPub은 W3C에서 권장하는 표준 프로토콜로, 분산 소셜 네트워킹의 기반이 됩니다. ActivityStreams 2.0 데이터 형식을 기반으로 하며, 서로 다른 서버 간에 정보를 교환하는 방법을 정의합니다.
ActivityPub은 몇 가지 핵심 개념으로 구성됩니다:
홍길동(@honggildong@mastodon.social
)이 게시물을 작성하고, 이영희(@leeyeonghui@misskey.io
)가 이에 반응하는 과정을 살펴봅시다:
게시물 작성:
홍길동이 Mastodon에서 게시물을 작성합니다. Mastodon 서버는 이 게시물을 ActivityStreams 2.0 형식의 Create(Note)
액티비티로 변환합니다. 이 액티비티는 홍길동의 팔로워(이영희 포함)에게 전달됩니다.
게시물 수신: 이영희의 Misskey 서버는 이 액티비티를 받고 처리하여 이영희의 타임라인에 홍길동의 게시물을 표시합니다.
상호작용:
이영희가 게시물에 좋아요를 누르면, Misskey 서버는 Like(Note)
액티비티를 생성하여 홍길동의 Mastodon 서버로 보냅니다. 홍길동은 이영희가 자신의 게시물을 좋아했다는 알림을 받게 됩니다.
마치 다른 언어를 사용하는 사람들이 통역사를 통해 대화하는 것과 비슷하죠? ActivityPub이 바로 그 통역사 역할을 합니다.
개발자로서 실제 ActivityPub 메시지가 어떻게 생겼는지 궁금하실 텐데요. 몇 가지 예시를 살펴봅시다:
{
"@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, 그리고 중요한 inbox
와 outbox
URL이 포함되어 있죠.
{
"@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)
액티비티입니다. 게시물 내용, 해시태그, 공개 범위 등이 포함되어 있습니다.
{
"@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 서버를 구현하고 싶다면 다음 단계를 따라야 합니다:
Create
, Follow
, Like
등)을 처리하는 로직을 구현합니다.개발을 시작하기 전에 Mastodon, Misskey 같은 기존 구현체의 코드를 살펴보는 것이 도움이 됩니다. 처음부터 모든 것을 구현하는 것보다 Fedify 같은 프레임워크를 활용하는 것도 좋은 방법입니다.
연합우주에서 @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을 통해 사용자의 전체 프로필 정보를 얻을 수 있습니다. 마치 전화번호부에서 이름으로 전화번호를 찾는 것과 비슷하죠!
연합우주는 계속 성장하고 있지만, 몇 가지 도전 과제도 있습니다:
그러나 Threads와 같은 주요 서비스들이 ActivityPub을 채택하기 시작하면서, 연합우주의 미래는 밝아 보입니다. 개발자로서, 이런 성장하는 생태계에 참여할 수 있는 기회가 많이 있습니다.
연합우주와 ActivityPub은 중앙화된 소셜 미디어의 대안으로서 점점 더 주목받고 있습니다. 사용자에게 더 많은 통제권을 부여하고, 다양하고 풍부한 온라인 경험을 제공하는 연합우주의 세계는 계속해서 확장되고 있습니다.
개발자로서, 여러분은 이 새로운 탈중앙화된 웹의 생태계에 기여할 수 있습니다. 기존 애플리케이션에 ActivityPub 지원을 추가하거나, 완전히 새로운 서비스를 만들거나, 현재의 도전 과제를 해결하는 솔루션을 개발할 수 있습니다.
한국 개발자들의 참여가 늘어나면 한국 사용자들을 위한 더 다양하고 풍부한 서비스가 생길 것이고, 이는 더 건강하고 다양한 인터넷 문화를 만드는 데 기여할 것입니다.
그럼, 연합우주로의 여행을 시작해 보시는 건 어떨까요?
해커스펍이 터졌었나보군요! (이상하다 아직 전원버튼 안 눌렀는데)
@diarapin금강토 혹시나 했으나 (농담입니다😂) 토끼는 이번 서버 다운 사태와 무관하다는 것이 업계의 정설…
팔로워 100명 찍으면 초대는 좀 소극적으로 하고 컨텐츠를 좀 더 적극적으로 채울거야!
와 4월 이후에 FA로 풀릴 예정
Jaeyeol Lee replied to the below article:
Jaeyeol Lee @kodingwarrior@hackers.pub
Hackers' Pub을 포함하여 페디버스에 입문한 여러분 중 누군가는 막막한 생각이 들 수도 있습니다. 특히 지인의 Pool이 없는 상황이거나 혹은 Fediverse라는 개념 자체가 낯설 수록이요.
먼저 인스턴스라는 개념도 낯설게 느껴지거니와, 어떤 사람을 팔로할 지도 아예 생태계에 쌩으로 입문하는 입장에서는 시작을 하는 것 자체가 난해합니다.
Hackers' Pub을 포함한 ActivityPub 프로토콜을 사용하는 서비스들의 장점은 Bluesky, Mastodon, Misskey 어디에든 걸쳐있는 사람들과 하나로 연결되는 경험을 누릴 수 있다고 언급한 적은 있었습니다만, 이러한 장점을 어떻게 누릴 수 있는지도 알기는 어려울 겁니다.
보통은 트위터나 혹은 다른 알고리즘 기반의 추천을 해주는 여러 서비스들은 좋아하는지 취향에 맞는지와는 상관없이 일단 추천하긴 하지만, 페디버스는 국내 생태계 한정으로는 추천을 하기가 쉽지 않은 것 또한 사실이긴 합니다. 하지만, 해외개발자 Pool은 굉장히 넓은 것이 자명합니다. 물론, 이것도 역시 추천을 하기가 쉽지 않습니다. 여러분이 혹시 단골로 찾아보는 개발자 블로그가 있다면 Mastodon 계정이 보이는 경우를 최소 두 자릿수는 준하게 보실 수 있을 것이긴 합니다.
아무튼, 페디버스 생태계에도 소프트웨어 종사자인 여러분이 읽을만한 피드는 준비되어 있습니다. 팔로해볼 수 있는 여러 계정들을 예시로 들어서 소개해볼까 합니다.
어떤 마스토돈 인스턴스를 이용할 수 있는지는 **여기**에도 잘 설명되어 있습니다. 개인적으로 추천하는 마스토돈 인스턴스는 아래와 같습니다.
국내
해외
Twitter/Threads에서는 자체적인 추천 알고리즘을 통해 어떤 계정을 팔로하면 괜찮을지 제안을 하기도 합니다. 하지만, 마스토돈은 그런 기능 쪽으로는 미비하다시피합니다.
개발 관련 정보를 구독하고 싶은 분들의 입장에서는 굉장히 치명적일 수도 있습니다. 아래에서는 어떤 개발자에게든 팔로할 것을 권장하는 계정들을 소개합니다.
개발 관련 뉴스
오픈소스 컨트리뷰터
그 외에도, 관심이 가는 분야가 있으시다면 해당 분야 쪽 사람들이 모여있는 인스턴스를 눈여겨보시는 것을 권장합니다. 팔로우할 계정을 추천해주는 서비스를 찾으신다면 이것도 고려해보세요! (추천해주신 @rghw님 감사합니다.)
그 외에도 팔로할만한 계정이나 눈여겨볼만한 인스턴스가 있다면 댓글로 알려주세요! 여러분들의 댓글이 처음 입문하는 분들에게 도움이 될 수 있습니다!
페디버스 계정의 URL을 검색창에 입력하면 Hackers' Pub에서도 다른 인스턴스의 계정을 팔로할 수 있답니다!
洪 民憙 (Hong Minhee) shared the below article:
Jaeyeol Lee @kodingwarrior@hackers.pub
Hackers' Pub을 포함하여 페디버스에 입문한 여러분 중 누군가는 막막한 생각이 들 수도 있습니다. 특히 지인의 Pool이 없는 상황이거나 혹은 Fediverse라는 개념 자체가 낯설 수록이요.
먼저 인스턴스라는 개념도 낯설게 느껴지거니와, 어떤 사람을 팔로할 지도 아예 생태계에 쌩으로 입문하는 입장에서는 시작을 하는 것 자체가 난해합니다.
Hackers' Pub을 포함한 ActivityPub 프로토콜을 사용하는 서비스들의 장점은 Bluesky, Mastodon, Misskey 어디에든 걸쳐있는 사람들과 하나로 연결되는 경험을 누릴 수 있다고 언급한 적은 있었습니다만, 이러한 장점을 어떻게 누릴 수 있는지도 알기는 어려울 겁니다.
보통은 트위터나 혹은 다른 알고리즘 기반의 추천을 해주는 여러 서비스들은 좋아하는지 취향에 맞는지와는 상관없이 일단 추천하긴 하지만, 페디버스는 국내 생태계 한정으로는 추천을 하기가 쉽지 않은 것 또한 사실이긴 합니다. 하지만, 해외개발자 Pool은 굉장히 넓은 것이 자명합니다. 물론, 이것도 역시 추천을 하기가 쉽지 않습니다. 여러분이 혹시 단골로 찾아보는 개발자 블로그가 있다면 Mastodon 계정이 보이는 경우를 최소 두 자릿수는 준하게 보실 수 있을 것이긴 합니다.
아무튼, 페디버스 생태계에도 소프트웨어 종사자인 여러분이 읽을만한 피드는 준비되어 있습니다. 팔로해볼 수 있는 여러 계정들을 예시로 들어서 소개해볼까 합니다.
어떤 마스토돈 인스턴스를 이용할 수 있는지는 **여기**에도 잘 설명되어 있습니다. 개인적으로 추천하는 마스토돈 인스턴스는 아래와 같습니다.
국내
해외
Twitter/Threads에서는 자체적인 추천 알고리즘을 통해 어떤 계정을 팔로하면 괜찮을지 제안을 하기도 합니다. 하지만, 마스토돈은 그런 기능 쪽으로는 미비하다시피합니다.
개발 관련 정보를 구독하고 싶은 분들의 입장에서는 굉장히 치명적일 수도 있습니다. 아래에서는 어떤 개발자에게든 팔로할 것을 권장하는 계정들을 소개합니다.
개발 관련 뉴스
오픈소스 컨트리뷰터
그 외에도, 관심이 가는 분야가 있으시다면 해당 분야 쪽 사람들이 모여있는 인스턴스를 눈여겨보시는 것을 권장합니다. 팔로우할 계정을 추천해주는 서비스를 찾으신다면 이것도 고려해보세요! (추천해주신 @rghw님 감사합니다.)
그 외에도 팔로할만한 계정이나 눈여겨볼만한 인스턴스가 있다면 댓글로 알려주세요! 여러분들의 댓글이 처음 입문하는 분들에게 도움이 될 수 있습니다!
해커스펍이 터졌었나보군요! (이상하다 아직 전원버튼 안 눌렀는데)
해커스펍의 프사를 미스키에서 보려고 하니까 인증서 오류가 나네요
왜지..?
@curry박준규
@hongminhee洪 民憙 (Hong Minhee) 이건 사망플래그잖아요 ㅋㅋㅋㅋㅋ