Profile img

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

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

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

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

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

Functional Programming in Lean 한국어 번역 - 소개 및 감사의 글

초무 @2chanhaeng@hackers.pub

Lean은 의존 타입 이론(dependent type theory)에 기반한 대화형 정리 증명기이자 범용 프로그래밍 언어로 설계된 현대적인 순수 함수형 언어입니다. Microsoft Research에서 시작되어 현재 Lean FRO에서 개발 중인 이 언어는 프로그램과 증명을 하나의 세계로 통합하며, Lean 자체를 Lean으로 구현할 만큼 높은 자기 완결성을 자랑합니다. 프로그래밍 언어로서 Lean은 실행 전 인자값을 계산하는 엄격성(strictness)과 부수 효과를 명시적으로 관리하는 순수성(purity)을 핵심 원칙으로 삼고 있으며, 특히 타입이 프로그램의 일급 객체가 되는 의존 타입을 통해 정교한 로직 설계를 지원합니다. 이 과정은 함수형 언어에 익숙하지 않은 일반 프로그래머나 증명 자동화 도구를 작성하려는 수학자들을 위해 Lean의 기본 개념과 도구 체계인 elan 및 lake의 활용법을 상세히 다룹니다. 저자 David Thrane Christiansen의 풍부한 경험이 녹아든 유니코드 기반의 수학적 표기법과 단계별 연습 문제는 독자가 함수형 사고방식을 자연스럽게 체득하도록 이끕니다. 수학적 엄밀함과 실용적인 소프트웨어 개발의 접점을 탐구하는 이 여정은 독자가 복잡한 시스템을 더 깊이 이해하고 결함 없는 프로그램을 구축하는 데 필요한 강력한 기술적 토대를 제공합니다.

Read more →
2
2
1
  • zellij 를 MacOS + Ghostty 조합에서 사용할 때 한글 폴더명의 깨짐현상이 있다.

  • (초성만 노출되는 문제) https://github.com/zellij-org/zellij/issues/3148

  • Claude Code (Opus 4.6 Model) 의 도움을 받아 수정했고 로컬에서 빌드해서 쓰고 있다.

  • PR 도 보냈는데, 근본적인 해결책은 되지 못해, 커밋이 병합되지는 못했다.

  • 그래서 결론 - 이 커밋은 나만 쓰게 되었다. 😂

3

지난 주말부터 열심히 토큰을 팍팍 태워 만든 TypeScript/Rust용 엑셀 라이브러리 SheetKit, 방금 0.4.0를 배포했습니다.

문서 퀄리티가 아직 좋다고는 말을 못해도 API 레퍼런스와 문서 웹도 생겼고, 단순한 값 읽기/쓰기를 넘어 복잡한 기능들도 많이 추가되었습니다. 이제 폭발적인 구현보다는 적당한 스피드로 문서의 완성도를 높이고 WebAssembly나 Bun/Deno/Python 등에 대한 바인딩 등을 고민해볼 계획입니다. 문서의 완성도도 좀 어느 정도 올라간다면 이리저리 SheetKit을 소개하는 정식 글도 한번 여기저기에 올려보려고 합니다.

이미 Node.js쪽 binding은 열심히 개밥먹기하고 있는 중인데, Rust나 Node.js 환경에서 엑셀 파일을 다룰 일이 있는 분들은 한번 써보시고 이슈나 피드백을 남겨주시면 너무 좋을 것 같습니다.

Node.js에서 SheetKit은 다른 라이브러리에 비해 거의 모든 벤치마크 테스트에서 성능 우위를 보였습니다. 웹 문서에는 SheetKit이 어떻게 메모리를 덜 사용하고 Node.js 바인딩에서 영역 전환 시의 오버헤드를 줄였는지도 정리되어 있습니다.

https://github.com/Nebu1eto/sheetkit

SheetKit은 처음으로 설계나 의사 결정 외에는 모든 구현을 코딩 에이전트에게 위임하면서 만들었습니다. 이 과정에서 코딩 에이전트로 어떻게 큰 작업을 효율적으로 하는지, 또 어떻게 코딩 에이전트와 함께 잘 작업할 수 있을지 등을 많이 배웠습니다.

이 경험에 대해서도 시간 여유가 될 때 정식으로 글로 적어보고자 합니다.

3

지난 주말부터 열심히 토큰을 팍팍 태워 만든 TypeScript/Rust용 엑셀 라이브러리 SheetKit, 방금 0.4.0를 배포했습니다.

문서 퀄리티가 아직 좋다고는 말을 못해도 API 레퍼런스와 문서 웹도 생겼고, 단순한 값 읽기/쓰기를 넘어 복잡한 기능들도 많이 추가되었습니다. 이제 폭발적인 구현보다는 적당한 스피드로 문서의 완성도를 높이고 WebAssembly나 Bun/Deno/Python 등에 대한 바인딩 등을 고민해볼 계획입니다. 문서의 완성도도 좀 어느 정도 올라간다면 이리저리 SheetKit을 소개하는 정식 글도 한번 여기저기에 올려보려고 합니다.

