본문으로 건너뛰기

한상욱

구조를 그려서 문제를 푸는 프론트엔드 엔지니어.
디자인 시스템, 모노레포, 배포 파이프라인을 다룹니다.

성능 개선은 어디서 재야 보일까: 로컬에선 그대로, CI에선 25초

DOM을 안 쓰는 테스트 파일 121개가 파일마다 jsdom을 부팅하던 낭비를 Vitest 프로젝트 분리로 걷어냈습니다. 10코어 로컬에서는 wall time이 그대로였는데 4-vCPU CI에서만 실행당 25초가 줄어든 이유를 실측으로 따라갑니다.

2026-09-18 · 20 min

  1. 캐시가 hit인데 매번 콜드 빌드였습니다 — GitHub Actions Next.js 캐시 키가 죽어 있던 이유

    08-16
  2. 매일 쓰던 getByRole 때문에 테스트가 26배 느렸습니다 — RTL·jsdom 성능 분석

    07-31
  3. TypeScript 6 업그레이드인 줄 알았는데, 문제는 "설정"이었습니다

    07-02
  4. [Typescript로 설계하는 프로젝트] id?: string을 버려라. 상태가 다르면 타입도 달라야 한다.

    03-16
  5. [누가 시키지도 않았는데 번들러 만들기] 4. 소스맵: 번들된 코드에서 원본의 흔적 찾기

    03-03
  6. [누가 시키지도 않았는데 번들러 만들기] 3. 번들링과 스코프: 파일 합치기의 기술

    02-23
  7. [누가 시키지도 않았는데 번들러 만들기] 2. 코드를 데이터로 보는 법 (AST Graph)

    02-17
  8. [누가 시키지도 않았는데 번들러 만들기] 0. 프롤로그: 질문이 구현이 되는 순간

    02-02
  9. [누가 시키지도 않았는데 번들러 만들기] 1. 개념과 도구: 번들러의 등장 배경

    02-02
  10. 결제 시스템 리팩토링: if문 지옥에서 디자인 패턴(Factory, Adapter)으로 탈출하기

    01-24
  11. 2025 회고: 글 33개, PR 38회, 발표 3회로 '보여주는 개발자'가 되다

    12-21
  12. 2025 Teoconf 발표 후기

    12-11
모든 글 →

오픈소스 기여