NextJS 처음 써보는데, 챗봇 UI처럼 인터액티브한 웹앱을 만들때 도움이 되는 부분이 뭔지를 모르겠다. 처음엔 SPA + API 서버 만드는것과 비교해, 자명한 데이터 바인딩 보일러플레이트를 줄여줄거라 생각했다. 근데, 순수 SSR로 처리할 수 없는, 클라에서 상태를 업데이트하는 약간만 복잡한 플로우에서도 전혀 도움이 안된다.
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 1032 following · 730 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
일하다 막힐 때 위키피디아, 한국민족문화대백과사전, man 페이지 설명 읽는게 머리 식히는데 좋은 것 같음
정보가 부족한 에러 메시지로 인해서 약 하루를 버렸다. 정보가 부족한 것도 있지만, 믿음(?)이 부족해서 멀쩡한 곳만 잔뜩 쳐다보고 있었다.
드디어 Claude Code에 LSP 지원이…!!
Claude Code에 네이티브 LSP 지원 기능 추가
------------------------------
- 터미널에서 실행되는 *AI 기반 코딩 도구* 인 Claude Code 가 최신버전에서 *LSP (Language Server Protocol) 도구* 를 추가
- 이를 통해 *정의로 이동(go-to-definition)* , *참조 찾기(find references)* , *호버 시 문서 표시* 같은 *IDE 수준의 코드 인텔리전스 기능* 제공
- /terminal-setup 명…
------------------------------
https://news.hada.io/topic?id=25269&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
NextJS + Vercel AI SDK로 챗봇 UI 만들다가 수명이 줄겠네..
State of the Art가 별건가… 서령은 예술의 경지가 맞다. 입이 귀에 걸린 채로 먹고 온 것 같다. 잘 먹었습니다!!
오픈소스 프로젝트의 커뮤니티를 어떻게 운영해야 지속적으로 사람들이 참여하게 할 수 있을까..
@bglbgl gwyng Nix의 대안으로 Guix도 종종 거론되던데, 혹시 살펴보신 적 있으실까요?
@hongminhee洪 民憙 (Hong Minhee) 비슷한 접근이란 것만 알고 있습니다. 남은 문제를 개선하는데 어느쪽이 더 좋은 설계를 갖고있는지는 모르겠네요. 근데 Nix가 일종의 기본 레지스트리에 해당하는 nixpkgs의 규모가 더 클거 같은데, 그러면 당장 쓰기엔 수고가 덜할거 같네요.
코드 수정 제안 반영은 해당 줄을 대치하는 방식으로 처리해도 충분했는데 이제 그래프 매칭 문제로 바꿔야겠다
그동안 Nix 쓰면서 고통도 많이 받았는데 그래도 주변에 꾸준히 Nix를 권한다. Nix가 '빌드'라는 소프트웨어 개발의 아주 일반적인 문제를 한방에 푸는 방법론이기 때문이다. 물론 아직 몇가지 문제가 좀 있지만(잘 안된다, 불편하다 식의 단순한 문제는 아니다), 나 자신도 그 해결책을 위한 몇가지 아이디어를 가지고 있고, 머지않은 미래에 풀릴거라 생각한다.
UNIX 철학이 작은 기능을 확실하게 수행하는 프로그램들을 만들어 조합하자인데, ls, cat, grep 등이 그 예시다. 내가 볼땐 Nix도 생각도 거기에 해당된다. Nix도 좋은 의미로 의외로 꽤 작다.
@bglbgl gwyng Nix의 대안으로 Guix도 종종 거론되던데, 혹시 살펴보신 적 있으실까요?
그동안 Nix 쓰면서 고통도 많이 받았는데 그래도 주변에 꾸준히 Nix를 권한다. Nix가 '빌드'라는 소프트웨어 개발의 아주 일반적인 문제를 한방에 푸는 방법론이기 때문이다. 물론 아직 몇가지 문제가 좀 있지만(잘 안된다, 불편하다 식의 단순한 문제는 아니다), 나 자신도 그 해결책을 위한 몇가지 아이디어를 가지고 있고, 머지않은 미래에 풀릴거라 생각한다.
UNIX 철학이 작은 기능을 확실하게 수행하는 프로그램들을 만들어 조합하자인데, ls, cat, grep 등이 그 예시다. 내가 볼땐 Nix도 생각도 거기에 해당된다. Nix도 좋은 의미로 의외로 꽤 작다.
어제 송년회에서 오라클 이야기가 너와서 나도 써보려고 하는데... n8n이라도 올려야겠다.
Optique 문서를 보다가 argument ordering 파트에서 프로퍼티가 나타난(? appear) 순서대로 파서가 동작(? consume)한다고 되어 있어서 Object 타입인데 이게 작성한 순서대로 Object.entries() 같은 곳에서 순회되기를 기대할 수 있나 의문이 들었다(Object가 Map같은 거라고 생각했어서).
아래와 같이 타고 가면:
20.1.2.5 Object.entries ( O )(User call)7.3.23 EnumerableOwnProperties ( O, kind )(called by2. Let entryList be ? EnumerableOwnProperties(obj, key+value).10.1.11 [[OwnPropertyKeys]] ( )(called by1. Let ownKeys be ? O.[[OwnPropertyKeys]]().)10.1.11.1 OrdinaryOwnPropertyKeys ( O )(called by1. Return OrdinaryOwnPropertyKeys(O).)
아래와 같은 대목을 만나는데:
- Let keys be a new empty List.
- For each own property key P of O such that P is an array index, in ascending numeric index order, do
- Append P to keys.
- For each own property key P of O such that P is a String and P is not an array index, in ascending chronological order of property creation, do
- Append P to keys.
- For each own property key P of O such that P is a Symbol, in ascending chronological order of property creation, do
- Append P to keys.
- Return keys.
만약 key가 array index가 아닌 문자열 혹은 Symbol이라면 프로퍼티 생성 발생의 오름차순 순서(? ascending chronological order of property creation)대로 순회(?)해야한다고 적혀있다.
아마.. 잘 못 찾아서 못 본 걸수도 있지만 chronological이나 creation 같이 검색했을때 스펙에서 이를 다루는 방법을 정의하지는 않는 것 같았다. 예를 들어, PropertyDescriptor이 auto increment 되는 고유 ID를 갖고 있어야 하고 이를 통해 정렬해야한다, 거나?
실제 구현을 보고 싶어서 GitHub에 있는 V8 미러로 가서 보니 key들을 OrderedHashSet으로 갖고 있는 듯 했다. 생각해보니 그러면 되네, 싶어서 더는 안 찾아봤다.
암튼 Optique 문서대로 생성 순서대로 동작할 것 같다!
가족들이 밋업 굿즈를 탐내는 건 처음이다. 다음번엔 앵그리 버전 한 표!
洪 民憙 (Hong Minhee) shared the below article:
미소녀 보려고 미연시를 켰더니 게임 콘솔이 해킹당했어요
Helloyunho @helloyunho@hackers.pub
Ren'Py 기반 PlayStation(플레이스테이션) 게임에서 발생하는 취약점을 이용한 익스플로잇 도구인 yarpe(Yet Another Ren'Py PlayStation Exploit)의 개발 과정과 기술적 원리를 다룹니다. 이 프로젝트는 Python(파이썬)의 Pickle(피클) 라이브러리가 역직렬화 과정에서 임의의 코드를 실행할 수 있다는 보안 결함을 활용하며, 세이브 파일 내부의 데이터를 조작하여 게임 엔진의 제어권을 획득합니다. 저자는 메모리 권한 제한을 우회하기 위해 ROP(Return Oriented Programming) 기법과 unsafe-python을 도입하여 직접적인 메모리 접근 및 스택 포인터 조작을 구현했습니다. 특히 Xbox(엑스박스)에서의 성공적인 초기 실험을 바탕으로 PlayStation 5의 실행 전용 메모리(XOM)와 같은 까다로운 보안 제약 사항을 극복하고 최종적으로 코드를 실행하는 과정을 상세히 설명합니다. 이 글은 복잡한 하드웨어 보안 환경 속에서도 논리적인 분석과 창의적인 접근을 통해 시스템의 한계를 시험하는 과정을 보여주며, 임베디드 보안과 리버스 엔지니어링에 관심 있는 독자들에게 깊이 있는 기술적 통찰을 제공합니다.
Read more →tauri로 패스워드 툴 만드는 이유, 레거시 프로덕트의 지속 여부를 결정할 때 llm을 어찌 썼는지, claude skill 활용 방법, 오라클 클라우드 쓰면 왜 좋은가, 개발자가 개발을 좋아하냐, 좋아 해야만 하냐, 개발자의 ethic 등... 2025년 라스트 개발 밋업이 알차네요.
LLM 도움이면 못할 것도 없을 듯 하여 블로그를 직접 만들고 싶은데, 스프링부트 + 그냥JS로 만들어도 괜찮을지 모르겠습니다. (사실 아는 게 그것 뿐입니다..) 혹시 조금 더 편리하고 좋은 스택이 있을까요?
지금 만드는 걸 좀 어떻게든 해야 보이든 할 텐데. UK Gov의 컴포넌트를 굉장히 참고하고 있습니다. 'looking good!'을 신경쓰다보면 쉬운 길은 많죠. 장애인 관련 홈페이지를 만들고 있습니다.
어제 해커스펍 송년회를 잘 다녀왔습니다. 이동하는 버스 안에서 제 해커스펍 주소를 QR 코드로 열심히 만들었는데, 막상 공유할 용기는 없어서 못 했네요 ㅋㅋ
전날까지도 갈까 말까 고민을 많이 했었는데, 부담감을 이기고 다녀오길 정말 잘했다는 생각이 들었습니다. 라이트닝 토크도 하나같이 유익했어요.
저는 클로드 코드는 아직 써보지 않았는데 (토큰이 살살 녹는다는 얘기를 들어서요 ㅋ ), 이야기를 듣다 보니 요즘 대세는 확실히 클로드 코드인가 싶더라고요. 이제 써볼까 생각만 하고 있었는데, 어제 라이트닝 토크 발표를 듣고 나니 “바로 시작해봐야겠다”는 생각이 들었습니다. 🐱💧
집에서 멀어서 좀 늦게 도착. 아무튼 왔다.
역시 전반적으로 클로드를 많이들 쓰시는구나- 하는 인상
해커스펍 송년회 인기 폭발이라 참여를 못하고 튕겨져 나왔어요 ㅎㅎ. 서로 말귀!가 통하는 사람들끼리 네트워킹 시간을 가질 수 있는 귀한 기회였습니다.
해커스펍 송년회를 다녀왔습니다. 발표를 라이트하게 가져간다 해서 라이트하게 질문 편하게 했는데, 질문 총량이 넘어가진 않았나 걱정될 정도로 많이 한 것같아 살짝 불안하지만, 재밌었습니다.
이미지를 리사이징, 다른 포맷으로 변환하는데, imagemagick은 올바르게 이미지를 처리하는데, imgage-rs, mozjpeg는 알 수 없는 점이 잔뜩 생긴다. 일단 되는 것 찾았으니...
https://github.com/makachanm/knife
개인적으로 진행하는 풀스택 프로젝트로써 단순한 싱글-유저 액티비티펍 블로그 플랫폼인 Knife를 제작중이다. 직접 이 플랫폼으로 글을 가끔 끼적이면서 조금씩 개선시킬 생각이다.
제 지인 분이 GitHub 에서 인종차별적 코멘트를 받으셨습니다. GitHub 계정이 있으시면 신고 부탁드립니다. 영어가 어려우시더라도 LLM으로 신고글 써달라고 하면 잘 써줍니다. 신고는 단 시간 내에 많이 찍혀야 실제 보고로 올라가기 때문에 가능하신 분들은 꼭 신고 부탁드립니다.
오늘 해커스펍 송년회에서 오라클 사용해도 될까? 주제로 발표한 로빈입니다! 행사 정말 재밌었고요 오라클 쓰는 이야기 GraphQL 이야기 플랫폼 비즈니스의 방향성 이야기 등등 마음껏 해주세요~
오늘 Hackers' Public @ Seoul 송년회에서 이야기한 "코딩 에이전트와 함께 이세계 던전 탐험하기: 새로운 환경의 코드 베이스를 빠르게 분석하는 방법"의 발표 슬라이드는 [다음 링크]에서 다운로드 받으실 수 있습니다! :)
RISC-V Mainboard For the Framework Laptop 13 Is Now Available https://hardware.slashdot.org/story/25/02/04/217248/risc-v-mainboard-for-the-framework-laptop-13-is-now-available?utm_source=rss1.0mainlinkanon
오늘 Hackers' Public @ Seoul 송년회에서 "개발자는 개발을 좋아해야 하는가? 에 대한 고찰"로 라이트닝 토크를 진행했습니다. 사실 제가 발표자인줄도 모르고 앞에서 이야기를 진행하게 되었는데, 많은 분께서 호응해주시고 또 경험에서 우러나온 진솔한 의견을 내주셔서 다양한 이야기가 오갈 수 있었습니다. 모두 감사드리며, 내년에 모두 원하시는 바 이루기를 기원하겠습니다. 🥰
Just had someone leave feedback on my F/OSS project saying “maybe that's fine if a product is focused on your Chinese community.”
I'm Korean. Every single piece of documentation is in English. There's nothing in Chinese anywhere in the project.
This kind of microaggression is exhausting. As a non-white maintainer, you deal with these assumptions constantly—people who feel entitled to your labor while casually othering you based on your name.
It chips away at your motivation. It makes you wonder why you bother.
https://github.com/dahlia/optique/issues/59#issuecomment-3678606022
루비(Ruby)의 홈페이지가 새 단장했다고 해서 들어가봤는데 꽤 예쁜데? https://www.ruby-lang.org/ko/
洪 民憙 (Hong Minhee) shared the below article:
Subagent는 Tool Use입니다.
자손킴 @jasonkim@hackers.pub
Subagent는 Tool Use 메커니즘을 확장하여 특정 작업에 최적화된 독립적인 AI 에이전트를 운용하는 고도화된 방식입니다. 메인 에이전트가 'Task' 도구를 호출하면 전용 시스템 프롬프트와 제한된 도구 세트를 가진 새로운 메시지 루프가 생성되며, 각 Subagent는 자신의 독립적인 컨텍스트 내에서 전문화된 작업을 수행한 뒤 그 결과를 메인 에이전트에게 전달합니다. YAML 설정과 마크다운 본문으로 정의되는 Subagent는 탐색이나 설계 등 목적에 따라 가벼운 모델인 Haiku나 강력한 성능의 Opus를 취사선택할 수 있어 작업의 효율성을 극대화하며, 메인 대화의 컨텍스트가 불필요한 정보로 오염되는 것을 방지합니다. 비록 메인 대화 히스토리를 직접 공유하지는 않지만 CLAUDE.md와 같은 프로젝트 컨벤션을 자동으로 참조하여 일관성을 유지하며 복잡한 워크플로우를 자율적으로 해결합니다. 이러한 구조는 단순한 API 호출을 넘어 LLM이 또 다른 전문 LLM을 도구처럼 활용함으로써 AI 에이전트의 문제 해결 능력을 다각화하고 시스템의 확장성을 한 단계 높여주는 핵심적인 설계 패턴입니다.
Read more →
@nesroch煥燮 (환섭/カンシヨウ) 엇, 이상하네요… Hackers' Pub과 Mastodon 사이의 소통에 문제가 있는 것 같은데, 한 번 확인해 보도록 하겠습니다!
Gemini 3과 함께 리눅스 커널 코드를 탐험하고 있다. vdso gettimeofday와 time이 어떻게 구현이 다른지 궁금해서 찾아보고 있다. 물론 더 깊이 알 시간은 없겠지만, LLM이 아니었다면 이런 걸 들여다볼 생각조차 하지 못했겠지.
여러분!!! 모바일에서 텍스트 편집을 할 때 나오는 저 '파란색 그거'를 뭐라고 하나요???
@eatch잇창명 EatChangmyeong💕🐱 텍스트 커서(text cursor) 내지는 캐럿(caret)이라고 부르는 걸로 아는데… 이걸 궁금해 하신 게 아니려나요?
여러분!!! 모바일에서 텍스트 편집을 할 때 나오는 저 '파란색 그거'를 뭐라고 하나요???
LogTape에 이런 PR을 받았는데, 로컬에서 테스트 하려면 Windows 랩톱을 켜야 하기 때문에 귀찮아서 계속 미루고 있다… 😂
저도 Flatpak이나 Snap으로 패키징된 애플리케이션에서 다국어 IM이 제대로 동작 안 하는 경험은 많이 했는데, 문득 어째서 그런 현상이 일어나는지 궁금해지긴 하네요… 구조적으로 풀기 어려운 문제려나요? 🤔
@hongminhee洪 民憙 (Hong Minhee) 오... 감사합니다. 한번 살펴보겠습니다. 사실 Vercel AI SDK는 첫삽을 이걸로 떠버려서 어쩔수없이 쓰고있는 상태입니다. 급한 불만 끄고 좀더 나은 라이브러리로 갈아타려고 했어요.
@hongminhee洪 民憙 (Hong Minhee) Vercel AI SDK에서 제가 문제점이라고 느낀 디자인을 그대로 갖고 있네요. 사실 저도 아직 충분히 고민해보진 못했고 반대 의견은 매우 환영입니다.
제가 문제라고 느낀 부분은 Message 타입 밑에 Part가 있는 건데요. 그러니까 LLM의 응답이 플랫하게 Message[]이 아니라 Message[].Part[]가 됩니다. Part는 Plain Text거나 Tool Call일 수 있습니다. 그런데 이게 메시지를 DB에 저장하고 Streaming UI를 만들때 불편합니다. 그냥 Part를 없애고 Message만 있으면 좋겠어요.
처음에 저런식의 디자인을 한 동기를 추측해보자면, Message[]를 User/Assitant/User/Assistant/... 이렇게 번갈아 나타나는 형태를 기대하고, 그걸 만족시키려면 Assistant/Assitant 이렇게 연달아 나타나는걸 피해야하니 Part를 도입한게 아닌가 싶습니다. 근데 실제론 저 번갈아 나타나야한다는 조건이 타입으로 강제도 안되고(이건 어려우니 OK) 런타임에서 뭐라고 하지도 않아요. 그리고 실제 사용에서 연달아 나타나는걸 허용하는게 오히려 자연스럽습니다.
그래서 처음에 잠깐 잘못 생각해서 나온 디자인이, 실제론 의도한 제약을 주고있지도 못하고 그냥 쓰임만 불편하게 만들고 있는거 같습니다.
보안 업데이트: Hollo 0.6.19 릴리스
Fedify의 HTML 파싱 코드에서 발견된 보안 취약점을 수정한 Hollo 0.6.19를 릴리스했습니다.
이 취약점(CVE-2025-68475)은 ReDoS(정규 표현식 서비스 거부) 문제로, 공격자가 연합 작업 중 특수하게 조작된 HTML 응답을 보내 서비스 장애를 유발할 수 있습니다. 악성 페이로드는 작지만(약 170바이트), Node.js 이벤트 루프를 장시간 차단할 수 있습니다.
모든 Hollo 운영자분들께 즉시 버전 0.6.19로 업그레이드하실 것을 강력히 권고드립니다.
| 항목 | 상세 |
|---|---|
| CVE | CVE-2025-68475 |
| 심각도 | 높음 (CVSS 7.5) |
| 조치 | Hollo 0.6.19로 업그레이드 |
セキュリティアップデート: Hollo 0.6.19 リリース
FedifyのHTMLパースコードにおけるセキュリティ脆弱性に対応したHollo 0.6.19をリリースしました。
この脆弱性 (CVE-2025-68475) は ReDoS (正規表現によるサービス拒否) の問題であり、攻撃者がフェデレーション操作中に特別に細工されたHTMLレスポンスを送信することで、サービス停止を引き起こす可能性があります。悪意のあるペイロードは小さい (約170バイト) ですが、Node.jsのイベントループを長時間ブロックする可能性があります。
すべてのHollo運営者の皆様には、直ちにバージョン 0.6.19 へのアップグレードを強くお勧めします。
| 項目 | 詳細 |
|---|---|
| CVE | CVE-2025-68475 |
| 深刻度 | 高 (CVSS 7.5) |
| 対応 | Hollo 0.6.19 にアップグレード |
Security Update: Hollo 0.6.19 Released
We have released Hollo 0.6.19 to address a security vulnerability in Fedify's HTML parsing code.
This vulnerability (CVE-2025-68475) is a ReDoS (Regular Expression Denial of Service) issue that could allow an attacker to cause service unavailability by sending specially crafted HTML responses during federation operations. The malicious payload is small (approximately 170 bytes) but can block the Node.js event loop for extended periods.
We strongly recommend all Hollo operators upgrade to version 0.6.19 immediately.
| Field | Details |
|---|---|
| CVE | CVE-2025-68475 |
| Severity | High (CVSS 7.5) |
| Action | Upgrade to Hollo 0.6.19 |
보안 업데이트: Hollo 0.6.19 릴리스
Fedify의 HTML 파싱 코드에서 발견된 보안 취약점을 수정한 Hollo 0.6.19를 릴리스했습니다.
이 취약점(CVE-2025-68475)은 ReDoS(정규 표현식 서비스 거부) 문제로, 공격자가 연합 작업 중 특수하게 조작된 HTML 응답을 보내 서비스 장애를 유발할 수 있습니다. 악성 페이로드는 작지만(약 170바이트), Node.js 이벤트 루프를 장시간 차단할 수 있습니다.
모든 Hollo 운영자분들께 즉시 버전 0.6.19로 업그레이드하실 것을 강력히 권고드립니다.
| 항목 | 상세 |
|---|---|
| CVE | CVE-2025-68475 |
| 심각도 | 높음 (CVSS 7.5) |
| 조치 | Hollo 0.6.19로 업그레이드 |
Vercel AI SDK는 LLM이라는 훌륭한 기술을 주옥같은 인터페이스로 감싸놓았다. 정말 이해가 안가는 추상화 투성이다.
Vercel AI SDK는 LLM이라는 훌륭한 기술을 주옥같은 인터페이스로 감싸놓았다. 정말 이해가 안가는 추상화 투성이다.
오랜만에 튜사에 왔다
洪 民憙 (Hong Minhee) shared the below article:
도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 #5-1 TLS
자손킴 @jasonkim@hackers.pub
OSI 7계층 모델의 상위 계층이 현대 TCP/IP 모델에서 애플리케이션 계층으로 통합된 배경과 함께 네트워크 보안의 핵심인 TLS 프로토콜의 작동 원리를 깊이 있게 다룹니다. 도청, 변조, 스푸핑과 같은 보안 위협을 방어하기 위해 TLS가 사용하는 암호화, 해싱, 디지털 인증서 기술을 상세히 살펴보고, 특히 최신 표준인 TLS 1.3에서 성능과 보안성을 극대화한 X25519 키 교환과 Ed25519 디지털 서명 알고리즘의 메커니즘을 분석합니다. 대칭키 암호화의 키 전달 문제를 해결하는 과정부터 전방 비밀성(Forward Secrecy)의 중요성, 그리고 메시지 인증 코드(MAC)를 통한 데이터 무결성 보장까지 현대 암호학 기술이 어떻게 조화를 이루어 안전한 통신 채널을 구축하는지 명확하게 설명합니다. 이 글은 복잡한 보안 프로토콜의 내부 구조를 이해하고 더 안전한 애플리케이션을 설계하려는 개발자에게 실질적인 기술적 통찰을 제공합니다.
Read more →
@hongminhee洪 民憙 (Hong Minhee) 안타깝게도 내일은 참석을 못합니다ㅠㅠ 즐거운 시간 보내십셔..
@bglbgl gwyng 헉… 아쉽게 되었네요… 😭












