A blog by yceffort, a frontend engineer taking software apart to see how it works: framework internals, performance, and lessons from production.
333posts051tags09ywriting
08 ITEMS
Recent
latest writing
#essay#oss#ai
Rails가 왜 좋았는지는, 만든 사람이 내려놓고 나서야 보였다
·41분
#nextjs#react#debugging
떠난 페이지는 죽지 않고 숨는다: Next.js cacheComponents와 React Activity
·58분
◆ coldpath 제작기
#debugging#web-performance
소스맵 없이 토스증권의 JavaScript 추적해보기
·41분
04
V8 커버리지와 소스맵으로 번들 분석기 만들기
#web-performance#bundler#debugging
추석맞이 뻘짓 대작전 2탄: 여러차례 삽질에 막힌 V8 커버리지 분석기 제작기.
2026-09-2240분 · read
05
블로그의 JavaScript가 언제 실행되는지 추적해보기
#web-performance#bundler#blogging
추석맞이 뻘짓 대작전 1탄: 내 블로그 부터 살펴보기
2026-09-2232분 · read
06
실행하지 않는 JavaScript를 10MiB까지 늘려봤다
#web-performance#javascript#browser
호출하지 않는 함수가 10MiB 들어 있으면 얼마나 손해일까. 바이트가 만든 비용과 코드 형태가 만든 비용을 갈라 855회 측정했다. 미호출 선언은 MiB당 약 21ms로 CPU를 4배 늦춰도 늘지 않았고, 파일을 읽자마자 실행되는 초기화 코드는 MiB당 201ms를 메인 스레드에 얹었다. 실제 라이브러리에서는 import만 해도 모듈 평가가 실행됐다.
2026-09-1654분 · read
07
블로그를 고친 뒤 첫 화면을 다시 재봤다
#web-performance#blogging#debugging
블로그 마이그레이션 뒤 수식 글 LCP가 5.6초로 늘어난 원인을 추적했다. 일반 웹 글꼴을 실제 코드에서 제거하고 다시 빌드하자 수식 글 LCP는 5,650ms에서 2,352ms, FCP는 1,514ms에서 758ms로 줄었다. LCP 대상은 본문 문단에서 배너로 바뀌었다. 수식 전용 글꼴은 쓰는 글리프만 남긴 서브셋으로 바꿔 334KiB에서 26KiB가 됐다. 최초 비교 48회, 원인 대조 15회, 수정 전후 24회, 서브셋 전후 8회의 결과를 기록했다.
2026-09-1444분 · read
08
블로그의 마크다운 파이프라인을 Rust/WASM으로 옮기기
#rust#markdown#blogging
블로그의 remark/rehype 체인을 Rust로 옮기고 WASM으로 빌드해 Next.js 서버에 붙였다. 파싱과 HAST 생성에 이어 Oniguruma 하이라이트, MathML 수식, 이미지 크기와 MDX 속성 처리까지 한 호출로 묶었다. 메모리 전달과 해제, 기존 글의 호환성, WASI와 바이너리 배포를 구성하며 얻은 것과 감수한 비용을 기록했다.