발표 경력이 두자릿수는 넘어가지만, 시간이 촉박한 상황에서 발표하는건 여전히 쫄린다...
Jaeyeol Lee
@kodingwarrior@hackers.pub · 667 following · 483 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
마크다운 지원이... 시급하다....
- OSSCA 2025 성과공유회 발표
- 브라우저 스터디 Chapter 2 풀이글? 작성
- 브라우저 스터디 Chapter 3 연습문제 밀기
- 코스모 슬라이드 개발
- 면접 준비
우리집 cmake는 cargo, pnpm, python도 호출한다?
브라우저 구현하는데 폰트 가로폭 측정함수가 너무 느려서 디버깅하다가 결국 측정함수 사용을 최소화하고, 인메모리 캐싱하는 전략을 썼다. 결과적으론 성공인데, ChatGPT한테 물어보면서 리눅스 구현체 vs macOS 구현체의 심연을 들여다보는 중....
Chapter 2보다 Chapter 3 쪽이 풀 얘기가 많다..... 하이고...
브라우저 구현하는데 폰트 가로폭 측정함수가 너무 느려서 디버깅하다가 결국 측정함수 사용을 최소화하고, 인메모리 캐싱하는 전략을 썼다. 결과적으론 성공인데, ChatGPT한테 물어보면서 리눅스 구현체 vs macOS 구현체의 심연을 들여다보는 중....
Jaeyeol Lee shared the below article:
도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 #2
자손킴 @jasonkim@hackers.pub
이 글은 동일 네트워크 내 장비들이 L2 스위치를 통해 통신하는 방식에 대해 설명합니다. MAC 주소를 기반으로 통신하는 L2 계층은 통신 시작 시 IP 주소만 알고 MAC 주소를 모르는 상황을 해결하기 위해 ARP를 사용합니다. MAC 주소와 IP 주소의 역할, 이더넷 프레임 구조, 그리고 ARP의 동작 방식과 한계점을 상세히 다룹니다. 또한 L2 스위칭의 핵심인 MAC 주소 테이블과 flooding 과정을 설명하고, MAC 주소 중복 문제와 VLAN 기술을 소개합니다. 마지막으로, OVS 환경에서 VLAN 설정 시 vlan_mode와 tag의 의미를 명확히 구분하여 네트워크 구성에 대한 이해를 돕습니다.
Read more →uv는 Python 생태계에 지난 10년간 등장한 최고의 혁신
예전엔 Python의 툴링이 충분하다고 들었지만, 이제 Python 개발자들이 npm이나 cargo, bundler 같은 lockfile 기반 생태계를 경험하고 나서 그 장점을 깨닫는 걸 보니 속이 시원해짐
😂🤣
🐍 .NET에서 Python을 가장 가볍게 실행하는 방법
Python 코드를 C# 애플리케이션에서 실행해야 하는데 복잡한 설정과 보일러플레이트 코드가 부담되셨나요?
DotNetPy를 만들었습니다: ✅ Zero Boilerplate - GIL 관리나 Source Generator 불필요 ✅ AOT 친화적 - Native AOT 시나리오를 위해 설계 ✅ 최소한의 러닝 커브 - 몇 줄로 Python 실행 ✅ Apache 2.0 라이선스
Python 표현식 평가부터 복잡한 데이터 교환까지, pythonnet이나 CSnakes보다 훨씬 가벼운 대안입니다.
사용 예시: Python.Initialize(pythonLibraryPath); var executor = Python.GetInstance(); var result = executor.Evaluate("sum([1,2,3,4,5])"); Console.WriteLine(result?.GetInt32()); // 15
🔗 GitHub: https://github.com/rkttu/dotnetpy
이번 달은 코로나 위염 알레르기 야근으로 그냥 너무 힘들다
@r4bb1t톡기 건강하세요 ㅜㅜㅜㅜ
https://youngseokch.github.io/game-of-life-rs/
오늘은 Rust + WebAssembly를 써보면서 콘웨이의 Game of Life를 만들어봤습니다.
문득 wasm은 LLVM IR과 기계어 사이에 있으면서 JIT 엔진이 읽는데 어떻게 설계되었을까..? 궁금해집니다.
존 카맥, 리누스 토르발스 등등 90년대 시절 프로그래머들이 살아있는 전설급 프로그래머로 여겨지는 이유를 썰 풀듯 드립치며 얘기하는 영상. 이유는 간단하게 말하면 오늘과는 다르게 그 시절엔 하드웨어 메모리를 어떻게든 쥐어짜서 로직을 짜야했고, pip install이나 클로드나 제미나이같은 것도 없었고 튜토리얼 지옥에 빠질 일도 없었고 대신 컴파일러 지옥에서 살았기에 가능했다는 얘기. 물론 그들이 선구자였기에 그 버프를 받아서 전설급이 되었을 거란 얘기도 있다. 보면서 그 때는 정보가 적었기에 폐관수련이 필수였는데 오늘날엔 오히려 정보가 넘쳐나고 풍부해서 그게 좀 덜 하는 걸까 싶기도 했다.
Jaeyeol Lee shared the below article:
Migrate to Misskey from Iceshrimp
AmaseCocoa @cocoa@hackers.pub
This post outlines the process of migrating from Iceshrimp, a fork of Firefish (itself a fork of Misskey v12), to Misskey, starting from v13. The author details their reasons for migrating, including ongoing reimplementation efforts in .NET, issues with media rendering, and a general preference for Misskey. A comparison table highlights key differences between Iceshrimp and Misskey, such as translation API, note editing capabilities, MOTD, note length limits, search engine options, FTT, and social login. The guide provides a step-by-step walkthrough, including backing up and rolling back the database, running specific SQL commands to align the database schema with Misskey, and installing Misskey without initializing it to prevent data corruption. Troubleshooting tips are included for common issues like login failures and client loading problems. This migration guide offers valuable insights for those looking to transition from Iceshrimp to Misskey, ensuring a smoother process.
Read more →인용 테스트
일주일에 Hackers' Pub 한 피쳐 마이그레이션 기여를 해볼 것이다
@kodingwarriorJaeyeol Lee 워크스페이스 별로 LSP를 켜고 끌 수 있어야…
@hongminhee洪 民憙 (Hong Minhee) zed는 이게 되는군요.... So Sad.....
Neovim 같은 에디터에서 Language Server를 일일이 세팅하다보면, typescript-language-server는 deno lsp와 충돌하게 되고, biome는 eslint 같은거랑 충돌이 되어서 스크립트로 일일이 예외처리를 해줘야 하는데, 이런 충돌나는 요소를 코드 레벨에서 우아하게 제어할 수 있는 방법이 어디 있을까? 사용가능한 랭귀지 서버를 배열의 형태로 나열하고, 사용가능한 포매터 역시 배열의 형태로 나열하기만 해도, 이걸 우아하게 처리할 수 있는 인터페이스가 필요하다...
음. 적다보니까 걍 충돌 안나는것만 촤라락 나열하고, 나머지는 그냥 옵셔널하게 추가하던가 해야겠다 -_-; 귀찮...
Neovim 같은 에디터에서 Language Server를 일일이 세팅하다보면, typescript-language-server는 deno lsp와 충돌하게 되고, biome는 eslint 같은거랑 충돌이 되어서 스크립트로 일일이 예외처리를 해줘야 하는데, 이런 충돌나는 요소를 코드 레벨에서 우아하게 제어할 수 있는 방법이 어디 있을까? 사용가능한 랭귀지 서버를 배열의 형태로 나열하고, 사용가능한 포매터 역시 배열의 형태로 나열하기만 해도, 이걸 우아하게 처리할 수 있는 인터페이스가 필요하다...
conform.nvim은 챕터 2 진도 다 끝나고 세팅해야겠다. 랭귀지 서버랑 린터 세팅한 것으로 할 일은 다 했어......
악기 연습에 쓰려고 만든, 정해진 코드 진행에서 3도/5도 워킹 라인을 랜덤 생성하는 앱.
from scratch에서 2시간 가량 써서 만들었습니다.
프런트엔드는 잘 몰라서 그냥 tailwind 쓰고 카드 나열했네요 😅
Ruff도 세팅 끝냈다. 굿
Mason, lspconfig 같은거 덕지덕지 붙여가면서 랭귀지 서버 엄청 게으르게 관리하고 있었는데 이번 브라우저 스터디를 계기로 좀 빡세게 세팅중
https://github.com/malkoG/dotfiles/commit/785627672b8833c48924bd7b5e023eb3d1213544
원래 있던 랭귀지 서버 설정은 싹 다 날려버리고, Neovim 0.11 기준 환경으로 세팅 완료
Mason, lspconfig 같은거 덕지덕지 붙여가면서 랭귀지 서버 엄청 게으르게 관리하고 있었는데 이번 브라우저 스터디를 계기로 좀 빡세게 세팅중
오늘은 개발환경 세팅의 악마가 될 것이다 (브라우저 스터디에 최적화된 개발환경 맞출겸 Neovim 개발환경 갈아엎을 것이라는 뜻)
mermaid로 다이어그램 그릴 일이 요즘 많은데 일단 메모..
특히 복잡한 그래프를 평면으로 그릴 수 있으면 적극적으로 도입해야겠다
집에 언어학 책들이 너무 많고 앞으로 볼 일이 없을 것 같아 책장 정리도 할 겸 처분 중이다...물론 이 중에 제대로 완독한 건 절반 좀 넘게밖에 없지만 ㅋㅋ
X(트위터)에서 저는 대부분 개발자 분들과 팔로우 맺어져 있고, 특별히 정치색을 내는 분들이 안계셔서 정치 글들은 눌러서 본적도 없습니다만, 최근 몇 달간, 흔히 말하는 극우적인 성향의 글들이 추천으로 계속 뜨네요. 내 알고리즘이 오염된건가... 완전 개발자 얘기들만 찾아다니는데 왜 그럴까요.
@lionhairdino 미국 타임라인부터 MAGA 파가 많긴 합니다.
@qria큐리아
@kodingwarriorJaeyeol Lee 오… 큐리아 님 어서오세요!!
@hongminhee洪 民憙 (Hong Minhee) @qria큐리아 헉, 아는 사이신가 보군요...!!
트위터 추방된지 어언 5일… 뭔가 디톡스되는 기분이다…
@badwolf.bsky.socialbadwolf 저도 그렇게 느끼긴 햇어요
@kodingwarriorJaeyeol Lee 그때쯤이면 점심은 드시고 오시나요?
@2chanhaeng초무 같이 드시죠
저질러 버리다
@2chanhaeng초무 뭐야, 오셨어요? 12시 반~1시까지 갈게유
@qria큐리아 안녕하세요! 반갑습니다!
오, 후반부는 tkinter를 skia, sdl로 대체하는구나
browser.engineering 스터디 중인데, 일주일에 최소 한 챕터 진도나가고 한챕터 연습문제 싹쓸이 할 때마다 풀이 글을 올려보려고 한다. browser.engineering 책 검색하면 해커스펍이 상단에 뜨게 하는 큰 그림....!!
데이터 애플리케이션 중심 설계를 읽고 있는데, 이걸 읽다보니 간혹 유튜브 스트리밍에서 채팅 순서가 내가 채팅방에서 보는 거랑 실제 방송 화면에 표기되는 게 다르게 나왔던 부분이나 새로고침 했을 때 댓글이 사라졌다 생겼다 하는 이유를 어느정도 추측해볼 수 있게 된 것 같다. 물론 완전히 그 이유 때문인지는 모르겠지만, 그런 이유가 아닐까? 하고 지레 짐작 해볼 수 있는 감이 생긴 것 같다.
@jakeseo 요즘 들어 DDIA 스터디가 유행하는군요
튜사에서 어차피 원격으로 할 바에는 차라리 다음에 갈 때는 맥미니를 걍 통째로 들고 가볼까🤔
@2chanhaeng초무 Don't... Do... That,,,,
항상 큼직하게 쓰다 탈고 못 한 초안이 많아서, 좀 가벼운 글 발행합니다. 지난주의 헛짓: https://eonj.github.io/trouble.log/2025-10-23.cloudflare-api-dns-record-edit-etc/
트위터하고싶다 트위터 리트윗 하고싶다
브라우저 스터디 기록 (1)
Jaeyeol Lee @kodingwarrior@hackers.pub
이 글은 Web Browser Engineering 교재를 독학하며 연습문제를 풀이하는 과정을 담고 있습니다. 저자는 추상화 수준에 대한 고민을 드러내며, URL 클래스의 request 메서드 대신 Connection 클래스를 도입하여 소켓 관리를 더 자연스럽게 처리했습니다. 또한, 타입 힌트 적용과 pytest를 이용한 유닛 테스트 환경 구축 등 실습 환경을 풍성하게 구성하는 데 LLM의 도움을 받아 효율성을 높였습니다. 연습문제 풀이에서는 keep-alive 지원의 중요성을 강조하며, TCP handshake 비용 절감 여부를 직접 실험해볼 것을 권장합니다. 리다이렉션 문제에서는 Location 헤더의 다양한 케이스 처리와 최대 리다이렉션 횟수 제한을 고려해야 함을 지적합니다. 캐싱 문제에서는 Cache-Control 헤더의 다양한 옵션에 대한 처리 방법을 제시하고, 압축 문제에서는 Transfer-Encoding: chunked 헤더 처리의 중요성을 강조합니다. 전반적으로 이 글은 단순한 문제 풀이를 넘어, 브라우저 엔진의 동작 원리를 깊이 이해하고 실제 코드에 적용하는 과정을 보여줍니다. 독자들은 이 글을 통해 연습문제 풀이에 대한 힌트를 얻을 뿐만 아니라, 브라우저 개발에 대한 실질적인 인사이트를 얻을 수 있을 것입니다.
Read more →디버깅 이쁘게 출력하는건 진짜 예술적으로 뽑아주는 것 같아요 ㅋㅋ 구분되게 헤드라인도 찍찍 그어주고 다시는 안만질 코드라면 AI만한게 없다는 느낌
@boltless.meboltless 그니까요 ㅋㅋㅋㅋㅋㅋ
브라우저 스터디할 때 keep-alive 기능 구현하는 거와 관련해서, 성능 측정하는 코드는 필요하겠다 싶어서 TCP handshake 비용 측정하는 코드 짜달라고 Claude Code한테 시켜줬는데 잘 짜줌. 다른건 손으로 직접 실습을 하더라도, 실험 환경 만드는 귀찮은 작업은 LLM한테 시키면 만사가 편안하다...
두유 노 k-pop? 두유 노 k-민주주의? 두유 노 k-연합우주(a.k.a Fedify)?
이런 생각이 받아들여지는 데에는 시간이 많이 걸릴 거라고 생각했는데… AWS 먹통 사태에 대한 사람들의 반응이 생각보다 뜨겁네요. 생각보다 될 것 같기도 하네요.
그러므로 다 같이 외쳐
- 클라우드는 없다! 남의 컴퓨터 거부하자!
- 분산을 집중으로 되돌리는 역사의 퇴행 AWS 물러가라!
- 서버는 기본권이다! 집집마다 서버를! 모든 어린이에게 서버를!
- 내 컴퓨터 없이 내 보안 없다!
- 내 컴퓨터 없이 내 프라이버시 없다!
- 내 컴퓨터 없이 내 자유 없다!
- 1인 1서버는 인권이다!
- 1인 1서버가 민주주의 주춧돌이다!
- POWER TO THE PEOPLE!!! REAL FREEDOM FOR ALL!!!
토요일 밤 쯤에 https://browser.engineering Chapter 1 연습문제 풀면서 알게 된 것들을 글로 정리해봐야겠다. 연습문제에 대한 부록 내지는 힌트 같은 느낌?으로 글을 남길 생각
@kodingwarriorJaeyeol Lee 브라우저 스터디는 무엇인가요??
@davidclimbing놀래라 browser.engieering 에 있는 내용을 보고 python으로 직접 브라우저를 구현하는 스터디인데, 최근에 한빛미디어에서 번역본(밑바닥에서 시작하는 웹 브라우저)이 나오면서 저도 복습할겸 보고 있어요.
ChatGPT Atlas로 구글슬라이드 띄워놓고 ChatGPT 뺑뺑이 돌렸는데, 발표시간 단축을 잘 해줌....
- 발표자료 대본 다이어트
- 코스모슬라이드 다듬는 작업
- 브라우저 스터디 준비
오늘의 #cosmoslide 삽질
분명히 로컬 개발환경에서는 의도한대로 Federation 잘 동작하고 있는데, 왜 프로덕션에서는 팔로우도 제대로 동작안하고, Create(Note) 액티비티는 왜 제대로 안 들어오고 /users/inbox 라는 이상한 엉뚱한 경로로 들어오나하고 한참을 까봤다. sharedInbox 경로만 엉뚱한 URL 패턴을 가지고 있었다.... 프론트엔드/백엔드 분리하긴 했다만, 리다이렉션도 제대로 안 걸어둬서 생긴 오류였다. 아이고두야....
Hackers' Pub에서 Accept Activity가 안 오는거 보니까 뭔가가 있는 것 같은데 -_-;;; 서버를 따로 구해야 하나













