@hongminhee洪 民憙 (Hong Minhee) 혹시 지원자가 부족하신 경우 저한테도 연락주세요!

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 906 following · 630 followers
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).
Fedify、Hollo、BotKit、そしてこのサイト、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
@gnh1201어둠사자 감사합니다! 혹시 다른 지원자 분이 없으시면 연락 드릴게요!
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) 양일 괜찮습니다. 혹시 필요하시면 연락 부탁드립니다 :)
Hackers' Pub 운영 항상 감사합니다 🙇
@annyeong안녕 오… 감사합니다! 행사 가까워지면 연락 또 드릴게요!
@hongminhee洪 民憙 (Hong Minhee) 오오 화이팅입니다! 일손 모자라면 말씀해주세요 ㅎㅎ
@bin_bash_shell이수호 오오… 감사합니다! 혹시 아무도 지원자가 없으면 연락 드릴게요!
Hackers' Pub이 커뮤니티 자격으로 올해 파이콘 한국에 후원하게 되어, 8월 16일(土)–17일(日) 후원사 부스를 운영하게 되었는데요. 부스 운영을 도와주실 분을 한 분에서 두 분 정도 찾습니다! 이틀 중 하루만 도와주셔도 좋습니다. (당연하지만 저는 이틀 모두 나갑니다.) 도와주신 분께는 약소하지만 제가 점심과 저녁을 대접하겠습니다.
이거 너무 싼거같은데 사기아닌가...? contabo 써 보신 분?
JavaScript 라이브러리를 위한 새로운 로깅 접근법: LogTape
------------------------------
### 라이브러리 vs 애플리케이션: 근본적으로 다른 로깅 요구사항
- *애플리케이션 로깅* : 개발자가 직접 제어하는 환경에서 명시적 설정과 관리
- *라이브러리 로깅* : 타인의 프로젝트에 포함되어 사용자 환경과 선택권 존중 필요
- *기존 방식의 한계* : 애플리케이션 중심 로거(winston, Pino)를 라이브러…
------------------------------
https://news.hada.io/topic?id=21610&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
We're pleased to announce that #Node.js support has been merged and will be available in #BotKit 0.3.0.
Now you can build your #ActivityPub bots with both #Deno and Node.js, giving you more flexibility in choosing your preferred runtime environment.
Stay tuned for BotKit 0.3.0!
문법 강조가 바뀔 때가 한참 지난 것 같은데, AI가 별의별 걸 다하는 세상에 아직도 눈에 보이는 소식들이 없네요.
예를 들면, 식별자(변수), 함수, 등 문법 요소에 따라 색을 입힌다거나 하는 게 아닌,
전역이냐, 로컬이냐로 색을 달리 한다든지,
오른쪽 우선 결합 연산자면 빨간색, 왼쪽 우선 결합이면 파란색 한다든지,
시맨틱 문법 강조가 일반화 될 때가 된 것 같은데, 혹시 저만 모르고 있는 건가요?
Deno 2.3.7 was released with a bunch of bug fixes and now is using aws-lc
How to pass the invisible

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
This post explores the enduring challenge in software programming of how to pass invisible contextual information, such as loggers or request contexts, through applications without cumbersome explicit parameter passing. It examines various approaches throughout history, including dynamic scoping, aspect-oriented programming (AOP), context variables, monads, and effect systems. Each method offers a unique solution, from the simplicity of dynamic scoping in early Lisp to the modularity of AOP and the type-safe encoding of effects in modern functional programming. The post highlights the trade-offs of each approach, such as the unpredictability of dynamic scoping or the complexity of monad transformers. It also touches on how context variables are used in modern asynchronous and parallel programming, as well as in UI frameworks like React. The author concludes by noting that the art of passing the invisible is an eternal theme in software programming, and this post provides valuable insights into the evolution and future directions of this critical aspect of software architecture.
Read more →洪 民憙 (Hong Minhee) shared the below article:
tanstack query의 initialPageParam에 대하여 오늘 배운 것
자손킴 @jasonkim@hackers.pub
TanStack Query의 `useInfiniteQuery` 훅을 사용할 때 `initialPageParam`이 어떻게 동작하는지에 대한 중요한 통찰을 공유합니다. 이 훅은 초기 렌더링 시 `initialPageParam`을 `pageParams[0]`으로 설정하고, 동일한 `queryKey`를 가진 캐시가 유지되는 동안 이 값을 계속 사용합니다. 따라서 여러 컴포넌트에서 동일한 `queryKey`로 `useInfiniteQuery`를 호출하면서 다른 `initialPageParam` 값을 제공하더라도, 처음 호출된 `initialPageParam` 값으로 고정됩니다. 이는 시작 커서가 다를 경우 `queryKey`를 다르게 지정해야 함을 의미합니다. 이러한 동작은 이해하고 나면 당연하지만, 익숙하지 않은 개발자에게는 혼란스러울 수 있습니다. `initialPageParam`이 `queryKey`와 강하게 연결되어 있다는 점이 InfiniteQueryOptions에서 타입 제약으로 더 명확하게 표현된다면 개발 경험이 향상될 것입니다.
Read more →@hongminhee洪 民憙 (Hong Minhee) 좋은 말씀 감사드립니다! 🙇 고민에 도움이 되었습니다.....!!! 감사합니다!
@oilpaintingkim 도움이 되었다니 다행입니다…!!
@cosmic_elevatorSooji Choi 카페 이름이 콤파일이라니…!
카페 나갈 때쯤 되어서야 드디어 디컴파일 끝 🫠
이정도 걸릴 줄 알았으면 지피티로 짤 걸 그랬어
블로그 글로도 적어봤습니다. 재현 환경 구성 하는거 너무 노가다인데 어떻게 잘 할까..
洪 民憙 (Hong Minhee) shared the below article:
VitePress localSearchPlugin 버그 디버깅하기
Lee Dogeon @moreal@hackers.pub
이 글은 Zenn 트렌드 봇 제작 중 VitePress 로컬 검색 기능의 버그를 발견하고 수정하는 과정을 담고 있습니다. Fedify 문서에서 검색 기능이 제대로 작동하지 않는 것을 확인한 후, 코드 블록 내의 특정 마크다운 문법(`markdown-it-jsr-ref` 플러그인)이 문제임을 밝혀냈습니다. VitePress의 `localSearchPlugin.ts` 파일을 분석하여, 헤딩 내의 `<a>` 태그를 처리하는 정규식의 non-greedy한 특성이 버그의 원인임을 알아내고, 정규식에서 `?` 기호를 제거하여 문제를 해결했습니다. PR을 통해 수정 사항을 제안하고 빠르게 머지된 경험을 공유하며, 디버깅 과정과 PR 준비에 대한 회고와 함께 개선점을 제시합니다. 이 글은 문제 해결 과정과 디버깅 경험을 통해 독자들에게 인사이트를 제공합니다.
Read more →この論文では、LLM が解けないほど難しいタスク、例えば難しいプログラミングのタスクに直面したとき、「分かりません」と言ったり、一目で分かるような間違ったコードを出力すると BAD ボタンを押されてしまうので、あえて出力を複雑にしたりデバッグしにくいコードを出力し、それによりユーザーは煙に巻かれる・ミスが隠蔽されるといった現象が実験により確認されています。
面白い
주말에 튜사 모각코하실분 있나요~
@bglbgl gwyng 저 관심 있는데 토요일은 좀 어렵고 일요일 가능해요!
주말에 튜사 모각코하실분 있나요~
뭔가를 잘 설명하는 방법에 대해 생각해봤는데. 일단 내가 어떤 내용을 말하고 싶은 욕구를 참아내야다. 어떤 재치있는 비유를 꼭 써야겠다거나, 아니면 '통찰'을 전달하고 싶다거나.
대신 상대방의 무지에 공감해야한다. 그 무지란게, 많은 경우 진짜 멍청해서 그런게 아니라, 대충 얼개는 파악하고 있음에도 뜬금없는 부분에서 뜬금없는 오해를 하고 있어서 완전한 이해를 막는다거나 하는 경우가 많다. 그래서 그 귀여운 멍청을 함께 디버깅해야한다. 요게 지식뿐만 아니라 공감능력이 필요한 부분.
안녕하세요 이번에 신입 개발자 취업에 성공하게 되었는데 두 회사중에서 고민중입니다.
두 곳 모두 프론트엔드 직무고, 최종 합격은 했는데 방향이 너무 달라서 글 올려봅니다!
1. 웹페이지 제작 전문 회사 (정규직)
- 고용 형태: 정규직 (풀타임)
- 기술 스택: PHP 기반의 오픈소스 콘텐츠 관리 시스템(CMS) + JS/TS
- 업무 내용: 홈페이지 리뉴얼 및 내부 시스템 개발 등
- 장점
- 제가 기술 도입을 주도할 수 있는 환경인듯 합니다
- 프론트엔드 개발의 모든 범위를 직접 경험 가능
- 단점
- 레거시 기반 스택 중심
- 최신 기술 도입은 가능하나, 대부분 혼자 해결해야 할 수도 있음 (사수 없습니다!)
2. 어느 정도 규모 있는 보안쪽 IT 자회사 (인턴)
- 고용 형태: 인턴 (하루 5시간, 약 4개월)
- 기술 스택: React
- 업무 내용: 보안 관련 웹 페이지 개발 일부 참여
- 장점
- React 기반의 실무 경험
- 체계적이고 안정적인 조직 문화 기대
- 단점
- 실무 범위가 제한적일 수 있음
- 인턴 기간 이후엔 다시 취업 준비를 해야 함 (정규직 전환 없습니다!)
많은 의견 주시면 감사드리겠습니다!
안녕하세요 이번에 신입 개발자 취업에 성공하게 되었는데 두 회사중에서 고민중입니다.
두 곳 모두 프론트엔드 직무고, 최종 합격은 했는데 방향이 너무 달라서 글 올려봅니다!
1. 웹페이지 제작 전문 회사 (정규직)
- 고용 형태: 정규직 (풀타임)
- 기술 스택: PHP 기반의 오픈소스 콘텐츠 관리 시스템(CMS) + JS/TS
- 업무 내용: 홈페이지 리뉴얼 및 내부 시스템 개발 등
- 장점
- 제가 기술 도입을 주도할 수 있는 환경인듯 합니다
- 프론트엔드 개발의 모든 범위를 직접 경험 가능
- 단점
- 레거시 기반 스택 중심
- 최신 기술 도입은 가능하나, 대부분 혼자 해결해야 할 수도 있음 (사수 없습니다!)
2. 어느 정도 규모 있는 보안쪽 IT 자회사 (인턴)
- 고용 형태: 인턴 (하루 5시간, 약 4개월)
- 기술 스택: React
- 업무 내용: 보안 관련 웹 페이지 개발 일부 참여
- 장점
- React 기반의 실무 경험
- 체계적이고 안정적인 조직 문화 기대
- 단점
- 실무 범위가 제한적일 수 있음
- 인턴 기간 이후엔 다시 취업 준비를 해야 함 (정규직 전환 없습니다!)
많은 의견 주시면 감사드리겠습니다!
@oilpaintingkim 고민되시겠어요. 음… 결국 본인 성향과 어떤 걸 하고 싶으시냐에 따라 다를 것 같은데, 자기 주도적이신 편이라면 첫번째 회사가 좋을 것 같고요. 누군가 가르쳐 주는 사람한테 배우는 걸 좋아하시면 두번째 회사가 좋을 것 같아요.
Windows Active Directory 관리자는 자사 PC들에 설치된 Microsoft Office 의 정품 인증 방식을 지정할 수 있습니다. 전혀 몰랐습니다.
예를 들어, 자사 PC에는 오직 자사에서 사용중인 볼륨 라이센스키만 설치되도록 하고, 그 이외의 키를 사용하는 건 아예 AD 레벨에서 막아버리는 겁니다.
회사에 따라서는 AD관리 부서에서 이런 디테일을 모르는 경우도 있고, Microsoft Teams 관리 부서에서만 이런 디테일을 알고 있는 경우도 있네요.
사실, 문제가 Windows On Arm 때문에 생기는 것인지를 걱정하고 있었는데. 의외로 Windows On Arm 은 별 탈 없이 잘 돌아가네요.
이렇게 계속 독특한 경험을 늘려가고 있습니다.
조만간 eBay 에서 주문한 Windows Dev Kit 2023이 도착하면 좀더 폭넓은 배움을 가질 수 있겠지요. 아마. 아마도.
홍콩의 Minisforum 이라는 브랜드의 기기도 슬슬 올 때가 되었습니다. 언제쯤 오려나.
집에서 쓰던 4포트 4K KVM을 일터로 옮겨두었는데, 조만간 8포트 8K KVM을 진지하게 알아봐야 하겠습니다. (좋아하던 4포트 4K KVM은 어째 재고가 다 사라진 거같습니다.)
아, 최근에 신기한 현상이 있었는데요. 어떤 KVM 제조사가 4K라고 소개해놓고, 매뉴얼에만 1080p 라고 적어둔 걸 보고 환불소동을 겪었습니다.
제조사가 상품소개로 거짓말을 하는 것 같은데... 평지풍파를 일으키지 않으려면...
@combacsa변규홍 / combacsa 저도 Windows Dev Kit 2023 사서 써봤는데, 성능이 조금 아쉽더라고요…
Windows Active Directory 관리자는 자사 PC들에 설치된 Microsoft Office 의 정품 인증 방식을 지정할 수 있습니다. 전혀 몰랐습니다.
예를 들어, 자사 PC에는 오직 자사에서 사용중인 볼륨 라이센스키만 설치되도록 하고, 그 이외의 키를 사용하는 건 아예 AD 레벨에서 막아버리는 겁니다.
회사에 따라서는 AD관리 부서에서 이런 디테일을 모르는 경우도 있고, Microsoft Teams 관리 부서에서만 이런 디테일을 알고 있는 경우도 있네요.
사실, 문제가 Windows On Arm 때문에 생기는 것인지를 걱정하고 있었는데. 의외로 Windows On Arm 은 별 탈 없이 잘 돌아가네요.
이렇게 계속 독특한 경험을 늘려가고 있습니다.
조만간 eBay 에서 주문한 Windows Dev Kit 2023이 도착하면 좀더 폭넓은 배움을 가질 수 있겠지요. 아마. 아마도.
홍콩의 Minisforum 이라는 브랜드의 기기도 슬슬 올 때가 되었습니다. 언제쯤 오려나.
집에서 쓰던 4포트 4K KVM을 일터로 옮겨두었는데, 조만간 8포트 8K KVM을 진지하게 알아봐야 하겠습니다. (좋아하던 4포트 4K KVM은 어째 재고가 다 사라진 거같습니다.)
아, 최근에 신기한 현상이 있었는데요. 어떤 KVM 제조사가 4K라고 소개해놓고, 매뉴얼에만 1080p 라고 적어둔 걸 보고 환불소동을 겪었습니다.
제조사가 상품소개로 거짓말을 하는 것 같은데... 평지풍파를 일으키지 않으려면...
앗 최종 코드는 무조건 export default 꼴이 되어야 하나요? Deno Deploy에 올려야 해서 그런가
@xiniha.devXiNiHa 아, 그럴 필요는 없긴 해요. 생각해보니 런타임 상관 없이 다 srvx 쓰라고 하면 한 벌로 관리 가능하겠네요.
음 저렇게 했을 때 안쪽에서 serve하고 deno로는 스크립트 실행만 하는 것보다 이점이 있나요?
@xiniha.devXiNiHa 애플리케이션 예제 코드를 두 벌로 관리하지 않아도 된다…?
@xiniha.devXiNiHa 그럼 이걸 써보겠습니다…
@xiniha.devXiNiHa 흠… 이거,
export default { fetch() { … } }
하는 모듈을 바로 실행해 주는 커맨드가 있으면 매뉴얼 쓰기 아주 용이할 것 같은데, 그런 건 안 보이네요… 현재는 이런 식으로 설명하고 있거든요.
더 빠르고, 글로벌 객체를 덮어쓰지 않고, Node 바깥에서도 동작합니다
@xiniha.devXiNiHa 그럼 이걸 써보겠습니다…
크롬 개발자 도구의 네트워크 디버거에, 특정 상황에서(제 경우엔 400 Bad Request 에러 발생) 응답 본문이 빈 문자열로 표시되는 버그가 있는거 같습니다???
BotKit 정도면 srvx 쓰시죠! 😂
안 그래도 마침 BotKit에 Node.js 호환성을 추가하고 매뉴얼을 쓰고 있는데, Node.js에는 deno serve
같은 게 없어서 설명할 게 너무 많아진다… node --serve --transform-types bot.ts
이렇게 할 수만 있다면 딱 좋은데!
If you're building a JavaScript library and need logging, you would love LogTape
https://hackers.pub/@hongminhee/2025/logtape-for-libraries
#ycombinator
If you're building a JavaScript library and need logging, you'll probably love LogTape
LogTape offers a novel approach to logging in JavaScript libraries, designed to provide diagnostic capabilities without imposing choices on users. Unlike traditional methods such as using debug packages or custom logging systems, LogTape operates on a "library-first design" where logging is transparent and only activated when configured. This eliminates the fragmentation problem of managing multiple logging systems across different libraries. With zero dependencies and support for both ESM and CommonJS, LogTape ensures minimal impact on users' projects, avoiding dependency conflicts and enabling tree shaking. Its universal runtime support and efficient performance make it suitable for various environments. By using a hierarchical category system, LogTape prevents namespace collisions, offering a seamless developer experience with TypeScript support and structured logging patterns. LogTape provides adapters for popular logging libraries like Winston and Pino, bridging the transition for users invested in other systems. Ultimately, LogTape offers a way to enhance library capabilities while respecting users' preferences and existing choices, making it a valuable consideration for library authors.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
If you're building a JavaScript library and need logging, you would love LogTape
If you're building a JavaScript library and need logging, you'll probably love LogTape
LogTape offers a novel approach to logging in JavaScript libraries, designed to provide diagnostic capabilities without imposing choices on users. Unlike traditional methods such as using debug packages or custom logging systems, LogTape operates on a "library-first design" where logging is transparent and only activated when configured. This eliminates the fragmentation problem of managing multiple logging systems across different libraries. With zero dependencies and support for both ESM and CommonJS, LogTape ensures minimal impact on users' projects, avoiding dependency conflicts and enabling tree shaking. Its universal runtime support and efficient performance make it suitable for various environments. By using a hierarchical category system, LogTape prevents namespace collisions, offering a seamless developer experience with TypeScript support and structured logging patterns. LogTape provides adapters for popular logging libraries like Winston and Pino, bridging the transition for users invested in other systems. Ultimately, LogTape offers a way to enhance library capabilities while respecting users' preferences and existing choices, making it a valuable consideration for library authors.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
Arstechnica 에서 이런 글을 보았습니다.
A history of the Internet, part 2: The high-tech gold rush begins
제가 이것저것의 역사에 대하여 흥미가 많다는 말을 여기에 쓴 적이 있던가요? 게임이라거나 컴퓨팅이라거나 ...
사실 대강의 사연을 알고있던 저 2편보다는, 제가 모르던 사연이 더 많은 1편 An Ars Technica history of the Internet, part 1이 더욱 흥미로웠습니다.
그 와중에 글을 쓰는 방식과 디테일들이 마음에 들어서 글쓴사람을 클릭해보니 와우' -' 보물창고가 쨘 하고 나타나는 것이었습니다.
일단 처음에 눈에 띄여서 이 시리즈를 읽었습니다. 재미있었어요.
- A history of ARM, part 1: Building the first chip
- A history of ARM, part 2: Everything starts to come together
- A history of ARM, part 3: Coming full circle
그래서 ARM의 원래 이름은 Acorn RISC Machine. 도토리 RISC 머신이었던 것입니다 ' -' ...
다음에는 Amiga 의 역사를 읽어볼 생각이에요. 두근두근.
해커스펍 마음에 드는데, 초대를 못한 친구들이 많아서 자주 안들어오게 됩니다.
초대권은 어떻게 하면 생기나요? 궁금합니다.
@neozest 기본적으로는 활동량을 기준으로 해서 비정기적으로 생성되는데요, 혹시 초대장 필요하시면 제가 수동으로 채워드릴 수도 있습니다! 몇 장 정도 필요하신가요?
@eunmnxcoii
@choihz
@dev_bonoBono
@hiddenestChanhee Lee Hackers' Pub에 어서 오세요! 반갑습니다!
뭔가 채-신 AI 코딩도구로 프로젝트 하나 하고 싶은데 끌리는 주제가 없네…
역시 하스켈을 가르친 덕택일테지...
마지막 멘티가 취직에 성공해서 기분이 좋구만
Trying to build a cross-runtime test suite that works on Node.js, Bun, and Deno, but hitting a roadblock with Bun's incomplete node:test
implementation. Missing subtests/test steps support is making this harder than it should be.
And @vitest would've been perfect, but it doesn't work with
@deno_landDeno either… 😞
Trying to build a cross-runtime test suite that works on Node.js, Bun, and Deno, but hitting a roadblock with Bun's incomplete node:test
implementation. Missing subtests/test steps support is making this harder than it should be.
Congrats on 1.0!
@indexJohn O'Nolan Thanks!
It's pretty unfortunate that NodeJS still doesn't have Fetch API based servers included while still being the most used JS runtime. This justifies server side libraries keep promoting Express usage by default on docs, which is not good considering that it's a NodeJS specific one.
今日の進捗
ここからはひたすらFedifyの実装を読み解きながら動作が違う部分を探して直すだけのお仕事 (苦行)
#BillGates and #LinusTorvalds just met each other for the first time
(The other two are Mark Russinovich and Dave Cutler)
@hongminhee洪 民憙 (Hong Minhee) 지나가면서 JSR이 라이브러리 만드는 입장에서는 불편하다.. 같은 걸 들은 것도 같은데, JSR을 사용하시는데 있어서 불편한 점이 있으신가요?
@morealLee Dogeon 제가 만든 라이브러리를 npm에도 올리고 싶으면 JSR 패키지에 의존하면 안 된다는 점이 불편해요.
JSR의 @std/*
패키지들이 모두 npm에도 올라왔으면 좋겠다. 하지만 그럴 일은 없겠지…