Profile img

Jaeyeol Lee

@kodingwarrior@hackers.pub · 671 following · 487 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

2025-09-07 오늘의 작업한 내용 메모

https://github.com/cosmoslide/cosmoslide/pull/14

게시글 작성 기능까지는 안 갔지만, 연합우주 네트워크를 통해서 Create(Note), Announce(Note) 등의 액티비티가 들어왔을때 그것이 타임라인 화면에 노출되게 하는 기능을 작업했다. Actor 정보를 가져오는 과정에서 어떤 Actor는 lookup 하는 과정에서 Timeout 에러 뜨고, 어떤 Actor는 401 Unauthorized 뜨고, 어떤 Actor는 Person이 아니었어서 게시글 가져오는건 실패했는데... 이건 지속적인 개밥먹기를 꾸준히 해봐야 제대로 개선이 될 것 같음.

3

@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior) :vim: 이렇게 나오는구나.... 내가 만약에 A라는 계정이랑 B라는 계정을 둘 다 팔로우 하고 있는데, A라는 계정이 쓴 글에 B 계정이 답글달면 A, B 각각 둘의 팔로워의 인박스에 액티비티가 전달이 되어야 하는? 뭐 그런 구성인가? 자세한 분석을 위해서 조심스럽게나마 계정 몇개 좀 팔로를 해둘 필요는 있어보이는데...

액티비티가 어떻게 동작하고 있는지 관찰중이다
0

작업하다보면 어드민 붙이고 싶은 충동이 확 든다.....

AdminJS를 붙이자니 의존성이랑 지옥의 한판싸움을 해야할 것 같고, 그렇다고 직접 만들자니 어.... 이건 좀... 시간이 너무 많이 걸리겠다... 싶기도 하고, 노코드 툴 처럼 뚝딱하고 붙일 수 있는 어드민도구 어디 없나

0

작업하다보면 어드민 붙이고 싶은 충동이 확 든다.....

AdminJS를 붙이자니 의존성이랑 지옥의 한판싸움을 해야할 것 같고, 그렇다고 직접 만들자니 어.... 이건 좀... 시간이 너무 많이 걸리겠다... 싶기도 하고, 노코드 툴 처럼 뚝딱하고 붙일 수 있는 어드민도구 어디 없나

2

NestJS로 페디버스 앱 만들고 있긴 한데, 이걸 다른 사람한테 나눠주려니 어떻게 나눌지가 애매함.

당장은 TypeORM 마이그레이션 파일도 안 만들고, dev모드 켜놓고 계속 작업 중이긴 한데... 테일스케일 각자 세팅시키고, 다 같이 각자만의 로컬 환경 인스턴스 돌리면서 빈칸채우기 시킬 수도 없다....

만약, 이런 방법대로 한다면, 인스턴스 운영하고 있는 각 모더레이터가 특정 몇몇 인스턴스로 액티비티가 전송안되는 꼬라지 보고 "이건 또 뭔...." 할 것 같아.. 흑흑..

1

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
2

클러스터화는 단점이기도 하지만 장점이기도 한게 제가 생각하기에 다른 커뮤니티 서비스랑 트위터류의 가장 큰 차이점은 적당한? 느슨한? 클러스터화라고 생각하거든요 트위터만 봐도 인플루언서-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 →
20
3
1
2
0

Cosmoslide 계속해서 작업할 것 같습니다.

  • Remote Follow 기능 관련해서 마무리
  • 게시글 기능 그리고 그와 관련된 Federation 로직 작성

그리고... Hackers Public 2차 모집 마감

1
0
2

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

7
9
2
0
3
0
2
0
0

정치적인 컨텐츠에 대한 생각

Jaeyeol Lee @kodingwarrior@hackers.pub

이 글은 사회생활에서 금기시되는 정치 이야기가 우리의 삶과 얼마나 밀접하게 연결되어 있는지를 고찰합니다. 저자는 정치적인 것이 단순히 정부나 정책에만 국한된 것이 아니라, 사람이 개입하는 모든 영역에 존재한다고 주장합니다. 다양성을 존중하는 문화를 만드는 것조차 정치적 행위로 볼 수 있으며, 정치 혐오가 만연한 사회일수록 정치에 대한 관심이 더욱 필요하다고 강조합니다. 특히, 무심코 사용하는 표현이나 접하는 콘텐츠가 특정 정치적 의도를 담고 있을 수 있음을 경계하며, 정치적 프레임에 갇히지 않기 위해서라도 사회와 정치에 대한 꾸준한 관심이 중요하다고 역설합니다. 이 글은 정치적 무관심이 오히려 위험할 수 있음을 시사하며, 독자들에게 비판적 사고와 균형 잡힌 시각을 갖도록 촉구합니다.