이미 Node.js쪽 binding은 열심히 개밥먹기하고 있는 중인데, Rust나 Node.js 환경에서 엑셀 파일을 다룰 일이 있는 분들은 한번 써보시고 이슈나 피드백을 남겨주시면 너무 좋을 것 같습니다.

Node.js에서 SheetKit은 다른 라이브러리에 비해 거의 모든 벤치마크 테스트에서 성능 우위를 보였습니다. 웹 문서에는 SheetKit이 어떻게 메모리를 덜 사용하고 Node.js 바인딩에서 영역 전환 시의 오버헤드를 줄였는지도 정리되어 있습니다.

https://github.com/Nebu1eto/sheetkit

3

연합우주 설계에서 도메인 네임 재사용이 배제되어 있는 건 아쉬운 일임. 브랜드에 관심 없는 개발자들답다면 다운데, 이게 생각보다 꽤 서비스 관점에서는 단점이 된다.

1
3
2

기존 ExcelJS를 쓰던 프로젝트에 SheetKit을 붙이다가 문득 궁금해져서 벤치마크 스크립트를 만들어보게 시켜보았다. 데이터 유효성 검사 설정을 많이 추가해둔 기존 템플릿 파일에서 SheetKit이 최대 10000배 이상 빠른 결과가 나왔다. 바퀴 재발명 야크 셰이빙이 뿌듯해지는 순간이다.

SheetKit과 ExcelJS의 벤치마크 결과, 모든 영역에서 ExcelJS보다 빠른 결과를 보여주었다.

       Create + Write              12.8x faster
       Buffer Read                  3.1x faster
       Large Write                  2.2x faster
       Large Buffer Read            1.8x faster
       Template (11K)           14376.6x faster
       Template (13K)            5771.4x faster
       EUCAST (2.5MB)               3.3x faster
0

코딩 에이전트를 풀로 활용해서 나보단 코딩 에이전트가 만들고 있는 TypeScript와 Rust를 위한 스프레드시트 라이브러리. 타입스크립트에서 xlsx 파일을 다루는 라이브러리들 쓰다가 너무 괴로워서 만들게 되었다. (GitHub Actions 배포 이슈는 내일 마저 잡는걸로…)

https://github.com/Nebu1eto/sheetkit

기존 ExcelJS를 쓰던 프로젝트에 SheetKit을 붙이다가 문득 궁금해져서 벤치마크 스크립트를 만들어보게 시켜보았다. 데이터 유효성 검사 설정을 많이 추가해둔 기존 템플릿 파일에서 SheetKit이 최대 10000배 이상 빠른 결과가 나왔다. 바퀴 재발명 야크 셰이빙이 뿌듯해지는 순간이다.

SheetKit과 ExcelJS의 벤치마크 결과, 모든 영역에서 ExcelJS보다 빠른 결과를 보여주었다.

       Create + Write              12.8x faster
       Buffer Read                  3.1x faster
       Large Write                  2.2x faster
       Large Buffer Read            1.8x faster
       Template (11K)           14376.6x faster
       Template (13K)            5771.4x faster
       EUCAST (2.5MB)               3.3x faster
5
3
1

코딩 에이전트를 풀로 활용해서 나보단 코딩 에이전트가 만들고 있는 TypeScript와 Rust를 위한 스프레드시트 라이브러리. 타입스크립트에서 xlsx 파일을 다루는 라이브러리들 쓰다가 너무 괴로워서 만들게 되었다. (GitHub Actions 배포 이슈는 내일 마저 잡는걸로…)

https://github.com/Nebu1eto/sheetkit

5

.NET IDE의 핵심은 벤더 락인에 묶여 있고, GUI 프레임워크는 Windows에 치중되어 있습니다. 저는 이 문제를 AI 코딩 에이전트의 힘을 빌어 풀어보기 위해 저와 같이 닷넷데브 운영진으로 활동하시는 송영재 님께서 만든 크로스플랫폼 UI 프레임워크 MewUI로 오픈소스 .NET IDE, LibraStudio를 만들기 시작했습니다.

그러나 난관은 AI가 이 프레임워크를 전혀 모른다는 것. 제가 만든 HandMirror MCP로 어셈블리를 직접 검사해 AI에게 정확한 API 정보를 제공하여, 첫 빌드만에 오류 단 3개로 빠르게 구현을 마칠 수 있었습니다. 그 과정을 정리하여 공유합니다.

👉 https://devwrite.ai/ko/posts/why-i-use-handmirror-mcp/

4

mise WARN env value contains '$' which will be expanded in a future release. Set env_shell_expand = true to opt in or env_shell_expand = false to keep current behavior and suppress this warning.

켜고 싶다면 VAR = "foo$$bar" 처럼 고쳐야 됨. VAR = '''foo$bar''' 이런거 안 됨. 난 꺼버렸음.

1
1
0

