---
title: "🗄️ SQL 쿼리 관리 지침 (골든셋 체계)"
notion_id: "36f22962086881a0bc4ed4fdb291773d"
notion_url: "https://app.notion.com/p/36f22962086881a0bc4ed4fdb291773d"
category: "workreport"
parent: "Claude Code 작업보고"
updated: "2026-05-30"
priority: "High"
purpose: "SQL 발행·관리 골든셋 체계 지침 — 발행형식·사이드바제목·적용저장삭제분리·등록대장·코드박스분리·전수DROP·자가검증"
read_when: ["SQL작업","운영규칙·프롬프트작성"]
---

> 2026.05.29 확립. 핵심지침의 동일 지침을 작업보고 하위에도 보존. 기존 SQL Editor 36개 → 골든셋 7개 정리(⑥ avatars·⑦ body_records 날짜제약 2026.05.30 추가).

## 1. SQL 발행 형식

- **a(.sql)** (주석+코드만, 전체복사 1회 실행) + **b(.html)** (해설+클립보드 복사박스+시각화, 단일파일) 동시 제공.

## 2. 사이드바 제목

- 첫 줄 주석 = 사이드바 제목. 저장 시 이름칸에 그대로 입력. 왼쪽에 **[필수보존]/[1회성]/[이력]** 키워드.

## 3. 적용/저장/삭제 분리

- 저장(등록)=사이드바 글, 적용(Run)=DB변경, 삭제=목록정리. 골든셋은 저장만(Run 불필요)이 기본. 삭제는 DB 무영향.

## 4. 등록대장

- `docs/sql/golden_set/SQL_등록대장.md` 기준. 신규 SQL 전 확인 → 흡수 vs 신규 분리 판단.

## 5. 현재 골든셋 (7개)

1. [필수보존] 기록 스키마
2. [필수보존] 멀티유저 RLS (Run 권장)
3. [필수보존] 소셜 기능
4. [이력·재실행금지] 초기 데이터 (Run 금지)
5. [필수보존] 마스터 계정 시드 ([master@hansbridge.co.kr](mailto:master@hansbridge.co.kr))
6. [필수보존] avatars 스토리지 (버킷+정책4) — 2026.05.30
7. [필수보존] body_records 사용자별 날짜제약 (recorded_at 단독 UNIQUE → user_id+recorded_at, 멀티유저 분리) — 2026.05.30

로컬: `docs/sql/golden_set/`

## 6. 코드박스 분리 (필수)

**박스 1개 = 실행 단위 1개.** 순차 실행 쿼리(검증의 여러 SELECT 등)는 HTML 안에서 쿼리 1개당 코드박스 1개로 분리. 여러 문장을 한 박스에 뭉치지 않음. (2026.05.29 검증 박스 뭉침 미흡에서 확립)

## 7. 통합 재구성 시 옛 정책 전수 DROP (필수)

마이그레이션을 합칠 때 각 테이블의 기존 정책을 전수 확인해 DROP 에 빠짐없이 포함(`*_master_*`, `allow_all`, `"public *"` 등 합집합). RLS 정책은 누적되므로 하나라도 빠지면 옛/새 정책 공존 → 정책 수 부풀고 권한 잔존.

## 8. 재구성 산출 직후 자가검증 (필수)

넘기기 전 정책 수·컬럼·테이블 자가점검 또는 점검쿼리+기대값 동반 제시. (7·8: 2026.05.29 shoe_configs 7개 누적 결함에서 확립)

## 9. 코드박스 메타 5종 (§6 보강 · 필수)

각 박스 = 실행 단위 1개(복사→Run 한 번, 스크롤·드래그 불필요). 상단에 메타 5종 필수: ①구분([필수보존]/[1회성]/[이력]) ②쿼리명 ③실행목적 ④기대결과 ⑤실행 후 보존/삭제. [1회성]은 삭제권장을 박스설명+SQL주석 양쪽에. 적용·검증·대체·복구 모든 SQL 동일. (2026.05.29 GPT 교차검수 반영)