Read more →
15

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

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

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

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

5

2025-09-03 오늘의 작업한 내용 메모

https://github.com/cosmoslide/cosmoslide/pull/13

  • 이전 버전까지는 Cosmoslide 의 모든 계정은 public이고 팔로우 버튼을 누르면 바로 팔로우가 되는 로직으로 구현이 되어 있었음.
    • 즉, Follow 액티비티를 받으면 액티비티를 보낸 액터의 inbox에다가 바로 Accept(Follow) 액티비티를 보내는 구성
  • 이번에 작업한 내용은 각각의 계정을 private으로 변환할 수 있고, private 계정에 팔로우 버튼을 눌렀을때 바로 팔로우가 되는게 아니라 팔로우 요청으로 처리되도록 하는 작업이었음
    • 즉, Follow 액티비티를 받으면, manuallyAcceptsFollowers 옵션이 false인 경우에만 Accept(Follow) 액티비티를 보냄
  • 팔로우 요청 관리하는 화면 바이브코딩으로 적당히 빠르게 만들고..... 팔로우 요청을 수락하거나, 팔로우 요청을 거절하는 액션 자체는 서버 측 비즈니스 로직에서 처리한다기 보다는 가능하면 Federation에서 처리하도록 했음.
    • 즉, 팔로우 요청 수락버튼을 누르면 Accept(Follow) 액티비티가 전송되고, 팔로우 요청 거절 버튼을 누르면 Reject(Follow) 액티비티가 전송되는 방식

로컬 환경에 있는 서로 다른 두 액터끼리는 잘 되는걸 확인했는데, 서로 다른 서버의 액터끼리 잘 되는지는 좀 더 테스트가 필요함.

이번 주말까지는 게시글 작성하고 원격 서버 타임라인에 노출되는 것까지 어떻게 되긴 할 듯.

2
1

https://www.typescriptlang.org/docs/handbook/mixins.html

Typescript에 Mixin 기능은 있는데, 정작 내가 원하는 형태로 지원하는 기능이 아니다. 내가 원하는건 그냥 dart 마냥 클래스의 메서드를 확장하는 것 그 이상 그 이하도 아닌데.... 흑흑...

Dart의 경우


mixin Dog {
  void walk() { ... }
}

mixin Fish {
  void swim() { ... }
}

mixin Bird {
  void fly() { ... }
}

class Animal with Dog, Fish, Bird {
   ...
}

main() {
  final animal = Animal();
  animal.fly();
  animal.swim();
  animal.walk();
}

이런 느낌의 코드를 짜는게 가능하다.

Typescript도 유틸리티성 함수를 묶어서 mixin 문법처럼 매끄럽게 클래스에 포함시킬 수 있는 뭔가가 있었으면 좋겠다.

2

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

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

✨ Hackers' Public 첫 오프라인 모임! ✨

Hackers' Pub 사용자들의 자발적인 모임, Hackers' Public이 📅 9월 14일(일) 오후 3시 ~ 6시 열립니다.

이번 모임에서는 많은 분들이 흥미로워할 두 가지 발표가 준비되어 있습니다:

  • 🎨 Code As a Canvas: 코드에서 예술작품이 되기까지
  • ✍️ 폰트는 어떻게 만들어지는가 – Neo둥근모 개발 후일담

또한 자유롭게 교류할 수 있는 네트워킹 시간도 마련되어 있으니 많은 관심 부탁드립니다 🙌

현재는 2차 모집 단계이며, 👉 신청은 포스터의 QR코드 또는 http://public.hackers.pub 에서 가능합니다. (두 경로 모두 동일한 이벤트 페이지로 연결됩니다)

2차 모집 기간은 9월 7일까지이며, 완판이 되었더라도 참가자 신청 대기하신 분 중에서 두분 정도 선정할 예정입니다!

Hackers Public 1회차 모임 포스터
6
2
1

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
6

우부콘 코리아 2025에서 **"연합우주(Fediverse)란 무엇인가"**를 주제로 소개하는 세션을 가졌었는데, 그 때 쓰던 발표자료 한번 만들어놓으니까 "연합우주는 이런겁니다" 하고 던져주기 좋은 듯.....

발표자료는 여깄다네요... https://slides.kodingwarrior.dev/fediverse-onboarding-ubucon2025.pdf

13
0
1
0
0
0
0

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

8
0
1
1