클라이언트 번들에 서버 모듈이 딸려 나갈 때 원인 찾는 법
라우트 하나만 유독 무거운 클라이언트 청크를 열어 보니 서버 전용 모듈이 섞여 있었다. 되돌림 실험과 반증 실험을 함께 돌려 원인을 값 import 한 줄까지 확정한 기록이다.
카테고리
프로그래밍 글은 이 블로그를 돌리거나 인접 서비스를 고치면서 실제로 깨진 지점에서 시작합니다. 최종 코드만 보여 주지 않습니다. 응답 코드, 캐시 헤더, 번들 크기, 쿼리 조건처럼 원인을 가른 관찰값을 가능한 범위에서 같이 적습니다.
대표 기록은 폴백 응답의 immutable 캐시, 클라이언트 번들의 서버 모듈 누수, 카테고리 20편 상한이 내부 경로를 끊기 직전이었던 일입니다. 사이트맵이 정상이어도 목록 페이지가 오래된 글을 밀어내면 크롤러가 따라갈 링크가 사라집니다. 이 갈래의 글은 그 종류의 운영 실패를 재현 가능한 순서로 남깁니다.
일반 튜토리얼을 짧게 압축한 페이지는 여기에 두지 않습니다. 같은 주제를 이미 다룬 글과 답이 겹치면 새 글로 쪼개지 않고 기존 글에 수정 이력을 더합니다.
라우트 하나만 유독 무거운 클라이언트 청크를 열어 보니 서버 전용 모듈이 섞여 있었다. 되돌림 실험과 반증 실험을 함께 돌려 원인을 값 import 한 줄까지 확정한 기록이다.
사이트맵은 정상이었지만 홈과 카테고리에 같은 20편 상한이 있었다. 다음 programming 글이 오래된 글의 내부 경로를 끊기 전에 카테고리 페이지네이션과 전체 아카이브로 상한과 경로 의존성을 없앤 과정을 정리했다.
IPv4 헤더에는 패킷의 출처를 실어 보낼 자리가 없다. 공개된 엣지 라우팅 프로젝트가 QoS에 쓰지 않던 표준 DSCP 필드를 내부 식별 채널로 재활용해 비대칭 라우팅을 해결한 사례를 분석한다.
축소본이 없어 원본으로 대신 응답한 폴백에 1년짜리 immutable 캐시가 그대로 붙으면서, 나중에 진짜 축소본을 올려도 화면이 갱신되지 않았다. 원인을 코드로 추적하고 캐시 수명을 분리해 고친 과정을 정리했다.
다크모드 설정을 localStorage 한 곳에만 저장하면 저장소 쓰기가 실패하는 환경에서 새로고침마다 라이트 모드로 되돌아간다. 실패를 강제로 재현하고 서버가 읽는 쿠키 채널을 더해 고친 과정을 정리했다.
계정마다 다른 값을 두 개 발급했는데 조회는 하나로만 하면 두 번째 계정에서 로그인이 깨진다. ID 설계와 fail-closed 귀속 검증으로 다계정 자격증명 버그를 고친 과정을 정리했다.
빌드 도구 하나 없이 바닐라 HTML/CSS/JS로 학습·시험 사이트를 만들어 GitHub Pages에 배포한 실전 기록. 콘텐츠 계층 설계, 시험 엔진 규칙, 저작권 회피 결정, CSS 버그와 브라우저 자동화 함정까지 다룬다.
GCP에 게임 전용 서버를 직접 올리며 겪은 인스턴스 선택, SteamCMD 동시 실행 충돌, 메모리 누수, 공식 단가 기반 비용 계산을 정리한 기록. 다른 SteamCMD 기반 게임 서버에도 옮겨 담을 수 있는 교훈 중심.
ICLR 2026 비공식 기관 소속 통계의 한계와 MemAgent·ReasoningBank 기억 실험, Muon 옵티마이저 연구를 정리했다. 실무 도입 전 확인할 데이터 공개 범위와 실험 조건을 함께 짚는다.
항공 소프트웨어는 요구사항부터 검증 결과까지 실이 끊기지 않게 잇는다. DO-178B의 레벨 구분과 정방향·역방향 추적성에서 일반 개발팀이 옮겨 담을 습관을 정리했다.
외부 AI 프로바이더 호출과 R2·D1 상태 전이가 섞인 파이프라인에서는 재시도 하나가 이중 과금과 유령 행을 만든다. 멱등성 계약 없는 재시도는 실패로 처리하고, R2 성공 후에만 D1 행을 만들고, 버전은 폴백 대신 DLQ로 라우팅하는 규칙을 정리했다.
Tauri v2 + Rust로 만든 트레이 앱이 공유 계정·동시 프로젝트 환경에서 Codex·Claude·Gemini 사용량을 계정 간 오귀속을 줄이는 2단계 귀속 알고리즘과 PKCE·키체인·계정 ID 앵커링을 다룬다.
OBS 자막 플러그인을 exe+웹소켓에서 C++ 필터+파이썬 사이드카 하이브리드로 옮기며 정한 IPC 설계 원칙과, 16바이트 헤더·CRC·seqlock 링버퍼·에폭 게이트·싱글플라이트 종료를 검증한 순서를 정리한다.
인증-사용자 프로필-결제를 계층으로 나눠 쌓으면 기능 하나 추가할 때 재작업이 줄어든다. 리액트 라우터 기반 SaaS 스타터 킷 구조로 이 순서가 왜 중요한지 설명한다.
로컬 AI 코딩 에이전트 세션을 원격 기기로 이어서 조작할 때, 로컬 권한 경계가 원격 접속 지점까지 안전하게 전파되도록 설계하는 원칙을 정리한다.
AI 코딩 에이전트가 긴 대화를 압축할 때 낡은 결정, 미완료 작업, 출처, 민감 정보, 불확실성이 사라지는 5가지 유형과 대응 체크리스트를 정리했다.
Claude Code 공식 문서에 공개된 deny→ask→allow 순서, Bash 규칙, 심볼릭 링크 이중 판정, PreToolUse 훅, -p 모드 중단 조건을 실제 예시로 설명한다.
개인이 혼자 쓰던 AI 코딩 에이전트 워크플로가 팀 전체의 거버넌스로 확장될 때 역할 분리, 도입 단계, 승인선, 위험 신호를 실전 프레임워크로 정리했다.
여러 AI 코딩 에이전트를 동시에 굴리다 실제로 터진 git 삭제 커밋, 작업분 유실, 검증 게이트 우회 사고와 재발 방지 규칙을 정리했다.
예약 발행은 scheduled 값을 저장하는 일이 아니다. 공개 시간, 조회 조건, 상세 페이지, 검색과 사이트맵까지 같은 기준으로 막아야 한다.
API 400·422, DB 마이그레이션, 백그라운드 재시도와 폴링, 결제 대사에서 반복해서 겪은 실패를 좁혀 고친 디버깅 습관을 정리했다.
멀티스레드/분산 시스템에서 자주 만나는 동시성 버그 3가지(경쟁 상태, 부분 실패, 멱등성)를 정의, 증상, 방어 기법으로 정리합니다.