내 무료 DB가 터졌어요 (Supabase Free Plan 한계 돌파하기)
서비스가 조금 잘 되나 싶더니 Supabase에서 경고 메일이 날아옵니다. 'Disk Full', 'CPU 100%'. 무료 플랜(Free Tier)의 진짜 한계와 업그레이드 없이 버티는 최적화 팁.

개발과 기술에 대한 이야기를 기록합니다.
서비스가 조금 잘 되나 싶더니 Supabase에서 경고 메일이 날아옵니다. 'Disk Full', 'CPU 100%'. 무료 플랜(Free Tier)의 진짜 한계와 업그레이드 없이 버티는 최적화 팁.

DB 컬럼을 추가했는데 프론트엔드에서는 여전히 에러가 납니다. `supabase gen types`의 작동 원리와 자동화된 타입 동기화 파이프라인 구축 방법을 정리해봤습니다.

팀원과 동시에 DB 스키마를 수정했더니 `supabase db push`가 실패합니다. 마이그레이션 파일 충돌 원인과 `migration repair` 명령어로 해결하는 방법을 정리해봤습니다.

로컬에선 잘 되는데 배포만 하면 500 에러? Node.js와 Edge Runtime의 차이부터 Import Map 설정까지, Supabase Edge Function 배포 성공을 위한 체크리스트.

채팅 기능을 만들었는데 DB가 업데이트되어도 프론트엔드는 조용합니다. Supabase Realtime 구독이 먹통일 때 확인해야 할 'Replication' 설정과 RLS 필터링에 대해 정리해봤습니다.

테이블 RLS는 켰는데, 스토리지 파일 업로드가 막힙니다. 'new row violates row-level security policy' 에러의 진짜 원인인 `storage.objects` 정책 설정법을 정리해봤습니다.

회원가입 버튼을 눌렀는데 메일이 안 옵니다. 스팸함에도 없습니다. Supabase 무료 SMTP의 한계와 Resend를 연동하여 이메일 전송 성공률을 99%로 높이는 방법을 정리해봤습니다.

TypeScript 타입 에러가 개발 중에는 보이는데 빌드할 때는 무시되는 문제와 해결 방법을 정리했습니다.

개발 중 CORS 에러를 프록시로 해결하는 방법과 주의사항을 정리했습니다.

TypeScript/JavaScript에서 절대 경로 import 설정이 안 될 때의 원인을 '지도와 택시 기사' 비유로 설명합니다. CJS vs ESM 역사적 배경과 모노레포 설정, 팀 컨벤션까지 총정리.

사용자가 상품 결제를 하려다 로그인 창이 떠서 로그인을 했는데, 뜬금없이 메인 페이지로 이동된다면? 당황한 사용자는 그대로 이탈합니다. 로그인 후 원래 페이지로 되돌려보내는 리다이렉트 구현 방법과, 그 과정에서 발생할 수 있는 보안 취약점(Open Redirect)을 막는 방법을 공유합니다.

React에서 DOM에 직접 접근해야 할 때 useRef를 사용하는 방법과 주의사항, 그리고 forwardRef와 useImperativeHandle을 이용한 고급 패턴까지 완벽하게 정리했습니다.

Vite에서 환경 변수가 제대로 로드되지 않는 문제의 원인과 해결 방법을 심층 분석합니다. bundler의 동작 원리, 보안 모델, Docker/CI 환경에서의 동적 주입, 그리고 Monorepo 설정까지 완벽하게 가이드합니다.

React의 데이터 흐름은 단방향(부모->자식)이지만, 가끔은 거꾸로 명령을 내려야 할 때가 있습니다. useImperativeHandle과 forwardRef를 사용해 캡슐화를 유지하면서 자식의 함수를 호출하는 법을 정리해봤습니다.

z-index가 작동하지 않는 문제와 stacking context 이해하기

컴포넌트가 사라진 후 setState를 호출해서 생기는 메모리 누수 경고 해결

부모에서 전달한 props가 undefined로 나와서 앱이 크래시되는 문제 해결

React에서 클로저가 오래된 값을 참조해서 생긴 버그와 해결 방법

useEffect 의존성 배열 때문에 무한 루프에 빠졌던 경험과 해결 방법

개발 중에 코드를 수정했는데 브라우저가 반응이 없나요? 새로고침을 백만 번 하다가 지쳐서 찾아낸 HMR(Hot Module Replacement)의 원리와 고장 원인, 그리고 해결 방법을 '노가다 개발자'의 시선으로 정리했습니다.
