Profile img

Jaeyeol Lee

@kodingwarrior@hackers.pub · 670 following · 486 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

초안이고, 아직은 완성된 글이 아님. 약속이 있는 관계로 일단 중간 세이브....

0

브라우저 스터디 기록 (2)

Jaeyeol Lee @kodingwarrior@hackers.pub

이 글은 Web Browser Engineering을 독학하며 겪은 경험을 담고 있으며, 특히 Chapter 2의 연습문제 풀이에 대한 내용을 다룬다. Chapter 2는 브라우저 주소창에 입력을 감지하는 과정부터 HTML을 화면에 렌더링하는 과정을 개괄적으로 설명한다. 마우스나 키보드 입력이 CPU를 통해 커널에 인터럽트 요청으로 전달되고, 브라우저가 이를 처리하여 서버와 통신하며, 최종적으로 그래픽 시스템을 통해 화면에 표시되는 과정을 요약한다. 이벤트 루프의 역할이 중요하지만, 챕터에서는 텍스트를 화면에 출력하는 수준으로 다룬다. 연습문제 중 Emoji 지원과 RTL(Right-to-Left) 지원에 대한 해결 방법이 제시된다. 특히 RTL 지원을 위해, 저자는 텍스트를 한 줄 단위로 묶어 GUI 툴킷이 RTL 순서를 처리하도록 하고, 라인의 시작점을 계산하여 화면 오른쪽에 맞춰 출력하는 방법을 사용했다. Emoji의 경우, 좌표를 미리 지정하여 텍스트 라인과 분리하여 처리함으로써 문제를 해결했다. 이 글은 브라우저 엔진의 기본적인 동작 원리를 이해하고, 실제 구현 과정에서 마주칠 수 있는 문제에 대한 해결책을 제시하여 독자에게 실질적인 도움을 줄 수 있다.

Read more →
9
1
1
0

[8일차] 20p.

미국의 심리학자 헬레나 매튜트Helena Matute는 그의 논문 〈인과관계의 환각 Illusions of Causality〉에서 이렇게 지적했다. "시각적 환상과 같이 인과의 환각은 모든 사람에게서 흔히 발생한다. 과학적 사고 방법은 인과의 환각을 방지하는 최적의 경로다. 그러나 과학적 사고 방법은 본능적 반응이 아니며 습득이 필요한 기법이다." 헬레나 매튜트가 언급한 과학적 사고 방법은 구조화 전략 사고와 결을 같이하며 이성적 사고, 즉 느린 사고에 속한다.

맥킨지 논리력 수업 8일차
1
0
6

Jaeyeol Lee shared the below article:

자연어에서의 재귀와 카탈랑 수

구슬아이스크림 @icecream_mable@hackers.pub

이 글은 자료구조와 알고리즘에서 중요한 개념인 재귀가 자연어에서 어떻게 나타나는지, 특히 통사론적 관점에서 인간 언어 능력의 창조성을 보여주는지를 탐구합니다. 'X의 Y의 Z의...'와 같은 소유격 조사를 사용한 문장 확장을 통해 재귀의 개념을 설명하고, 이러한 재귀가 카탈랑 수와 연관되어 있음을 지적합니다. 영어 예시를 통해 전치사구의 추가가 문장의 중의성을 증가시키고, 구문 분석의 가능한 경우의 수가 카탈랑 수열을 따른다는 것을 보여줍니다. 생성 규칙을 통해 명사구를 재귀적으로 확장하면서 중의성 계수가 카탈랑 수와 동일하게 나타남을 설명합니다. 마지막으로, 자연어의 중의성 해소는 산술 표현식과 달리 확률에 의존하며, 이는 전산/심리언어학에서 중요한 연구 주제임을 강조합니다. 이 글은 재귀의 개념이 자연어에서 어떻게 복잡하게 작용하는지, 그리고 그 중의성을 이해하는 것이 왜 중요한지를 흥미롭게 제시합니다.

Read more →
7
2
1
4
  • OSSCA 2025 성과공유회 발표
  • 브라우저 스터디 Chapter 2 풀이글? 작성
  • 브라우저 스터디 Chapter 3 연습문제 밀기
  • 코스모 슬라이드 개발
  • 면접 준비
4
5

