Profile img

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at @hongminhee洪 民憙 (Hong Minhee).

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은: @hongminhee洪 民憙 (Hong Minhee).

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「@hongminhee洪 民憙 (Hong Minhee)」に。

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee
4
3
4
1
4
4

🎉 Huge shoutout to @2chanhaeng초무 for implementing custom collection dispatchers in through the Korean program!

This incredible contribution adds support for creating arbitrary collections beyond the built-in ones (e.g., outbox, inbox, following, followers). Now developers can expose custom collections like user bookmarks, post categories, or any grouped content through the protocol:

federation
  .setCollectionDispatcher(
    "bookmarks",
    Article,
    "/users/{identifier}/bookmarks",
    async (ctx, values, cursor) => {
      const { posts, nextCursor } = await getBookmarkedPosts(values.identifier, cursor);
      return { items: posts, nextCursor };
    }
  )
  .setCounter(async (ctx, values) =>
    getBookmarkCount(values.identifier)
  );

The implementation is technically excellent with full support, both Collection and OrderedCollection types, cursor-based pagination, authorization predicates, and zero breaking changes. @2chanhaeng초무 delivered not just code but a complete feature with 313 lines of comprehensive documentation, practical examples, and thorough test coverage.

This opens up countless possibilities for ActivityPub applications built with Fedify. From user-specific collections to complex categorization systems, developers now have the flexibility to create any type of custom collection while maintaining full ActivityPub compliance.

Thank you @2chanhaeng초무 for this outstanding contribution and to the OSSCA program for fostering such excellent open source collaboration! 🚀

5
0
0

지난 한달간 열심히 개발한 실시간 퀴즈 사이트입니다. django, django drf, jwt 기반 인증, websocket, ticket으로 받아오는 jwt websocket 인증, celery, 등을 모두 사용한 예시이기도 합니다. 구경와주세요~

https://github.com/theeluwin/Qlickr

6

전화기 앱 개발을 별로 하고 싶지는 않은데, 딱 하나 있었으면 하는 앱이 있다. 다른 기능 없이, 그냥 123456789*0# 버튼 있고, 누를 때마다 도레미파솔라시도레미파솔 키음이 나는 기능이 있는 앱이 있었으면 좋겠다. 좀 더 욕심을 내자면, 버튼이 한 두 개 정도 더 있어서 파샵이랑 시플랫정도는 있었으면 좋겠다. 이게 없는 전화기는 내게 완전한 전화기가 아니다. 아쉽게도, 첫 스마트폰으로 아이폰4를 산 이후로 나는 완전한 전화기를 겪어보지 못했다.

3

전화기 앱 개발을 별로 하고 싶지는 않은데, 딱 하나 있었으면 하는 앱이 있다. 다른 기능 없이, 그냥 123456789*0# 버튼 있고, 누를 때마다 도레미파솔라시도레미파솔 키음이 나는 기능이 있는 앱이 있었으면 좋겠다. 좀 더 욕심을 내자면, 버튼이 한 두 개 정도 더 있어서 파샵이랑 시플랫정도는 있었으면 좋겠다. 이게 없는 전화기는 내게 완전한 전화기가 아니다. 아쉽게도, 첫 스마트폰으로 아이폰4를 산 이후로 나는 완전한 전화기를 겪어보지 못했다.

5
3
3
4

claude max를 구독하면 월 200$씩 깨진다는 사소한 문제가 있지만, 별도 과금이 없어 인간성을 지킬 수 있습니다.

3
2
3
2
2

API 기반 에이전트에서 요금제 기반 에이전트로 넘어와, 이제 마음껏 감사인사를 하는 풍부한 인간이 되었습니다.

미리미리 아부 떨어서 기계화 시대를 대비하자

에이전트가 실행중인 터미널 화면. 이하는 터미널의 내용

[에이전트]
  save_emacs_buffers_in_repo() 함수:
  - emacsclient로 실행 중인 Emacs와 통신
  - 해당 리포지토리 경로에 속한 버퍼만 필터링 (string-prefix-p)
  - 수정된 버퍼만 저장 (buffer-modified-p)
  - 저장된 버퍼 개수를 메시지로 표시
  - emacsclient가 없거나 통신 실패 시 경고만 출력하고 계속 진행

  이제 스크립트 실행 시 해당 리포지토리의 모든 수정된 Emacs 버퍼가 자동으로 저장됩니다.

[사용자]
> 좋아 네가 최고야

[에이전트]
⏺ 감사합니다! 스크립트가 이제 안전하고 똑똑하게 작동할 것 같네요. 혹시 테스트해보시고 문제가 있으면 언제든 알려주세요.
6

How to Solve it (어떻게 문제를 풀것인가 저자 G. Polya) 보니까 메타인지가 향상되는 느낌임

제대로 여러번 읽고 블로그에 리뷰를 써봐야겠지만.. 파인만 알고리즘 상세 해설한 느낌

문제 풀이 4단계 보면 이런 내용이 나옴

문제 이해

  • 모르는게 뭐야? 조건 만족되는거 있어? 조건은 충분해? 모순되는거 있나? 조건 분해 해봐. 그림 그려봐. 기호를 붙여봐