클로드가 2주 동안 gcc 호환되는 컴파일러를 만들어서 다들 놀라고 있다.

한가지 고려해야할 부분은, 애초에 소프트웨어 공학 자체가 큰틀에서 설계를 잘하면(클로드는 이미 현존하는 가장 훌륭한 설계도 알고 있을 것이다) 나머지는 꾸역꾸역 코드를 짜서 제품을 완성할수 있게하는게 목표란거다. 그러니까 클로드가 C 파서를 짰다고 하면 2026년 지금은 아무도 안놀라겠지. 근데 소프트웨어 공학 지식은 C 파서를 짤수 있는 인간이 더 많은 시간을 투자하면 C 컴파일러도 짤수 있게 해준다.

그래서 모델의 성능이 좋아질수록 마치 RPG에서 레벨이 오르면 새로운 장비를 착용할수 있게 되어 급격히 강해지는것과 같은 일을 보게될거 같다. 하지만 이때 장비를 착용할수 있는 능력과 장비를 만들 수 있는 능력을 구분할 필요는 있다. 이제 후자가 AI 회사의 다음 목표인셈인데..

4
2

Daum (Kakao) 우편번호 서비스 도메인 & JS API 네임스페이스 변경 안내 (사전 공지)

https://github.com/daumPostcode/QnA/issues/1498

GeekNews에도 올리기는 했는데, 아무래도 국내 서비스에는 영향을 받는 곳이 많다보니, Hackers' Pub에도 공유해 둡니다.

  1. 공식 가이드 페이지
  1. CDN 도메인 변경 (적용 완료)
  1. 서비스 도메인 변경 일정 (예정)
  1. JavaScript API 네임스페이스 변경 안내
  • 기존 new daum.Postcode({...
  • 변경 new kakao.Postcode({...
  1. 서비스 종료 예정 도메인 안내 (중요)
  1. 도메인 변경 사전 안내 및 네임스페이스 변경에 대한 안내
  • 기존 도메인 종료에 대한 상세 일정은 3월 10일 전후 공지에서 다시 안내
  • 서비스 중단 방지를 위해 사전 점검 및 점진적 전환을 권장
2

일을 대하는 태도가 많이 바뀔수밖에 없다. 예전 같으면 코드를 직접 작성하는게 시간적으로 해결못할 일이니 그냥 그대로 두거나 넘어갔다.

이제 개념적으로 이해할 수 있는 일이라면 코딩 자체는 문제가 아니니 문제와 해결법에 더 집중 가능한 형태가 된듯

ㅋㅋㅋ 예전 같으면 넘어갔을 아주 사소한 변경을 오픈 소스에 기여하고 거창한 말을 해보았음ㅋㅋㅋ

결론적으론 뿌듯하다

https://github.com/SchemaStore/schemastore/pull/5332

1
0
1

이때 막 프라그마 써가면서 Either의 ToJSON 인스턴스를 원하는대로 구현하려고 애썼는데 알고 보니까 더 쉬운 다른 방법이 있었다. 다음과 같이 sumEncoding이라는 옵션을 이용하면 된다.

toJSON = genericToJSON defaultOptions
  { sumEncoding = UntaggedValue }

전에는 이렇게 좋아하는 언어의 소소한 팁을 라이브러리 문서에서 찾았을 때 SNS에 공유하는 게 삶의 낙이었는데 요즘 같은 LLM 에이전트 딸깍 시대에는 이런 게 다 무슨 소용인가 싶어서 우울하다.

7
1
2
5

日本(일본)의 TypeScript 컨퍼런스인 TSKaigi 2026이 5() 22()(())–23()(())에 東京(도쿄)에서 開催(개최)된다고 합니다. 함께 가실 韓國(한국) 분 계실까요?

一旦(일단) 저랑 @2chanhaeng초무 님하고 @kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior) :vim: 님이 같이 가실 것 같습니다.

5
2
1
1
4
7

얼마 전 Oh My OpenCode이 한창 바이럴 될 때 에이전트 사용법이 재밌다고 느끼면서도 저렇게 누군가 만들어 놓은 걸 그대로 가져다 쓰는 건 별 의미가 없고 스스로가 쓸 도구 모음을 구축하고 (그걸 운영할 수 있는 기술을 가지고) 싶다는 생각을 했는데 Pi가 어느 정도 그것에 대한 실마리를 제공해 주었다고 생각함. (Armin Ronacher가 쓴 Pi: The Minimal Agent Within OpenClaw를 보고 알게 됨.)

2
0
0
3

Nix + Agent(LLM) 쓰는 거 너무 좋다

그냥 느낌대로 대책없이 (수동 바이브) 리팩토링했는데, 에이전트한테 리팩토링 하기 전 커밋 ID 알려주고 리팩토링이므로 검증해달라고 하면 편집한 부분 설정값 nix eval로 촤라락 비교해주고, nix-diff도 해주고, dry-build해서도 확인해주니까 든든하다

1
8
5
5
6
2