Profile img

Jaeyeol Lee

@kodingwarrior@hackers.pub · 694 following · 508 followers

Neovim Super villain. 풀스택 엔지니어 내지는 프로덕트 엔지니어라고 스스로를 소개하지만 사실상 잡부를 담당하는 사람. CLI 도구를 만드는 것에 관심이 많습니다.

Hackers' Pub에서는 자발적으로 바이럴을 담당하고 있는 사람. Hackers' Pub의 무궁무진한 발전 가능성을 믿습니다.

그 외에도 개발자 커뮤니티 생태계에 다양한 시도들을 합니다. 지금은 https://vim.kr / https://fedidev.kr 디스코드 운영 중

Blog
kodingwarrior.github.io
mastodon
@kodingwarrior@silicon.moe
Github
@malkoG

컴파일러 책 얇은 거 하나 읽고 있는데 문맥자유문법(CFG)이 나와서 오랜만이야 친구 하면서 보는 중...언어학 덕질했던 사람으로선 이걸 보니 하나 떠오르는 게 하나 있는데, 1957년 Syntactic Structures에서 촘스키는 이 CFG를 갖고 닝겐의 자연어가 지니는 통사적 성질(의미 아님)을 마르코프 과정을 통해서 설명하기엔 한계가 있음을 지적하며 변형문법(Transformational Grammar)를 제안한 게 생각난다. 즉, 닝겐 자연어의 통사 정보를 설명할 문법을 제안한 것(다시 한 번 말하지만 의미가 아님). 물론 이후엔 훨씬 더 발전하고 추상화됐고, PCFG라 하여 CFG에 확률을 넣은 CFG 확장판도 있다[1]. 참고로 오토마타 이론에서 나오는 촘스키-슈첸버거 위계나 촘스키 정규형할 때 얘기하는 그 촘스키 맞다.

개인적으로 촘스키의 저 시절 연구들이 되게 재밌다고 생각하는데 (물론 훑어만 봤지만...) 이후엔 사실상 오토마타 이론쪽으론 손 뗀 것 같아서 좀 아쉽기도 함...여튼 컴파일러 책 보다가 갑자기 생각나서 씀. 그나저나 도대체 난 언제 쯔음 나만의 프로그래밍 언어를 만들 수 있을까?


  1. 정규언어에서 은닉 마르코프 모형으로 확장시키는 거랑 똑같다. ↩︎

8

식탁보 3.0을 준비하면서, 이번에 매우 흥미로운 기능을 하나 추가하게 되었습니다. Claude Desktop에서 MCP 서버로 식탁보를 등록하면, 원하는 금융 기관이나 공공기관에 샌드박스로서 접속할 수 있게 연결시켜주는 기능입니다.

현재는 카탈로그에 있는 사이트를 찾아주어 들어가는 정도이지만, 좀 더 강화하여 주요 기관들의 거래 및 업무 처리 URL들을 데이터베이스화하거나 Claude의 자체 검색 기능으로 찾은 웹 사이트 주소를 바로 전달하는 것도 기술적으로 가능하게 구현해둔 상태입니다. (이 때 해당 웹 사이트에서 쓰는 플러그인 정보가 있다면 샌드박스 내에 매칭해서 자동 설치도 해줍니다.)

차근차근 준비해나가고 있으며, 이번 추석 연휴 기간 중에 마무리 짓는 것을 목표로 진행 중이니 많은 관심과 성원 부탁드립니다! 😉

https://www.youtube.com/watch?v=DAspuJFK9UI

5
0
0

You want to build a website for the world, but is simply translating your text enough? In this video, Fuqiao Xue breaks down the fundamental concepts of making the web truly global. Learn the crucial difference between Internationalization (i18n) and Localization (l10n), and discover all the things you need to consider beyond words, from character encoding and right-to-left layouts to cultural formats for dates, numbers, and names.
youtube.com/watch?v=kccAPdS2W3U

text: "i18n" above a global map
0

Hackers' Pub이랑 mastodon이랑 왔다갔다하면서 게시글 공유하고 수제 글 쓰고 하트 찍고 등등등 해보고 있는데 모든 행위 자체가 로그가 찍히는걸 관찰하면 정말 신기하면서도 놀라움..

