본문 바로가기

반응형

백엔드

(2)
Supabase 새 테이블, RLS만 켜면 안 돼요 — 2026-05-30 GRANT 변경 Supabase에서 테이블을 만들고 RLS 정책까지 걸었는데, 클라이언트에서 조회하면 권한 오류가 나거나 테이블이 아예 안 보이는 경우가 있어요. 2026년 5월 30일부터 새 프로젝트의 기본 동작이 바뀌었거든요. 새로 만든 public 스키마 테이블은 권한을 명시하기 전에는 Data API에 노출되지 않아요.무엇이 바뀌었나요예전에는 public 스키마에 테이블을 만들면 자동으로 API에 노출됐어요. 이제는 역할별로 권한을 직접 줘야 보여요. 적용 일정은 이래요.2026-04-28 새 프로젝트에서 '자동 노출 끄기'를 선택할 수 있게 됨2026-05-30 새 프로젝트의 기본값으로 전환 (몇 주에 걸쳐 점진 적용)2026-10-30 기존 프로젝트 전체에 적용이미 만들어 둔 테이블은 기존 권한을 그대로..
유료 크레딧 차감을 안전하게 — SELECT FOR UPDATE와 단일 트랜잭션 유료 크레딧이나 포인트처럼 잔액을 깎는 기능은 동시성에서 사고가 나기 쉬워요. 두 요청이 거의 동시에 들어와 같은 잔액을 읽으면, 둘 다 "잔액 충분"이라고 판단하고 각자 차감해서 이중 차감이나 음수 잔액이 생길 수 있어요. 혼자 운영하다 보면 이런 건 사용자가 늘기 시작할 때 갑자기 터지더라고요.읽고 쓰는 사이의 틈문제는 "잔액을 읽는 시점"과 "차감해서 쓰는 시점" 사이의 틈이에요. 그 틈에 다른 요청이 끼어들면 둘 다 옛날 잔액을 기준으로 판단해요.요청 A: 잔액 10 읽음 → (틈) → 10 - 3 = 7로 씀요청 B: 잔액 10 읽음 → (틈) → 10 - 3 = 7로 씀결과: 두 번 차감했으니 4가 남아야 하는데 7이 남음 (한 번의 차감이 사라짐) 행을 잠그고 한 트랜잭션에서해결은 그 행을 ..

반응형