브라우저 구현하는데 폰트 가로폭 측정함수가 너무 느려서 디버깅하다가 결국 측정함수 사용을 최소화하고, 인메모리 캐싱하는 전략을 썼다. 결과적으론 성공인데, ChatGPT한테 물어보면서 리눅스 구현체 vs macOS 구현체의 심연을 들여다보는 중....

0

브라우저 구현하는데 폰트 가로폭 측정함수가 너무 느려서 디버깅하다가 결국 측정함수 사용을 최소화하고, 인메모리 캐싱하는 전략을 썼다. 결과적으론 성공인데, ChatGPT한테 물어보면서 리눅스 구현체 vs macOS 구현체의 심연을 들여다보는 중....

1

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 →
4
1

🐍 .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

2
0
4

존 카맥, 리누스 토르발스 등등 90년대 시절 프로그래머들이 살아있는 전설급 프로그래머로 여겨지는 이유를 썰 풀듯 드립치며 얘기하는 영상. 이유는 간단하게 말하면 오늘과는 다르게 그 시절엔 하드웨어 메모리를 어떻게든 쥐어짜서 로직을 짜야했고, pip install이나 클로드나 제미나이같은 것도 없었고 튜토리얼 지옥에 빠질 일도 없었고 대신 컴파일러 지옥에서 살았기에 가능했다는 얘기. 물론 그들이 선구자였기에 그 버프를 받아서 전설급이 되었을 거란 얘기도 있다. 보면서 그 때는 정보가 적었기에 폐관수련이 필수였는데 오늘날엔 오히려 정보가 넘쳐나고 풍부해서 그게 좀 덜 하는 걸까 싶기도 했다.

1

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 →
2
2
5
0

Neovim 같은 에디터에서 Language Server를 일일이 세팅하다보면, typescript-language-server는 deno lsp와 충돌하게 되고, biome는 eslint 같은거랑 충돌이 되어서 스크립트로 일일이 예외처리를 해줘야 하는데, 이런 충돌나는 요소를 코드 레벨에서 우아하게 제어할 수 있는 방법이 어디 있을까? 사용가능한 랭귀지 서버를 배열의 형태로 나열하고, 사용가능한 포매터 역시 배열의 형태로 나열하기만 해도, 이걸 우아하게 처리할 수 있는 인터페이스가 필요하다...

0

Neovim 같은 에디터에서 Language Server를 일일이 세팅하다보면, typescript-language-server는 deno lsp와 충돌하게 되고, biome는 eslint 같은거랑 충돌이 되어서 스크립트로 일일이 예외처리를 해줘야 하는데, 이런 충돌나는 요소를 코드 레벨에서 우아하게 제어할 수 있는 방법이 어디 있을까? 사용가능한 랭귀지 서버를 배열의 형태로 나열하고, 사용가능한 포매터 역시 배열의 형태로 나열하기만 해도, 이걸 우아하게 처리할 수 있는 인터페이스가 필요하다...

0
0
1
0
2
0

mermaid로 다이어그램 그릴 일이 요즘 많은데 일단 메모..

특히 복잡한 그래프를 평면으로 그릴 수 있으면 적극적으로 도입해야겠다

1
5

X(트위터)에서 저는 대부분 개발자 분들과 팔로우 맺어져 있고, 특별히 정치색을 내는 분들이 안계셔서 정치 글들은 눌러서 본적도 없습니다만, 최근 몇 달간, 흔히 말하는 극우적인 성향의 글들이 추천으로 계속 뜨네요. 내 알고리즘이 오염된건가... 완전 개발자 얘기들만 찾아다니는데 왜 그럴까요.

0
1
1
1
1
0
1

browser.engineering 스터디 중인데, 일주일에 최소 한 챕터 진도나가고 한챕터 연습문제 싹쓸이 할 때마다 풀이 글을 올려보려고 한다. browser.engineering 책 검색하면 해커스펍이 상단에 뜨게 하는 큰 그림....!!

4

데이터 애플리케이션 중심 설계를 읽고 있는데, 이걸 읽다보니 간혹 유튜브 스트리밍에서 채팅 순서가 내가 채팅방에서 보는 거랑 실제 방송 화면에 표기되는 게 다르게 나왔던 부분이나 새로고침 했을 때 댓글이 사라졌다 생겼다 하는 이유를 어느정도 추측해볼 수 있게 된 것 같다. 물론 완전히 그 이유 때문인지는 모르겠지만, 그런 이유가 아닐까? 하고 지레 짐작 해볼 수 있는 감이 생긴 것 같다.

1
0
1