이러한 행위 자체 하나하나가 굉장히 무거운 것일텐데 이걸 엔지니어링적으로 어떻게 다들 최적화시키는걸까하고 경외심이 든다..... 부트캠프에서 마케팅할때 그렇게 좋아하는 대규모 트래픽 경험? 그런거 모르겠고, 이렇게 조그마한 규모에서도 와다다다 쏟아지는 트래픽이랑 트래픽이 오가는 경로를 최적화하고 이걸 또 견고한 서비스로 이어갈 수 있게 하는게 찐 엔지니어링의 산물인 것 같음

7

요즘 오에카키 같은 2000년대 초반 인터넷 유물?같은 게 종종 머릿속에 떠오르는데 분명 내가 어릴 때여서 추억화된 것 때문인 걸 알고 있음에도 그 시절 인터넷 서브컬쳐들이 좀 그리울 때가 있다. 뭔가 그 특유의 투박한 디자인들이 자꾸 떠오름...

5

안녕하세요, 백엔드 경력직 프로그래머 뽑고 있습니다. 로그를 모니터링하고 저장하는 시스템을 개발하는 포지션입니다. 기존 오픈소스 솔루션을 사용하긴 하지만 단순히 구축하고 운영하는 것은 아닙니다. 운영도 하지만 개발이 주된 업무 입니다. (오픈소스 솔루션 운영 포지션으로 착각하고 지원하시는 분들이 계셔서 사족을 넣었습니다) https://careers.linecorp.com/ko/jobs/2845/

8
0
0

confirms the massive impact of
roles ↓23%
roles ↑14%
(285,000 firms monitored)

Before AI: 1 senior + 3 juniors = full team
After AI: 1 senior + AI = same output

We are creating without mentors without students. The professional ladder is losing its lowest rungs.

(Source: papers.ssrn.com/sol3/papers.cf )

0

클러스터화는 단점이기도 하지만 장점이기도 한게 제가 생각하기에 다른 커뮤니티 서비스랑 트위터류의 가장 큰 차이점은 적당한? 느슨한? 클러스터화라고 생각하거든요 트위터만 봐도 인플루언서-like하게 사용하는 사람도 자기들끼리 노는 사람도 있는데 되게 그런 사람들간에 사용 형태와 목적이 판이하게 다를탠데 동시에 같은 트위터에 존재하면서도 디스코드같은 아예 클러스터가 완전히 분리된 동네하고는 다르게 그 클러스터들 사이에도 느슨한 연결고리가 존재한다는게 매력이라고 생각해요

1

Jaeyeol Lee shared the below article:

Stop writing CLI validation. Parse it right the first time.

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

This post introduces Optique, a new library created to address the pervasive problem of repetitive and often messy validation code in CLI tools. The author was motivated by the observation that nearly every CLI tool reinvents the wheel with similar validation patterns for dependent options, mutually exclusive options, and environment-specific requirements. Optique leverages parser combinators and TypeScript's type inference to ensure that CLI arguments are parsed directly into valid configurations, eliminating the need for manual validation. By describing the desired CLI configuration with Optique, TypeScript automatically infers the types and constraints, catching potential bugs at compile time. The author shares their experience of deleting large chunks of validation code and simplifying refactoring tasks. Optique aims to provide a more robust and maintainable approach to CLI argument parsing, potentially saving developers from writing the same validation logic repeatedly.

Read more →
21
3
1

우부콘 발표하고 그 다음 주에 파이콘 발표하고 그 다음 달에 해커스 퍼블릭 여시는 분이 말씀하시니 믿음이 가네요

7
9
3

function은 우리말로는 함수기능으로 번역된다. 우리말 함수와 기능은 조금 다른 뜻을 가지고 있는데, 영어권에서는 function을 만나면 함수나 기능의 의미가 아닌, 둘을 아우르는 의미로 받아들이는 게 아닐까란 생각이 들어 추측을 해봤다.

function의 어원은 라틴어 functio 로, performance, execution 이란 뜻에서 왔다고 한다. 어원으로 추측해보 면 "실행, 수행할 수 있는 것"을 말한다고 보여진다. 수학이나 프로그램에서 만나는 함수는, 입력이 있고, 그 입력에 대응하는 정해진 출력이 있는, 입 출력을 매핑하는 것으로 설명하곤 한다. 이 뜻이 맞지 않다기 보다, 어원에서 말하는 실행이 살짝 가려져 있는 뜻이 아닌가 싶다. 함수의 중요한 특징은 실행, 즉 적용에 있는데, 이 적용을 위한 데이터에 더 촛점을 맞춘 설명처럼 느껴진다.

