@neozest 님, 어서 오세요!

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 604 following · 401 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
해커스펍에 처음 방문해 봤습니다. 아직까지는 어떻게 활용해야 할 지 잘 모르겠지만, 쓰다 보면 금방 적응하겠죠. 반갑습니다 😆
@renegade_v00카미유 반갑습니다. 어서 오세요!
해커스펍에 처음 방문해 봤습니다. 아직까지는 어떻게 활용해야 할 지 잘 모르겠지만, 쓰다 보면 금방 적응하겠죠. 반갑습니다 😆
@arkjunJuntai Park 님께도 감사의 말씀 드립니다! 🙏🏼🙇🏻♂️
@curry박준규 님도 고맙습니다! 🙏🏼🙇🏻♂️
그러고 보니 해시태그도 지원해야…
10년간 프로그래밍 하면서 제가 프로그래밍을 좋아한다는 것은 확실히 알았습니다. 그런데, 좋아한다고 해서 아무 프로그래밍 관련 직업을 얻으면 되는지 항상 의문이었습니다.
저는 프로그래밍을 정말 좋아합니다만, 프로그래밍의 과정 자체를 즐기는 것이지, 프로그래밍을 사용하는 목적에 대해 생각해본 적이 거의 없었어요. 10년 동안!
심지어 대학생 때에는 프로그래밍이 너무 지긋지긋해서 그만 두어야 하나 고민도 했구요.
그런데, 졸업 후에 부트캠프에서 교육을 받기 시작하면서 역시 저는 프로그래밍을 그만둘 수 없다는 걸 알았습니다. 뿐만 아니라, 제가 좋아하는 것을 더 발견했습니다.
저는 제가 가진 지식을 공유하는 것에 보람을 느낍니다. 누군가에게 더 나은 방향을 제시하고, 더 좋은 방법을 고민하는 것이 즐겁습니다. 역시 저는 개발자가 되어야 한다고 생각하는 요즘이네요.
액티비티펍 C2S도 역시 그것만으론 서버가 어느 기능을 지원하고 어느 기능을 지원 안 하는지 알기 어렵다
C2S보다 훨씬 간소화된 마이크로펍 스펙이 있는데 역시 아무도 지어ㅜㄴ하지 않는다는 것이 특징
다만 인증에 관련한 부분까지 제대로 언급돼 있고 q=config이라는 간소하지만 서버 기능을 알 수 있는 기능도 존재
I received a heartwarming #testimonial about #Fedify today!
@bglbgl gwyng shared in the FediDev KR Discord server:
I had trouble finding good resources explaining ActivityPub, but after reading through the Fedify docs from start to finish, I feel like I've actually digested it.
They also posted on their Hackers' Pub:
If you want to learn ActivityPub efficiently, just read the Fedify docs from beginning to end.
This makes all the documentation work worthwhile. Glad our docs are helping people understand not just Fedify, but #ActivityPub itself.
ActivityPub 효율적으로 익히려면 그냥 fedify 문서 첨부터 끝까지 읽으면 되는듯요
액티비티펍 C2S도 역시 그것만으론 서버가 어느 기능을 지원하고 어느 기능을 지원 안 하는지 알기 어렵다
내년쯤에 framework 랩톱 풀옵션으로 지를까 고민중... 지금 쓰는건 한정된 예산으로 최대한 쥐어짜내서 산거라 아쉬움이 남긴 하는데, 한 2년은 더 쓰고...
@kodingwarriorJaeyeol Lee Framework에서 ARM64 버전도 내줬으면 좋겠네요…
@saschanazKAGAMI🏳️🌈🏳️⚧️
@makguksu막국수 네, ActivityPub에 S2S 인터랙션이 있고 C2S 인터랙션이 있는데요. 전자는 우리가 이미 잘 알고 있는 그것인데, 후자는 스펙에 언급만 되어 있을 뿐, 실제로 쓰이진 않고 있네요. Mastodon API가 그 역할을 가로채서 발전이 더딘 것 같습니다. 실제로 쓰려고 해봐도 인증이라든가 스펙에서 다루지 않는 부분이 아직 정해지지 않아서 뭘 어떻게 해야 할지 막막하기도 하고요…
@hongminhee洪 民憙 (Hong Minhee) 오. 드디어 나왔군요. 몇 기가 램으로 하셨나요?
@arkjunJuntai Park 32GB 최대로 했습니다 ㅎㅎ
하루에 한 번씩 Apple 한국 홈페이지 들어가서 MacBook Air M4 출시일 공개 되었는지 확인하고 있다… 😑
오늘 확인해 보니 한국 Apple 온라인 스토어에서 MacBook Air M4 주문이 가능해져서 바로 주문했다!
@tirrWonwoo Choi (Tirr) 버그입니다! 고쳐둘게요.
@tirrWonwoo Choi (Tirr) 고쳤습니다. 프로필 사진 다시 업로드하시면 될 거예요!
마스토돈 API 강제하지 말고 일부 기능만 있어도 구현할 수 있는 크로스플랫폼 API 생겼으면 좋겠다
네이버에서 이런 걸 왜 만들었을까?
Tamgu는 Prolog에서 영감을 받은 술어 엔진과 Haskell 언어에서 영감을 받은 기능적 기능을 갖춘 명령형 언어입니다. 이 세 가지 프로그래밍 스타일을 자유롭게 혼합할 수 있습니다.
@curry박준규 한국 네이버 법인은 아니고 네이버 랩스 유럽 쪽의 작품입니다. https://europe.naverlabs.com/blog/tamgu/
마이크로블로깅도 할 수 있고 미스키 페이지 같은 긴 글 공유도 가능한 구조구나
연합우주에 새 계정 만들기 (즐겁다)
@hongminhee洪 民憙 (Hong Minhee) (반)투명한 이미지를 프로필사진으로 올리면 배경이 까만 불투명 이미지로 변하는데 의도된 건가요 버그인가요?
@tirrWonwoo Choi (Tirr) 버그입니다! 고쳐둘게요.
컼 점점 중간에 ㅌㅌ할 수 없게 되어버린다
RE: https://hackers.pub/@hongminhee/0195e0f7-8c44-76c6-8c60-4f1978e5f4a2
제미니 2.5 프로랑 클로드 3.7이랑 코딩배틀이라도 해야...
Powershell, winget, Windows terminal이 안정화되면서 윈도에서 작업이 매우 편리해졌다.
@curry박준규 알림기능이 먼저 만들어질지 아니면 마스토돈 API 지원이 먼저일지 세기의 경쟁
@kodingwarriorJaeyeol Lee
@curry박준규 알림은 조만간 구현 예정이고, Mastodon API는 아마도 구현 안 될 것 같아요. 대신
@xiniha 님 주도로 GraphQL API가 생길 예정!
해커스펍 계정은 쓰기 전용으로, 우리인생은 읽기전용으로 사용하고 있다. 또는 기술 관련 콘텐츠는 해커스펍에 올리고 일상은 우리인생에 올리려고 한다.
클라이언트는 팬피를 쓰고 있는데 해커스펍은 마스토돈 API 구현이 안 되어 있어서 팬피에는 우리인생 계정을 연동했다.
그런데 팬피에서 재밌게 글을 읽다 보면 무심코 팬피에서(우리인생 계정으로) 해커스펍 글에 댓글을 달아서 뭔가 곤란하다⋯
그리고 해커스펍에 오신 분들은 거의 다 팔로우를 하고 있는데 동시에 우리인생에서도 팔로우를 해야해서(팬피에서 읽어야 하니까) 불편하다.
오에카키 커뮤니티 오이카페를 오픈 소스로 공개했습니다.
Rust, Axum, MiniJinja, HTMX 등으로 만들었고, 그림판은 PaintBBS NEO와 tegaki.js를 지원합니다.
많은 관심 부탁드립니다!
파워쉘 스크립트를 외부에서 콜하는 방법으로 ps2exe를 쓰다가 그냥 bat 파일 하나 만들어서 거기서 pwsh.exe 호출하면 된다는 사실을 발견... 쿨럭;; 레거시가 이렇게 쓰이나. ㅋㅋ;
그냥 스크립트 파일에 실행 권한 주고 바로 실행하면 되는거 아닌가 싶은데, 보안에서는 이 쪽이 더 낫나 싶기도 함. 근데 어차피 ByPass 하는데... 흠.
파워쉘 스크립트를 외부에서 콜하는 방법으로 ps2exe를 쓰다가 그냥 bat 파일 하나 만들어서 거기서 pwsh.exe 호출하면 된다는 사실을 발견... 쿨럭;; 레거시가 이렇게 쓰이나. ㅋㅋ;
@kkumaeunsonyeon꿈많은소년 님, 어서 오세요!
펑터에 대한 수학귀신적 번역어로 '그물망 던지기'가 떠올랐다.
@hongminhee洪 民憙 (Hong Minhee) 단순히 제가 몰라서 질문하고 싶은 부분이 있는데요. BASIC만 대문자로 표기되는 이유는 뭔가요? front-end도 표준어가 아니라서 하이픈이 들어간건가요?
@ellemedit 음, “front-end”는 두 단어의 합성어라고 생각해서 그렇게 썼는데, 요즘에는 그냥 붙여서 쓰는 경우가 더 많으니 하이픈을 빼도 되겠네요. BASIC은 언어 이름(“Beginners' All-purpose Symbolic Instruction Code”)이라고 생각해서 대문자로 표기했습니다.
네이버에서 이런 걸 왜 만들었을까?
Tamgu는 Prolog에서 영감을 받은 술어 엔진과 Haskell 언어에서 영감을 받은 기능적 기능을 갖춘 명령형 언어입니다. 이 세 가지 프로그래밍 스타일을 자유롭게 혼합할 수 있습니다.
소프트웨어 개발자들이 자주 틀리는 외래어 표기법.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리포지터리 |
또 있을까요?
@hongminhee洪 民憙 (Hong Minhee) 꼭 외래어만 그런 건 아니지만 ㅐ와 ㅔ의 혼선이 제법 있는데, 이를테면 lag 랙("렉"으로 틀림) 같은 사례가 있습니다. 그 밖에는 daemon 다이먼(동계어인 demon에 이끌려 "데몬"이 널리 쓰이지만, 애초에 demon의 올바른 표기는 "디먼"임) 같은 게 생각나네요. 뭐 알아도 그렇게 안 쓰는 사람이 너무 많아서 대부분 틀린 표기로 쓰게 되지만...
퍼블릭도메인 또는 그에 가까운 라이센스를 선호하는 소프트웨어 엔지니어와 좀더 제한적인 라이센스를 선호하는 엔지니어, 비 오픈소스 엔지니어가 AI 코딩을 대하는 생각은 다 다를 것 같다
나는 내 코드 가져다 쓰는건 상관없는데 그보다는 기껏 코드 공개해놨더니 말그대로 지구 태워가며 돈버는데 쓰이는게 싫다
퍼블릭도메인 또는 그에 가까운 라이센스를 선호하는 소프트웨어 엔지니어와 좀더 제한적인 라이센스를 선호하는 엔지니어, 비 오픈소스 엔지니어가 AI 코딩을 대하는 생각은 다 다를 것 같다
@maxwellEunsoo Eun 어 뭐야 어떻게 오신거에요
@kodingwarriorJaeyeol Lee
@maxwellEunsoo Eun 제가 초대 드렸어요. ㅎㅎㅎ
@hongminhee洪 民憙 (Hong Minhee) 제가 더 감사드립니다. 🙏 코드기여를 해보려 했으나, 더 쉬운 기여방법이 있었..
@diarapin금강토 님과 커피라도 한잔하소서🙇♀️ 맥미니는 지켜야하므로. (농담😂)
@arkjunJuntai Park
@diarapin금강토 감사합니다! ㅎㅎㅎ 커피 잘 마실게요!
@hongminhee洪 民憙 (Hong Minhee) 마음가짐은 언제나 마지막 회사라는 설정으로 다니고 있습니다. 😅 좀 더 한다면 15년 정도일까 싶습니다. (그때 환갑인데, 기력이 될까 모르겠어요.)
마지막 퇴장은 젊은 개발자들에게 더 나은 길을 만들어 주고 싶다는 작은 욕망은 있습니다. 😂
@arkjunJuntai Park 직업으로서 소프트웨어 개발자를 그만 두더라도, 취미로 계속할 수 있는 것 아니겠어요!?
저는 @hongminhee洪 民憙 (Hong Minhee) 님께서 올려주신 표에서 디렉터리, 메시지 외엔 모두 틀린 표현을 쓰고 있거든요.
믿을 수 없는 현실에 충격을 받아, 어떻게든 부정해보고자 온라인 가나다에서 확인해보니 메서드(https://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=216&qna_seq=309723)와 같이 상정되지 않은 사례 한 개 정도 밖에 없네요.
대체 왜 틀린 표기를 쓰고 있었을까요? orz
@fedipoJellyPo 하하… 그래서 “자주” 틀리는 표기라고 한 거죠! 많이들 틀립니다. 외래어 표기법에 큰 관심이 없는 경우가 많으니까요.
드디어 Bartosz Milewski의 Category Theory 강의를 챕터 2까지 끝냈다. 몇년 걸렸지... 중간에 정체된 기간이 꽤 길었는데, 야식 먹을때 죄책감을 달래는 용도로 틀어놓았더니 진도를 빨리 뺄수 있었다.
@maxwellEunsoo Eun 님, 어서 오세요!
개발자로 살아갈 시간이, 10년채 안남았다고 생각하면 서글퍼지기도 합니다만, 10년이나 남았다고 생각하면 그때까지 최선을 다하고 싶기도 합니다.
Dear Great Hackers, 즐거운 주말되세요! 😆
@arkjunJuntai Park 어째서 10년밖에 안 남았죠!?
@bglbgl gwyng 님, 후원 감사합니다! 🙏🙇
@arkjunJuntai Park 님께도 감사의 말씀 드립니다! 🙏🏼🙇🏻♂️
@noxowlSuyeong RHIE 님, 어서 오세요!
Nextjs를 처음 도입하고 계속 서버가 터져서 일단 롤백하고, 안정화&튜닝을 하다가 결국 Nextjs 소스를 깠다.
“Vercel에서만 제공되는 공개되지 않은 부분이 있는 것 같다”고 했을때 개발자들의 반응은 우리 CTO가 미쳤어요“였지만…
지금도 Vercel과 Nextjs는 쳐다보지도 않는다.
We're excited to announce the release of Fedify 1.5.0! This version brings several significant improvements to performance, configurability, and developer experience. Let's dive into what's new:
Two-Stage Fan-out Architecture for Efficient Activity Delivery
#Fedify now implements a smart fan-out mechanism for delivering activities to large audiences. This change is particularly valuable for accounts with many followers. When sending activities to many recipients, Fedify now creates a single consolidated message containing the activity payload and recipient list, which a background worker then processes to re-enqueue individual delivery tasks.
This architectural improvement delivers several benefits: Context.sendActivity()
returns almost instantly even with thousands of recipients, memory consumption is dramatically reduced by avoiding payload duplication, UI responsiveness improves since web requests complete quickly, and the system maintains reliability with independent retry logic for each delivery.
For specific requirements, we've added a new fanout
option with three settings:
// Configuring fan-out behavior
await ctx.sendActivity(
{ identifier: "alice" },
recipients,
activity,
{ fanout: "auto" } // Default: automatic based on recipient count
// Other options: "skip" (never use fan-out) or "force" (always use fan-out)
);
Canonical Origin Support for Multi-Domain Setups
You can now explicitly configure a canonical origin for your server, which is especially useful for multi-domain setups. This feature allows you to set different domains for WebFinger handles and #ActivityPub URIs, configured through the new origin
option in createFederation()
. This enhancement prevents unexpected URL construction when requests bypass proxies and improves security by ensuring consistent domain usage.
const federation = createFederation({
// Use example.com for handles but ap.example.com for ActivityPub URIs
origin: {
handleHost: "example.com",
webOrigin: "https://ap.example.com",
},
// Other options...
});
Optional Followers Collection Synchronization
Followers collection synchronization (FEP-8fcf) is now opt-in rather than automatic. This feature must now be explicitly enabled through the syncCollection
option, giving developers more control over when to include followers collection digests. This change improves network efficiency by reducing unnecessary synchronization traffic.
await ctx.sendActivity(
{ identifier: sender },
"followers",
activity,
{
preferSharedInbox: true,
syncCollection: true, // Explicitly enable collection synchronization
}
);
Enhanced Key Format Compatibility
Key format support has been expanded for better interoperability. Fedify now accepts PEM-PKCS#1 format in addition to PEM-SPKI for RSA public keys. We've added importPkcs1()
and importPem()
functions for additional flexibility, which improves compatibility with a wider range of ActivityPub implementations.
Improved Key Selection Logic
The key selection process is now more intelligent. The fetchKey()
function can now select the public key of an actor if keyId
has no fragment and the actor has only one public key. This enhancement simplifies key handling in common scenarios and provides better compatibility with implementations that don't specify fragment identifiers.
New Authorization Options
Authorization handling has been enhanced with new options for the RequestContext.getSignedKey()
and getSignedKeyOwner()
methods. This provides more flexible control over authentication and authorization flows. We've deprecated older parameter-based approaches in favor of the more flexible method-based approach.
Efficient Bulk Message Queueing
Message queue performance is improved with bulk operations. We've added an optional enqueueMany()
method to the MessageQueue
interface, enabling efficient queueing of multiple messages in a single operation. This reduces overhead when processing batches of activities. All our message queue implementations have been updated to support this new operation:
- @fedify/redis 0.4.0
- @fedify/postgres 0.3.0
- @fedify/amqp 0.2.0
If you're using any of these packages, make sure to update them alongside Fedify to take advantage of the more efficient bulk message queueing.
CLI Improvements
The Fedify command-line tools have been enhanced with an improved web interface for the fedify inbox
command. We've added the Fedify logo with the cute dinosaur at the top of the page and made it easier to copy the fediverse handle of the ephemeral actor. We've also fixed issues with the web interface when installed via deno install
from JSR.
Additional Improvements and Bug Fixes
- Updated dependencies, including @js-temporal/polyfill to 0.5.0 for Node.js and Bun
- Fixed bundler errors with uri-template-router on Rollup
- Improved error handling and logging for document loader when KV store operations fail
- Added more log messages using the LogTape library
- Internalized the multibase package for better maintenance and compatibility
For the complete list of changes, please refer to the changelog.
To update to Fedify 1.5.0, run:
# For Deno
deno add jsr:@fedify/fedify@1.5.0
# For npm
npm add @fedify/fedify@1.5.0
# For Bun
bun add @fedify/fedify@1.5.0
Thank you to all contributors who helped make this release possible!
소프트웨어 개발자들이 자주 틀리는 외래어 표기법.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리포지터리 |
또 있을까요?
지속적으로 갱신하기 위해 따로 게시글로 만들었습니다.
한국 소프트웨어 개발자들이 자주 틀리는 외래어 표기법

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
전에 단문으로 올렸던 글을 지속적으로 갱신해볼까 싶어 게시글로 만들어 봅니다.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
algorithm | 알고리즘 | 알고리듬 |
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
BASIC | 베이직 | 베이식 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
launch | 런치 | 론치 |
license | 라이센스 | 라이선스 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
parallel | 페러렐 | 패럴렐 |
proxy | 프록시 | 프락시 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리파지터리 |
shader | 쉐이더 | 셰이더 |
shell | 쉘 | 셸 |
@minbyul민별 님, 안녕하세요. 어서 오세요!
@zer0ken이현령 님, 어서 오세요!