DELETE 정책 없이 전체교체를 구현하는 법 — RPC 패턴의 시작
"supabase db push는 이미 기록된 버전을 재적용하지 않는다"
개발 여정과 기록을 모아놓은 빌드 로그입니다.
"supabase db push는 이미 기록된 버전을 재적용하지 않는다"
"Parallel Gateway가 관여하는 Cycle은 정의상 종료조건이 있을 수 없다"
"판단하지 않는다는 게, 이 단계 설계의 핵심 의도였다"
"문서화된 불변조건을 옮기는 것과 새 규칙을 발명하는 것은 다르다"
"Project는 삭제 금지, Process는 조건부 허용 — 그 구분을 RLS로 옮겼다"
"회귀라 부를 대상 자체가 존재하지 않았다"
"트리거는 코드 리뷰가 아니라 실제로 막아봐야 믿을 수 있다"
"못 만든 이유와 고칠 지점을 코드·문서·테스트 3곳에 남긴다"
"RLS를 켜는 것과 Policy를 만드는 건 다르다"
"안전장치를 만들면 어딘가에 새로운 제약이 반드시 생긴다"
"테이블 필드는 완전하게, 책임 경계는 절대 섞지 않는다"
"지금 안 옮기면 파일 3개가 아니라 300개가 된다"
"만들 수 있다는 것과 만들 가치가 있다는 건 다른 문제입니다. 이번엔 만들어놓은 기능이 실제로 쓸만한지, 제가 직접 써보면서 확인했습니다."
"헤더로 추측하지 말고, 사용자가 직접 신호를 보내게 하라."
"스크립트를 넣는 것과, 그 스크립트가 뭘 하고 있는지 아는 것은 다른 일이다."
"만든 사람이 안 열어본 화면은, 결국 아무도 안 열어본 화면이다."
"쿠키 하나가, 캐싱 전체를 무력화시키고 있었다."
"코드가 실수해도, DB가 마지막 방어선이 되어준다."
계획서 없이 코드부터 짜지 않는다
동작한다와 쓸 수 있다는 다른 문제입니다.
AI는 거짓말하지 않았습니다. 다만 말하지 않았을 뿐입니다.
"기획자가 직접 만든다는 건, 끝까지 직접 확인한다는 뜻이기도 하다."
"설정은 의도, 검증은 증거. 둘 다 있어야 안심할 수 있다."
"외계어도 비유 하나면 내 언어가 된다."