
느린 네트워크의 흰 화면을 없애려 스켈레톤을 넣었더니 오히려 성능이 나빠졌다. shimmer를 GPU 합성으로 고치고, 매번 다른 Lighthouse 숫자를 의심하고, React Query를 '전부'가 아니라 적재적소에만 쓰기까지 측정하며 헤매다 배운 프론트 UX 개선

실서비스 모든 페이지에서 Safari 사용자에게만 한 달 넘게 뜨던 React Hydration Error. 범인은 코드가 아니라 Safari의 전화번호 자동 감지였다. Sentry diff에 속지 않고 format-detection 한 줄로 잡기까지의 실전 추적기

코드만 보면 명백한 N+1인데 실행하면 쿼리가 0번 나갔다. 왜 안 터졌는지(영속성 컨텍스트 1차 캐시), 그런데도 왜 고쳐야 했는지, 그리고 이걸 매번 손으로 재지 않도록 쿼리 개수를 못 박는 테스트까지. "코드로 단정 말고 실측하라"를 몸으로 배운 기록.

Playwright E2E를 GitHub Actions로 자동화했다. 그런데 첫 야간 실행이 6초 만에 죽었다. 범인은 앱이 아니라 물음표 두 개(??)였다. 환경변수에 ??를 쓰면 안 되는 이유, 그리고 조용히 꺼져 있던 Slack 알림 이야기.