혼자 생각으론 "실행(혹은 적용apply)하면 무언가가 바뀌게 하는 것"으로 인식하면 함수나 기능에 모두 function을 쓰는 게 무리가 없다. 수학, 프로그래밍에서는 매핑이라는 설계를 통해 무언가를 바꾸고 있는 것으로, 매핑은 function 작동 방식의 일례일 뿐이다.

어찌보면, 애초에 상자 안에 들어 있는 수 같은 말로 번역될 수 없는 뜻이다.

5

지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. deno.com/blog/intro-to-islands

웹사이트 유형별로 자바스크립트 사용 필요성을 스펙트럼으로 표현한 차트. 수평 막대 다이어그램으로 웹사이트에서 자바스크립트(JS)의 필요 정도를 나타냄. 왼쪽 빨간색 구역은 ‘i don’t need no stinkin’ JS’로, 블로그와 코드 스니펫이 포함된 문서를 예시로 듦. 가운데 넓은 녹색 구역은 ‘Goldilocks JS’로, 마케팅 사이트, 전자상거래 사이트, 인터랙티브 SaaS를 포함. 오른쪽 파란색 구역은 ’JS me up!’으로, 소셜 미디어 사이트를 예시로 듦.
4
2

Jaeyeol Lee shared the below article:

Fediverse Auxiliary Service Providers(FASP)の詳細解説

のえる @noellabo@hackers.pub

この記事では、Fediverseの課題を解決し、機能拡張を目指す新しいアーキテクチャ、Fediverse Auxiliary Service Providers(FASP)について解説します。FASPは、分散型ネットワークにおける検索・発見の限界や、セキュリティ・モデレーションの課題に対処するために開発されており、アカウント検索、コンテンツ検索、スパム検出などの機能を提供します。Mastodon gGmbHが主導し、NGI Searchプログラムからの資金提供を受けて開発が進められています。2025年にかけて基本仕様の公開、実装、テストが行われ、最終的にはFediverseエコシステム全体への拡大を目指しています。FASPは、Fediverseの可能性を大きく拡張する重要なプロジェクトであり、今後の進展が期待されます。

Read more →
7

Here is a first proof-of-concept demonstration of an actual outcome for the erdosproblems/OEIS linkage project. There are a number of Erdos problems relating to irrationality of specific series. I asked an AI to compute several of these series to several decimal places (chatgpt.com/share/68b7160a-3d4), then entered in these decimal strings into the OEIS search bar. I found several hits, which I then uploaded to the project github.com/teorth/erdosproblem .

In particular, I linked Erdos problem 259 erdosproblems.com/259 to OEIS A371134 oeis.org/A371134. In the latter page, there was a reference to a solution to the problem by Chen and Ruzsa doi.org/10.1023/A:1004742930674 that was not known to the erdosproblems.com site. So now we can mark that problem as solved!

I think this type of semi-automated literature search could be a good use case for AI tooling, since the (potentially unreliable) output of such AI tools is only used to locate more reliable human-generated resources, rather than being directly incorporated into the final product.

0
0
0

I’d love to work together with my PSF Board buddy @jezdezJannis Leidel
I’d also be glad to collaborate again with @simonSimon Willison the author of Django and someone who brings a balanced perspective on AI.
The choice is yours, but I truly valued the time I spent with them.
I hope to see people on the PSF Board who are dedicated to the community and who connect many others together.
Please consider supporting them in the upcoming PSF Board election.

1
0
0
0

진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)

8
6

- 마틴 파울러는 LLM이 소프트웨어 개발에 미치는 영향을 논의하며, 자동완성을 넘어선 다양한 사용 워크플로우를 놓치고 있다고 지적

- 프로그래밍 역할의 미래에 대한 질문들은 여전히 정답이 없음

- AI가 과거 기술 발전과 같은 버블 상태임을 확인

- LLM을 신뢰성을 위해 여러 번 질의해야 하는 "환각 엔진"으로 강조

- 특히 AI 에이전트가 개인 데이터와 신뢰할 수 없는 콘텐츠에 접근할 때의 보안 위험을 경고

Some thoughts on LLMs and Software Development

https://martinfowler.com/articles/202508-ai-thoughts.html

0
0