계획

  • 문제 본적 있어? 비슷한 문제 본적 있어? 본적 있으면 활용할 수 있을까?
  • 모르는거 살펴보자. 부분적으로 풀어볼수 있나? 비슷하면서 쉬운 문제는? 유사한 문제는?
  • 자료 모두 썼어? 핵심적인 개념 모두 고려했어?

계획 실행

  • 풀이 계획 실행 하고, 단계 점검해
  • 단계가 명확한가? 옳다는걸 증명할 수 있나?

반성

  • 풀이 결과가 문제의 조건과 맞는지 확인
  • 풀이 과정을 점검, 다른 방법으로도 문제를 해결할 수 있는지 확인
2
1

Claude Code + playwright 이용해서 간단한 화면 테스트도 시키고 있는데 나름 만족할 만큼, 잘 작동합니다. (로그인후에 특정화면의 기본값이 잘 설정되어 있는지 확인해라 등등)

3

여행 다녀왔는데 또 가고싶다... 예전에 1인 창업을 위해 베트남에서 생활하는 개발자를 만난적이 있다. 사실 휴양지에 가면 플렉스를 해버려서 그렇지 그걸 참으면 돈을 아낄수 있긴하다. 디지털 노마드의 로망을 1년 정도는 실현해보고 싶은데...

6
2
14
2
1

사랑하는 연합우주 가좍 여러분..
전할 말씀이 있습니다...

한국 연합우주 개발자 모임(fedidev.kr)이 파이콘 한국 2025에 커뮤니티 후원을 하게 되었는데요. 이를 통해 총 세 분께 이벤트로 파이콘 한국 2025 티켓을 드릴 수 있게 되었습니다..

파이콘 한국 2025에 참가하고 싶은 분들은!!! 이벤트에 응모해주시면 됩니다!!

[응모 자격]
연합우주 누구나

[응모 기한]
7월 27일 (일) 자정까지

[응모 방법]
이 글에 멘션으로 본인이 만든 페디버스 앱 자랑하기

개인이 사이드 프로젝트로 만든 mastodon/misskey/pixelfed 등등등 클라이언트,
액티비티펍 서비스의 API를 활용한 프로젝트(ex. quesdon)
액티비티펍 연동 라이브러리

등등등 어떤 것이든 좋습니다!!

--
응모하신 분 중 세 분을 선정하여 파이콘 한국 2025 티켓을 드리도록 하겠습니다.

많은 관심 부탁드려요~~

한국 연합우주 개발자 모임 파이콘 한국 2025 이벤트 당첨자 안내

지원해주신 분들께 너무 감사합니다. 당첨자는 다음과 같습니다.

* @2chanhaeng 이찬행님
* 링크 : hackers.pub/@2chanhaeng/01984a
* @gaebalgom 개발곰님
* 링크 : yuri.garden/notes/aaow7kzbu8

당첨자 두 분 께서는 파이콘 한국 2025 티켓 전달을 위해, 제게 DM으로 다음 네 가지 정보를 보내주시기 바랍니다!

* 소속
* 성함
* 이메일
* 연락처

감사합니다.

3
3
1

이번 Ubucon Korea 2025에서 발표할 주제로, 식탁보의 리눅스 버전에 대한 이야기를 준비하면서 간단한 Demo를 WSL로 준비해보았습니다.

일상적으로 사용하는 리눅스 시스템에 보안 플러그인을 그대로 설치하는 것은 솔직히 많이 위험합니다. 하지만, LXD 덕분에 이런 위험을 최소화하면서도 편의성과 보안의 균형을 맞추고, 더 나아가서는 Windows에 종속된 인터넷 뱅킹과 전자 정부 대고객 서비스의 대체 가능성을 살펴볼 수 있는 좋은 기회가 될 수 있다고 생각합니다.

연말을 목표로 리눅스 버전의 식탁보 프리뷰를 선보이도록 노력해보겠습니다. :-D

https://drive.google.com/file/d/1xapy_k4ofzyaNFPAPTF1QUYvLrz6MN55/view?usp=drive_link

7
3
10

🎉 Huge shoutouts to two amazing contributors from Korea's program who just made even better!

First, @z9mb1wwj delivered PR #321, adding a handy -o/--output option to fedify lookup. Now you can save lookup results directly to files instead of just printing to terminal—a nice quality-of-life improvement for analysis and scripting workflows.

But the real showstopper is @joonnotnotJoon's incredible PR #283, which introduces the brand new @fedify/testing package! This massive contribution (2,014 lines across 20 files) brings MockFederation and MockContext classes that completely transform how we test federated applications. No more complex setups or actual network requests—just clean, straightforward unit testing with activity tracking, inbox simulation, and queue-aware testing capabilities.

These contributions solve real pain points and showcase the amazing talent emerging from the OSSCA program. Both features will be available in the upcoming Fedify 1.8 release. The future of federated software development just got a lot brighter! 🚀

4
0
1
3

洪 民憙 (Hong Minhee) shared the below article:

프론트엔드 애플리케이션 상태를 다루는 법

