@2chanhaeng이찬행
@joonnotnotJoon 리드멘티님들 안녕하세요

Jaeyeol Lee
@kodingwarrior@hackers.pub · 561 following · 418 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
OSTEP 독학 일지 - H.1

Jaeyeol Lee @kodingwarrior@hackers.pub
본 기술 포스팅은 OSTEP(Operating Systems: Three Easy Pieces) 교재를 독학하며 xv6 커널 환경에서 시스템 콜을 구현하는 과정을 담고 있습니다. xv6 개발 환경 설정부터 시작하여, Hello World를 띄우고, 나아가 H.1 Intro Project 과제인 `getreadcount` 시스템 콜 구현에 대한 여정을 상세히 다룹니다. 시스템 콜 정의 방법과, 유저 모드와 커널 모드 간의 전환 과정, 그리고 각 코드 파일들이 어떻게 유기적으로 연결되는지를 `write` 시스템 콜을 예시로 들어 설명합니다. 특히, `readcount` 변수의 원자성을 보장하기 위해 `_Atomic` 지시어를 사용하고, 다중 프로세스 환경에서의 테스트를 통해 그 효과를 검증합니다. 이 글은 xv6 커널의 시스템 콜 구조를 이해하고, 실제 시스템 콜을 구현하며 발생할 수 있는 문제점을 해결하는 과정을 통해 운영체제에 대한 깊이 있는 이해를 제공합니다.
Read more →커뮤니티 부스 세군데 걸쳐있는자의 스불재.... Canva는 확실히 포스터 만들기 좋더라
명함 잘 뽑혔다
오늘은 명함 도착하는날....
Zig의 좋은 아이디어라고 생각하는 것 중 하나: 여러줄 문자열을 나타낼 때 앞에 \\를 붙여서 표현한다. Rust나 JS에선 여러줄 문자열에 들여쓰기를 해버리면 그 공백문자가 그대로 들어가버리지만 Zig는 그런 문제를 피하게끔 설계했다.
Zig’s Lovely Syntax - https://matklad.github.io/2025/08/09/zigs-lovely-syntax.html
파이콘에서 명함 뿌릴 수 있을 듯
자랑 맞음
사람들이 너므 젠지처럼 생겼다고 면접 볼땐 무조건 안경 쓰랬음
@z9mb1wwj 엄청 잘 어울리실듯함요
매일마다 튜사(@TuringAppleDev튜링의 사과 )로 출퇴근하는 사람으로서 혼밥하기 좋은 맛집 아카이브 중...... 태국음식점 마하차이 팟타이 괜찮군
@kodingwarriorJaeyeol Lee 이런 완전 마이너한 주제로 발표를 바꿔야겠어요
@joonnotnotJoon 오히려 다들 좋아할듯
발표자료 후다닥 만든 다음에 지원 넣어야지
@joonnotnotJoon 고퍼콘 참가신청 한적이 없는데 선생님 덕분에 정모하겠네요
매일마다 튜사에 일하러가는 기분 짜릿해!
헐, 나 언제 200명 초대 돌파한거임
@iblea 안녕하세요! 반갑습니다!
오늘은 정말 유익한 프로그래머 회식을 가졌다
@kodingwarriorJaeyeol Lee 님의 피자 맛집 소개 및 퇴사 기념 무료 핏짜
- 함수형팔이, 언어팔이, IDE팔이들의 무제한영업제공사건
- 소비자는 관측되지 않음
발표했더니 링크드인 컨텐츠가 생겼다
@kodingwarriorJaeyeol Lee 나름 싸피랑 네이버 부스트캠프도 했는데 그런 스펙 싹 지우고 걍 취준생1 돼버린...ㅋㅋㅋ
@2chanhaeng이찬행 아니... 나름 좋아보이는거 다 하신 것 같은데...
몇몇 후배들한테 "세상 어디가서 보기도 귀한 오프밋업 같은게 있을 수 있다"를 미끼로 해커스펍 가입을 유도하는 중
@2chanhaeng이찬행 완전 짱이네요
주제가 맛있네 ....
깔끔합니다.
(비 프로그래머는, 안경 속 달러를 프롬프트로 안보고 돈으로만 볼 것 같네요. 아마도.) @kodingwarriorJaeyeol Lee
@lionhairdino (반쯤 노렷습니다)
기승전 해커스펍 홍보 끝~
명함 디자인이... 나왔다...!!
FigJam에다가 아이패드로 필기하고 있는데 제법 괜찮은 듯. 피그마 매년마다 결제해서 쓰고 있는데, 굉장히 값어치를 한다...!! 원노트보다 훨씬 좋다...!!!
물론 필기한 것들은 적당히 정리해서 개인 위키에 박아두거나, 해커스펍 블로그글로 정리해서 올라갈 듯.
FigJam에다가 아이패드로 필기하고 있는데 제법 괜찮은 듯. 피그마 매년마다 결제해서 쓰고 있는데, 굉장히 값어치를 한다...!! 원노트보다 훨씬 좋다...!!!
Perl을 만든 언어학자 Larry Wall이 쓴 글 중에 종종 다시 읽어 보는 글
Human languages therefore differ not so much in what you can say but in what you must say. In English, you are forced to differentiate singular from plural. In Japanese, you don’t have to distinguish singular from plural, but you do have to pick a specific level of politeness, taking into account not only your degree of respect for the person you’re talking to, but also your degree of respect for the person or thing you’re talking about.
Programming is Hard, Let's Go Scripting...
그렇기 때문에 사람의 언어는 당신이 그렇다고 생각하고 있던 것과는 많이 다르다. 영어로 얘기할때는 단수와 복수를 확실히 구분해야만 한다. 일본어에서는, 단수와 복수를 구분할 필요는 없지만, 정중함의 정도를 조절할 줄 알아야 한다. 즉, 상대방에 대한 존경을 표현할 수 있는 정도를 선택해야 하고, 상대방의 입장에서 내가 존중 받아야 하는 정도를 생각해서 말해야 한다.
정보 리터러시 관련 의견을 보존하러 왔다. 우리는 흔히 영어 자료가 한국어 자료보다 낫다는 문화사대주의적 의견에 공감하곤 한다. 하지만 여기엔 숨은 의견이 여럿 있다. 하나씩 까보며 음미해보자.
영어 자료는 한국어 자료보다 낫다. => 왜 나을까? 도움이 되기 때문에. 왜 도움이 될까? => (진실에 가깝기 때문에, 다양한 경험이 전시되어 있기 때문에). 왜 진실에 가까울까? => 1차 출처에 가깝기 때문에. 왜 1차 출처에 가까울까? => 사용자가 다수이기 때문에 직접 사용하거나 번역되어 2차 출처로 기능하기 때문에. 왜 다양한 경험이 있을까? => 생산자가 자료 작성 시 영어를 선택할 확률이 한국어보다 높기 때문에.
그렇다면 우리는 영어 자료가 나은 이유를 구체적으로 표현할 수 있다.
- (일반적으로) 한국어 웹보다 영어 웹이 더 크기 때문에 원하는 자료를 구할 확률이 더 높다.
- (일반적으로) 한국어 웹보다 영어 웹에서 1차 출처에 가까운 자료를 구할 확률이 더 높다.
탐색 공간을 넓히고, 정보 전파 과정에서의 왜곡을 줄이기 위해서 영어 웹 탐색이 효과적이다. 다만 영어 웹이 "언제나" 좋은 건 아니다. 한컴오피스 자료가 미국에 많겠는가, 아니면 한국에 많겠는가? 1차 출처에 가까운 곳을 향해 왜곡을 줄이고, 그 안에서 탐색 공간을 최대한 효율적으로 넓혀야 한다.
영어 검색이라는 피상적인 행위에서 벗어나 정보 탐색의 본질을 좇는 것이 좋다.
@kodingwarriorJaeyeol Lee 이제 풀타임 Fedify 컨트리뷰터로...
@2chanhaeng이찬행 마지막으로 하던 프로젝트 안고가긴 했는데 비중은 많이 가져갈 수 있긴 하겠네요....
퇴사처리됨. 짱.
딥러닝 제대로 이해하기 - 딥러닝의 핵심 개념부터 최신 기법까지 이론과 실제의 균형을 담은 깊이 있는 안내서 (사이먼 J. D. 프린스 (지은이), 고연이 (옮긴이) / 제이펍 / 2025-08-28 / 38,000원) https://feed.kodingwarrior.dev/r/rLZ6TW
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=369510410&partner=openAPI&start=api
좋은 내용이였다. 앞으로 에이전트 매니저 역할을 겸해야 하는 개발자들이 생각해볼만한.
Managing implementations you don't understand is a problem as old as civilization. (and every manager in the world already deals with this!) Find an abstraction layer you can verify!
How does a CTO manage an expert? -> Acceptance Tests
How does a PM review an Eng feature? -> Use the product
How does a CEO check the acccountant? -> Spot check key facts
타입시스템으로 힌들리-밀너 타입 추론기 만들고 있는데 어떻게 최적화를 하면 좋을지 모르겠다. https://github.com/notJoon/typetype
@joonnotnotJoon 이러시는 EU가 있을거 아니에요
이번 주 발표하는 거
vim-fugitive 만한 물건이 없어...... Vim 이래서 못 버려....
추천받은 집으로 저녁 먹으러 갔는데 무슨 입구 거의 바로 앞에 사각지대 낭낭한 주차장 출입구 있어서 이 정도는 해야 둘이 먹다 하나 죽어도 모를 맛집 되는구나... 하고 감탄했어
트위터에도 썼지만, 최근에 퇴사한 동료에게서 제 긍정적임을 아주 높이 사고 세상에 저 같은 사람이 더 필요하다는 칭찬을 들었는데 아주 기분이 좋았습니다. 제 스킬에 대해선 그냥 괜찮다고만 했지만 😒😒 아무튼 냉소적으로 행동하지 않기 위해 한 노력이 인정 받은 듯한 느낌 🫶✌️
@z9mb1wwj 완전 최고네요
We're thrilled to announce Fedify 1.8.1, a mega release made possible through the incredible efforts of contributors from South Korea's #OSSCA (Open Source Contribution Academy). This release marks a significant milestone in #Fedify's development, bringing major architectural changes, new packages, and numerous enhancements across the board.
Note: Version 1.8.0 was skipped due to a versioning error.
🎉 Major Milestone: Monorepo Architecture
Fedify has been restructured as a #monorepo, consolidating all packages into a single repository with unified versioning. This change streamlines development and ensures all packages are released together with consistent version numbers.
Consolidated Packages
All existing Fedify packages now live under one roof:
- @fedify/fedify — Main library
- @fedify/cli — CLI toolchain
- @fedify/amqp — AMQP/RabbitMQ driver
- @fedify/express — Express integration
- @fedify/h3 — h3 framework integration
- @fedify/postgres — PostgreSQL drivers
- @fedify/redis — Redis drivers
🆕 New Packages
This release introduces four new packages to the Fedify ecosystem:
- @fedify/elysia — Elysia integration for Bun-powered applications
- @fedify/nestjs — NestJS integration for enterprise Node.js apps
- @fedify/sqlite — SQLite driver compatible with Bun, Deno, and Node.js
- @fedify/testing — Testing utilities with mock
Federation
andContext
classes
@fedify/fedify
Custom Collection Dispatchers
A powerful new feature that allows you to create custom collections beyond the standard ActivityPub collections. This enables implementation of domain-specific collections while maintaining federation compatibility.
Contributors: ChanHaeng Lee [#310, #332]
- Added comprehensive types and interfaces for custom collection handling
- New methods on
Federatable
interface:setCollectionDispatcher()
andsetOrderedCollectionDispatcher()
- Added
getCollectionUri()
method to theContext
interface - Full support for paginated custom collections
Compare-and-Swap (CAS) Support for KV Stores
Key–value stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.
- Added optional
KvStore.cas()
method - Implemented in
MemoryKvStore
andDenoKvStore
- Useful for implementing distributed locks and counters
Fediverse Handle Utilities
New utility functions make working with #fediverse handles more convenient.
Contributors: ChanHaeng Lee [#278]
parseFediverseHandle()
— Parse handles into componentsisFediverseHandle()
— Validate handle formattoAcctUrl()
— Convert handles to URLsFediverseHandle
interface for type safety
Enhanced HTTP Request APIs
Contributors: Lee ByeongJun [#248, #281], Hyunchae Kim [#51, #315]
- Added
LookupWebFingerOptions.maxRedirection
option for controlling redirect behavior - APIs now support
AbortSignal
for request cancellation - New
DocumentLoaderOptions
interface - Added
signal
options toLookupObjectOptions
,LookupWebFingerOptions
, andDoubleKnockOptions
@fedify/cli
New Commands and Enhancements
The CLI has received significant improvements thanks to our OSSCA contributors:
fedify webfinger
Command
Contributors: ChanHaeng Lee [#260, #278], KeunHyeong Park [#311, #328]
Look up WebFinger information for any fediverse resource:
- Supports handles (
@user@server
) and URLs --user-agent
option for custom User-Agent headers--allow-private-address
for local testing--max-redirection
to control redirect following
fedify nodeinfo
Command
Contributors: Hyeonseo Kim [#267, #331, #168, #282, #304]
Replaces the deprecated fedify node
command with improved terminal rendering.
Enhanced fedify lookup
Command
Contributors: Jiwon Kwon [#169, #348, #261, #321]
- Terminal-specific image display for Kitty, WezTerm, Konsole, Warp, Wayst, st, and iTerm
-o
/--output
option to save results to files
Improved fedify inbox
Command
Contributors: Hasang Cho [#262, #285], Jang Hanarae [#191, #342]
--actor-name
and--actor-summary
options for customizing temporary actors- Now displays object types contained in activities
fedify init --dry-run
Contributors: Lee ByeongJun [#263, #298]
Preview project initialization without creating files.
Better Terminal Support
Contributors: Cho Hasang [#257, #341]
Correctly handles color output based on TTY detection and NO_COLOR
environment variable.
@fedify/elysia
Contributors: Hyeonseo Kim [#286, #339]
New Elysia integration brings Fedify to Bun-powered applications with a simple plugin interface:
import { Elysia } from "elysia";
import { fedify } from "@fedify/elysia";
const app = new Elysia()
.use(fedify(federation, { /* options */ }))
.listen(3000);
@fedify/nestjs
Contributors: Jaeyeol Lee [#269, #309]
Enterprise-ready NestJS integration with dependency injection support:
import { FedifyModule } from "@fedify/nestjs";
@Module({
imports: [
FedifyModule.forRoot({
kv: new MemoryKvStore(),
queue: new InProcessMessageQueue(),
origin: "https://example.com",
}),
],
})
export class AppModule {}
@fedify/sqlite
Contributors: An Subin [#274, #318]
SqliteKvStore
implementation compatible across all major JavaScript runtimes:
import { SqliteKvStore } from "@fedify/sqlite";
const kv = new SqliteKvStore("./fedify.db");
@fedify/testing
Contributors: Lee ByeongJun [#197, #283]
Comprehensive testing utilities with mocking support for Fedify applications:
import { MockFederation, MockContext } from "@fedify/testing";
const mockFederation = new MockFederation();
const mockContext = new MockContext();
// Track sent activities with full metadata
// Support custom path registration
// Multiple activity type listeners
🙏 Acknowledgments
This release represents an extraordinary community effort, particularly from the participants of South Korea's OSSCA (Open Source Contribution Academy) (Note: page in Korean). We extend our heartfelt thanks to all contributors:
Core Contributors
- ChanHaeng Lee (
@2chanhaeng이찬행) — Custom collections, fediverse handles, WebFinger command
- Lee ByeongJun (
@joonnotnotJoon) — WebFinger redirections, dry-run, testing utilities
- Hyunchae Kim (
@r4bb1t) — AbortSignal support
- Hyeonseo Kim (
@gaebalgom개발곰) — Elysia integration, nodeinfo command
- Jaeyeol Lee (
@kodingwarriorJaeyeol Lee) — NestJS integration
- An Subin (
@nyeongAn Nyeong (安寧)) — SQLite driver
- Jiwon Kwon (
@z9mb1wwj) — Terminal image display, output options
- Hasang Cho (
@crohasang크롸상) — Color output handling, actor customization
- Jang Hanarae (
@meneleHanal Ae) — Activity object type display
- KeunHyeong Park (
@w8385박근형) — WebFinger redirect options
Test Infrastructure Contributors
- Oh Daeun (
@ooheundaoed) — Fixed PostgreSQL test race conditions [#346, #350]
- Song Hanseo (
@songbirds) — Test stability improvements for Redis and code generation [#344, #347]
- Kim Jonghyeon (
@woaol벨) — CLI version management and documentation fixes [#306, #329, #330, #343]
Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.
Migration Guide
Updating from Previous Versions
If you're using separate Fedify packages, update all packages to version 1.8.1:
{
"dependencies": {
"@fedify/fedify": "^1.8.1",
"@fedify/cli": "^1.8.1",
"@fedify/express": "^1.8.1"
}
}
All packages now share the same version number, simplifying dependency management.
Breaking Changes
There are no breaking changes in this release. All existing code should continue to work without modifications.
What's Next
With the monorepo structure in place and new integrations available, we're excited to continue improving Fedify's developer experience and expanding its capabilities. Stay tuned for more updates, and thank you for being part of the Fedify community!
For detailed technical information about all changes, please refer to the full changelog.
Fedify is an open-source project that helps developers build federated server applications powered by ActivityPub. Join us on GitHub or Discord to contribute or get help!
ZelliJ는 Claude Code 여러개 돌리기에도 좋긴 한데, Fedify 기반의 서비스 만들기에도 괜찮은듯. 탭 여러개 띄워놓고 컨텍스트 스위칭하기보다는 ZelliJ로 화면 분할해놓고 한쪽은 로그 띄우고 한쪽은 fedify cli로 이것저것 테스트해보고
어쩔때는 Zed가 좋은 것 같은데, 어쩔 때는 Neovim이 좋음. 수제코딩할때 Zed랑 Neovim이랑 아등바등하게 괜찮은데, 빠릿빠릿하고 에디터 환경에 대한 제어권이 온전히 나에게 있는 것을 꼽자면 Neovim. 플러그인이 사실상 0인데, 있을 것들은 다 들어가 있고 수제로 코딩하는 맛이 타격감이 괜찮은건 Vim 모드가 가미된 Zed.... 프로젝트를 할 때는 Neovim을 주로 쓰기는 하지만, 학습할때는 Zed를 쓰는 빈도가 좀 있는 듯.
지금 만들고 있는 NestJS 기반의 연합우주 앱도 의도적으로 Zed로 수제코딩 하고 있음. 퐝션? 그런거 쓰지 마세요
그나저나 Hackers' Pub 마스코트 고양이에 아직 이름이 없는데, 어떤 이름을 지어 주면 좋을까요? 🤔
@hongminhee洪 民憙 (Hong Minhee) pub을 좀 더 살려서 puppy라 합시다
We'd like to recognize some excellent contributions from our #OSSCA (Open Source Contribution Academy) participants who have been working on #Fedify.
@gaebalgom개발곰 contributed PR #339, which introduces the
@fedify/elysia
package to provide Elysia integration for Fedify. This work addresses issue #286 by creating a plugin that enables developers using #Bun and #Elysia to integrate Fedify's #ActivityPub capabilities into their applications. The contribution includes the core integration module, documentation, examples, and proper monorepo configuration, making Fedify accessible to the Elysia community.
@r4bb1t submitted PR #315, implementing comprehensive
AbortSignal
support across multiple APIs to resolve issue #51. This contribution adds request cancellation capabilities not only to lookupWebFinger()
but also to lookupObject()
, DocumentLoader
, and the HTTP signature authentication flow (doubleKnock()
), allowing developers to properly handle timeouts and abort ongoing requests throughout the entire request chain. The implementation includes extensive test coverage for cancellation scenarios across all affected components and lays the groundwork for adding --timeout
options to various CLI commands like fedify lookup
, fedify webfinger
, and fedify nodeinfo
, making federated applications more robust and responsive.
@ooheundaoed addressed a testing infrastructure issue with PR #350, fixing a race condition in PostgreSQL message queue tests that was causing intermittent failures (issue #346). By adding explicit initialization before concurrent message queue listeners, this fix prevents table creation conflicts that were affecting test reliability, ensuring more consistent PR testing for all contributors.
@songbirds provided two test stability improvements with PR #344 and PR #347. The first PR adds skip guards to
RedisKvStore
tests as a workaround for a known Bun runtime issue, keeping the test suite functional while awaiting an upstream fix. The second PR resolves a race condition in the code generation process by randomizing output filenames, preventing conflicts during parallel test execution. These contributions help maintain a stable testing environment for the project.
Thank you all for your contributions to Fedify. Your work helps make federated social networking more accessible to developers.
xv6 부팅에 릭롤링 끼얹기. 재밋잖아~ 한잔해~
Hackers' Pub 스티커 왔다!
@hongminhee洪 民憙 (Hong Minhee) 몇개 주문하셨나요 👀👀👀
PHP도.. 현대적인 언어...
@kodingwarriorJaeyeol Lee OS 캐리 좀요
@joonnotnotJoon 특별히 해드립니다
시간 날 때 언어 관련 툴링들을 어떻게 구현하는지에 대한 글을 써봐야겠다. 린터, 테스트 커버리지, 프로파일러, 디버거에 대해 써보고 싶지만 과연 나의 게으름이 잘 버텨줄지는 모르겠다
@joonnotnotJoon 캐리좀
웹 서버 프레임워크를 밑바닥에서부터 직접 만들고(!!!!) 거기다가 fedify 끼얹으면 재밌는 챌린지가 될 듯
@hongminhee洪 民憙 (Hong Minhee) 님도 샤라웃을 받아야 하거늘....!!