We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as now supports .js alongside , making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred runtime while building with the same powerful BotKit APIs.

One of the most requested features has landed: poll support! You can now create interactive polls in your messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major platforms like Mastodon and Misskey.

// Create a poll with multiple choices
await session.publish(text`What's your favorite programming language?`, {
  class: Question,
  poll: {
    multiple: true,  // Allow multiple selections
    options: ["JavaScript", "TypeScript", "Python", "Rust"],
    endTime: Temporal.Now.instant().add({ hours: 24 }),
  },
});

// Handle votes
bot.onVote = async (session, vote) => {
  console.log(`${vote.actor} voted for "${vote.option}"`);
};

The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom개발곰)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.

For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.

This release also includes an important security update: we've upgraded to 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.

2
0
0

GPT-5가 어려운 문제에 있어서는 오히려 Claude Opus 4.1보다 낫다기에 한 번 써보고 있는데, Claude Code로는 당연하게도 GPT-5 모델을 못 쓰니 대신 Crush를 써보고 있다. 일단 첫인상으로는 MCP 외에도 LSP를 지원하는 게 마음에 든다. 바로 deno lsp를 연결해서 써보고 있다.

WezTerm 안에서 LLM 코딩 에이전트인 Crush를 사용하여 Optique 작업을 하는 모습. 사용중인 모델은 GPT-5 Reasoning Minimal이다. LSP로 Deno가 켜져 있고, MCP로 Context7 및 GitHub가 켜져 있다.
5

[🍏매장 이용안내]
최근 튜사 방문객 급증으로 Wi-fi가 끈기는 현상이 자주발생돼 공유기를 추가하였습니다.
Wi-fi 연결 목록 추가, Wi-fi명, 비밀번호가 변경 되었습니다.
방문하실 때 참고해주세요. 기존Wi-fi는 연결이 안됩니다.
비밀번호는 매장에 업데이트 해놨습니다.

🍏 tusa앨런튜링
→ 컴퓨터과학의 선구자, 암호해독의 전설.
“AI는 사람을 흉내 내는 걸로 시작한다.” — 지능과 논리가 흐르는 곳.

🍏tusa리누스토발즈
→ 리눅스 커널의 창시자, 오픈소스의 상징.
“코드는 공유되기 위해 태어났다.” — 리누스다운 개방형 개발존.

🍏tusa스티브워즈니악
→ 애플 1호기를 손수 만든 하드웨어 천재.
“개발은 Garage에서 시작된다.” — 납땜 냄새가 날 것 같은 공간.

🍏 tusa제임스고슬링
→ 자바(Java)의 창시자, 객체지향의 아버지.
“한 번 작성, 어디서나 실행.” — 안정성과 몰입을 위한 고슬링존.

3

[홍보글]👍
튜사에서 ASUS 제품을 경험해보실 수 있습니다. ASUS ProArt 모니터, AUS ROG 키보드까지 노트북, 마우스만 가지고 오시면 최적의 작업공간이 탄생됩니다! 그외 다양한 키보드와 모니터암까지 셋팅해놨으니 놀러오세요!

ASUS ROG 키보드 공동구매 진행중!
(튜사만 진행하는 최저가!)

공구참여!
discord.gg/KAJYgRY7tr

2
6
0
0

React is Simple!

Think React state is easy? One wrong move and your counter breaks.

Why It Happens

React batches state updates.
Using setState(state + 1) can overwrite updates with stale values.
The functional form setState(prev => prev + 1) ensures correctness.

Don't

const [count, setCount] = useState(0);

setCount(count + 1);
setCount(count + 1); 
// ❌ Result: count = 1

Do

const [count, setCount] = useState(0);

setCount(prev => prev + 1);
setCount(prev => prev + 1);
// ✅ Result: count = 2

Explanation

  • setCount(count + 1) → uses an old snapshot of state.
  • setCount(prev => prev + 1) → React passes the freshest value.

Updating state without prev is like asking for “one more slice” 🍕…
but the box already got emptied. Always ask from the current box.

4

요즘 새로 배운 이것저것...

  • gerrit이라는 10년 전부터 존재하던 rebase, stacked-pr workflow를 지원하는 git remote가 있다
  • 커널 개발하는 변태들이 쓰는 mailing-list workflow는 사실 rebase, stacked-pr workflow와 매우 유사하다
  • EU쪽에도 jj 기반의 탈 github 개발자 허브를 만들려는 움직임이 있는듯. (개인적으론 tangled.sh가 더 유력해보임)