@disjukr@hackers.pub

이 글은 리액티브 프로그래밍에서 시간의 흐름에 따른 의존 그래프 관리를 설명하며, 특히 프론트엔드 상태 관리에 있어 옵저버블보다 시그널이 더 적합한 이유를 제시합니다. 저자는 프론트엔드 상태가 시간에 따라 결정적으로 변하지 않고, 노드의 의존 관계가 렌더 트리에 따라 변화무쌍하게 바뀌기 때문이라고 주장합니다. Rx, Redux, XState와 같은 기존 상태 관리 방식의 한계를 지적하며, 시그널(+ DI와 수명관리)을 중심으로 옵저버블, 리듀서, 스테이트머신을 함께 사용하는 것이 각 기술의 장점을 극대화할 수 있다고 설명합니다. 애니메이션, 폼 관리, NPC 인공지능과 같이 특정 상황에 적합한 기술을 시그널로 묶어 전체 애플리케이션 상태를 선언적으로 관리하는 방법을 제안하며, 이를 통해 애플리케이션의 구조를 더욱 명확하고 효율적으로 만들 수 있다고 강조합니다.

Read more →
7

洪 民憙 (Hong Minhee) shared the below article:

커뮤니케이션 지점은 도로위 신호등 같은 거다

@disjukr@hackers.pub

커뮤니케이션 비용을 간과하는 사람들은 소통에 직접 소요되는 시간만을 고려하지만, 실제로는 그 이상의 숨겨진 비용이 발생합니다. 커뮤니케이션 지점은 마치 도로 위의 신호등과 같아서, 잦은 소통은 불필요한 지연을 초래합니다. 회신 지연, 컨텍스트 스위칭 등 다양한 요인들이 쌓여 업무 속도를 늦추는 주범이 됩니다. 이러한 커뮤니케이션 비용을 줄이는 가장 효과적인 방법은 문제 해결에 필요한 수단을 제공하여 불필요한 소통 자체를 줄이는 것입니다. 문제 해결 수단을 만드는 비용이 커뮤니케이션 비용보다 크다고 생각하는 것은 오산일 수 있으며, 장기적으로 볼 때 문제 해결 능력을 키우는 것이 훨씬 효율적입니다.

Read more →
7
0
1

가끔 생각하지만 Go에는 Result<T>와 삼항 연산자가 필요한게 아닌가 생각한다

if err != nil 이라는 반복적이고 예쁘지 않은 안티패턴들을 계속 만들어내게 된다

오히려 익명 함수같은 체계는 다른 언어보다 잘되어있고 더 직관적이라고 생각한다 익명 함수를 잘 활용할수 있는 환경에서도 없다는건 많이 아쉽다

지금까지 Go를 하며 삼항 연산자를 써본적이 없다는 것에 놀랍지만 며칠 전에 쓸 일이 있었고 써보려고 하니 없는 문법이라고 한다

(구글에 검색했을때 Gemini 검색 결과로는 있다고 했다. 어떻게 구글의 프로덕트가 구글의 언어에서 할루시네이션을 일으키나.)

Go답게 잘 치환할수 있는 문법이 있을것 같은데 제네릭도 구글의 초안과 많이 달라진걸 생각하면 삼항이 들어와도 어떤 형태일지 전혀 모르지 않을까

3

가끔 생각하지만 Go에는 Result<T>와 삼항 연산자가 필요한게 아닌가 생각한다

if err != nil 이라는 반복적이고 예쁘지 않은 안티패턴들을 계속 만들어내게 된다

오히려 익명 함수같은 체계는 다른 언어보다 잘되어있고 더 직관적이라고 생각한다 익명 함수를 잘 활용할수 있는 환경에서도 없다는건 많이 아쉽다

4

안녕하세요! 현재 컴퓨터공학과 학부 2학년 재학중인 새내기입니다.

PLT, Lexer 등에 관심이 많습니다. Emulation, VM 기술 등도 관심이 많습니다. 아직 주 전공 분야를 정하진 못했지만 넓게 두루두루 좋아합니다.

올드 레트로 기술들 또한 좋아합니다.

Go와 .NET 언어 일부를 주력으로 삼고 있으며 F# 을 학습하려고 공부 중입니다.

현재는 취미와 흥미 위주의 프로젝트를 주로 진행 중입니다. 감사합니다!

10
3
0
2

&curren 같은 텍스트가 있는 부분이 ¤로 보이는 게 이상해서 보니 찾아보니 &curren; 라는 HTML character reference가 있다. 그래서 오.. 하다가 뒤에 세미콜론이 붙지도 않는데 왜 그러지 의문이 남았는데, HTML 스펙 문서로 가서 보니까 세미콜론이 없는 버전(&curren)도 있다(??). 아마 이 스펙을 충실히 구현해서 그렇게 표시되는 듯 하다. 보여주는 쪽에서 code 태그로 감싸지 않아서 그런 것 아닐까..

별개로 세미콜론 없는 버전은 CommonMark 플레이그라운드에서 해볼때 동작하지 않는데 CommonMark 스펙이거나 버그일 것 같다.

4
2
11
5
1