본문으로 건너뛰기
yceffort
PostsSeriesTagsAbout🧪 Research
EN

Tweaks

theme
accent palette
film grain
minimal mode
20 POSTS

Debugging 1

  • ◆ coldpath 제작기 · 4편
    #bundler#debugging#compiler

    번들러는 import를 어떻게 기억하는가

    Turbopack 분석 파일의 동기 의존성을 정적 import로 해석한 coldpath의 분류 오류를 추적했다. webpack, Turbopack, Vite, esbuild의 그래프 정보와 산출물을 비교하고, 원래 구문을 판별할 수 있는 단서와 복원할 수 없는 경우를 살펴본다.

    2026-10-08·44분
  • #nextjs#react#debugging

    떠난 페이지는 죽지 않고 숨는다: Next.js cacheComponents와 React Activity

    Next.js 16의 cacheComponents는 떠난 페이지를 언마운트하지 않고 React Activity로 숨긴다. 하얗게 빈 three.js 캔버스를 따라 라우터, React, react-three-fiber의 소스를 읽고 브라우저에서 재현했다.

    2026-09-26·58분
  • ◆ coldpath 제작기 · 3편
    #debugging#web-performance

    소스맵 없이 토스증권의 JavaScript 추적해보기

    추석맞이 뻘짓 대작전 3탄: 사랑해요 토스증권

    2026-09-26·41분
  • ◆ coldpath 제작기 · 2편
    #web-performance#bundler#debugging

    V8 커버리지와 소스맵으로 번들 분석기 만들기

    추석맞이 뻘짓 대작전 2탄: 여러차례 삽질에 막힌 V8 커버리지 분석기 제작기.

    2026-09-22·40분
  • ◆ coldpath 제작기 · 1편
    #web-performance#bundler#blogging

    블로그의 JavaScript가 언제 실행되는지 추적해보기

    추석맞이 뻘짓 대작전 1탄: 내 블로그 부터 살펴보기

    2026-09-22·수정 2026-09-26·32분
  • ◆ 블로그 성능 개선하기 · 3편
    #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-14·수정 2026-09-15·44분
  • #bundler#web-performance#debugging

    외부 SDK를 뜯어서 내 맘대로 다시 만들기: 단, 로직은 한 줄도 건드리지 않고

    상수 하나를 import 했는데 번들의 97.7%가 따라왔다. 벤더는 고칠 일정이 미정이라기에, 배포된 소스맵을 뜯어 400개가 넘는 TypeScript 파일을 되찾고 빌드와 엔트리와 의존성을 내 맘대로 갈아엎었다. 로직만 빼고. 그래서 /send가 raw -77.5%. 그런데 어려운 건 그다음이었다. 테스트 1932개가 전부 통과했는데, 그중 몇 개는 아무것도 보고 있지 않았다.

    2026-08-31·70분
  • ◆ 서비스 워커 캐싱 딥다이브 · 3편
    #service-worker#web-performance#caching

    서비스 워커 경유 비용 실측: GA4가 답하지 못한 대조군을 랩에서 만들기

    2편 끝에 남긴 "워커 경유 비용 500ms"를 확정하려 했지만, 대조군이 되는 하드 리로드는 하루 한 건이 안 됐다. 그래서 Playwright와 셰이핑 프록시로 대조군을 직접 만들어 재 보니 내비게이션에서 워커 비용은 2ms였고, 비용은 지연이 아니라 글 하나를 클릭할 때마다 배경에서 더 받는 바이트 쪽에 있었다. 랩과 실사용자 데이터 사이에 남겨 둔 간극은 글을 다 쓰고 나서야 103 Early Hints가 만든 측정 정의 차이였다는 것을 알았다. 서비스 워커 캐싱 딥다이브 시리즈의 세 번째 편이다.

    2026-08-28·수정 2026-09-02·81분
  • #debugging#bundler#nextjs

    Next.js turbopack에서 싱글톤이 두 개가 됐다: scope hoisting 버그와 순환 import

    Next.js 16 turbopack 프로덕션 빌드에서 모듈 스코프 싱글톤이 런타임에 두 개가 됐다. 같은 동기 구간에서 조건 판정이 뒤집히고, 응답이 도착해도 타임아웃이 나는 증상을 번들 산출물로 추적한 기록. scope hoisting의 부분 병합, 순환 import, 이미 고쳐져 있던 upstream 버그, 그리고 뒤늦게 돌린 단일 변수 실험까지.

    2026-08-19·28분
  • #animation#web-performance#debugging

    framer-motion 배너에서 프레임드랍 없애기: 두 번의 삽질과 이징 함수

    framer-motion으로 만든 배너가 열리는 0.6초 동안 홈 전체가 버벅였다. 원인을 코드로 추정하고, 실측으로 두 번 뒤집히고, 결국 이징 함수 하나로 리플로우를 없애기까지의 기록. 그리고 이 작업이 남긴 것들: 선언과 실행의 간극, 속성이 성능을 결정한다는 원칙, 메커니즘 보존, 계측기를 의심하는 순서, 같음을 곡선으로 증명하는 방법.

    2026-08-15·수정 2026-08-22·50분
  • #typescript#blogging#npm

    typescript@7을 설치하면 벌어지는 일들: 블로그 모노레포 마이그레이션 기록

    pnpm lint가 12분 32초 걸리던 모노레포에 typescript 7.0.2를 넣어봤다. 타입체크는 조용히 지나갔는데 next build가 깨졌고, lint는 크래시했다. eslint와 prettier를 oxlint와 oxfmt로 갈아탄 하루의 연쇄 반응과 전후 실측 기록. 미리 말해두면, 빌드는 빨라지지 않았다.

    2026-08-10·17분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 4편
    #kubernetes#devops#debugging

    파드는 어떻게 종료되는가: 배포 중 에러의 원인과 해결을 실측한 기록

    코드를 한 줄도 바꾸지 않은 배포에서도 에러는 샌다. 롤링 배포 중 새는 실패를 유형과 시각까지 태깅해 원인 네 가지를 부검하고, 해법을 하나씩 더해 0으로 만들기까지의 실측 기록이다. Next.js의 종료 코드 원문과 인질 드레인, CrashLoopBackOff의 실제 시간표까지. 프론트엔드 개발자를 위한 쿠버네티스 시리즈의 네 번째 편이다.

    2026-08-08·수정 2026-09-23·36분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 3편
    #kubernetes#networking#devops

    트래픽은 어떻게 내 파드에 도착하는가: ClusterIP부터 port-forward까지

    Service의 ClusterIP는 어느 기계에도 붙어 있지 않은 IP인데 curl은 어떻게 닿는가. iptables 규칙과 conntrack, EndpointSlice, 클러스터 DNS의 ndots, Gateway, port-forward까지, 요청이 파드에 도착하는 경로 전체를 kind 클러스터에서 직접 열어본 기록이다. 프론트엔드 개발자를 위한 쿠버네티스 시리즈의 세 번째 편이다.

    2026-08-06·수정 2026-09-23·48분
  • #nextjs#debugging#react

    Nextjs app router의 Rendered more hooks than during the previous render 버그 패치 후기

    어렵다 어려워

    2025-06-23·수정 2025-12-07·24분
  • #debugging#react

    새로 바뀐 네이버 메인 훔쳐보기

    사실 나도 잘 몰라요

    2023-05-30·수정 2023-07-05·19분
  • #memory#debugging#web-performance

    크롬 메모리 프로파일러 사용하는 방법

    스냅샷 해석과 디버깅의 책임은 본인에게 있습니다

    2022-04-28·수정 2023-05-03·9분
  • #nextjs#debugging#react

    nextjs를 적용하면서 알게 된 사실들

    아 집에 가고 싶다

    2021-12-20·수정 2022-03-29·7분
  • #memory#nodejs#v8

    Node.js의 메모리 제한과 누수 추적 가이드

    V8 가비지 컬렉션의 세대별 구조, 힙 메모리 제한 조정, 그리고 메모리 누수를 진단하는 실용적인 방법을 정리합니다.

    2021-12-13·수정 2026-02-21·11분
  • #nextjs#backend#networking

    nextjs 서버사이드에서 absolute url 가져오기

    이번 달 포스팅이 더디네요... 반성합니다.

    2021-10-29·수정 2021-11-19·4분
  • #browser#css#debugging

    웹 개발자가 본 사파리 15의 변화와 대응

    죽인다 사파리

    2021-09-19·수정 2021-09-25·5분
Page 2→
mailMail icongithubtwitter
yceffort
•
© 2026
•
https://yceffort.kr