가장 놀랐던건 mailing-list workflow... 이거 진짜 생각보다 나쁘지 않은 것 같기도, tangled.sh에서 mailing-list를 지원할 수 있다면, gh 같은 별도의 cli 툴 없이도, 협업까지 터미널에서 처리할 수 있어보임.

1

오이카페에 ActivityPub 지원이 들어갔습니다. 이제 좋아하는 작가나 커뮤니티의 새 그림을 연합우주에서도 받아 보세요!

작가 프로필이나 커뮤니티 메인 페이지에서 ActivityPub 핸들을 확인할 수 있습니다.

인용된 그림은 ActivityPub 연동을 도와주신 @hongminhee洪 民憙 (Hong Minhee) 님이 오이카페 초창기에 그려 주신 고양이 그림입니다. 감사합니다!

14
1
0

Ask HN: 소프트웨어 설계를 배우기에 좋은 최고의 코드베이스는 무엇인가요?
------------------------------
- 소프트웨어 설계 능력을 향상시키고자 노력하고 있는데, 기존의 잘 설계된 코드베이스를 연구해 보라는 권유를 받았음
- 공개적으로 접근 가능한 코드베이스 중 소프트웨어 설계의 골드 스탠다드로 여겨지는 것은 어떤게 있는지 궁금함
## 1\. *추천 코드베이스*
- *대형/대표 프로젝트*
- Git, Postg…
------------------------------
https://news.hada.io/topic?id=22729&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0

안녕하세요. 닷넷데브 운영진 남정현입니다.

닷넷 개발자와 클라우드 엔지니어의 만남, .NET Universe CloudBro Edition에서 시작합니다!

이번 컨퍼런스에서는 개발자를 위한 DevOps 도구인 Aspire와 .NET 10의 강력한 DX를 완성하는 File-based App 기반을 새롭게 소개하며, Container, Kubernetes, Observability 등에 관한 업계 동향, 인사이트를 종합적으로 알아보실 수 있는 세션으로 구성될 예정입니다.

이번 미니 컨퍼런스는 다음주 목요일 (9/4) 저녁 6시 30분터 9시 30분까지, 역삼동 마루360 지하1층 성장 세미나룸에서 열립니다. 평소 데브옵스 기술과 컨테이너 기술에 관심이 많으셨던 분들께 인사이트를 드릴 수 있는 알찬 세션으로 구성하였습니다.

좌석이 한정되어 있어 빠른 신청이 필요합니다. 지금 바로 신청해주세요!

등록하기: https://event-us.kr/dotnetdev/event/110640

2

Today is the new semester for @CMUDBCMU Database Group's Intro to Database Systems! We're going harder into material than ever before. Projects are more challenging but you can use LLMs to help. We also have 10min talks each Wed from leading DB companies. Follow from home/prison on YouTube: 15445.courses.cs.cmu.edu/fall2

Everything is available for free to non-CMU students:
• Lectures on YouTube: youtube.com/playlist?list=PLSE
• Slides + Notes + Homeworks on course website.
• Project source code on GitHub: github.com/cmu-db/bustub
• Grading with Gradescope (see FAQ ➡️ 15445.courses.cs.cmu.edu/fall2)

Special thank you to our Affiliate companies for their support this academic year:
• ClickHouse
• DataStax
• dbt Labs
• Firebolt
• MotherDuck
• RelationalAI
• SingleStore
• SpiralDB
• PingCAP / TiDB
• Yellowbrick
• Yugabyte

How can people not enrolled in the class test their projects?
All of the source code for the projects are available on Github. There is a Gradescope submission site available to non-CMU students.CMU-DB 2025 Industry Affiliate Program Members
https://db.cs.cmu.edu/affiliates/
1
0
0
3
0
0
1

https://youtu.be/rVfRFd_26Q0?si=bkQhKROnEK2U8F22

김태호 작가의 인터뷰를 보면서 부끄러워졌다. 나는 훈련하고 있나? 집중 하고 있나? 생각해보면 그렇지 않은 채 달리고만 있었던 것 같다. 나도 50대 후반에 최고의 무언가를 만들고 싶고, 그러려면 지금부터라도 훈련을 시작해야겠다.

3
11
1
0
2