# bibimbap dev 더미 seed 청사진 현실적 경로 = **dev 스키마에 psql 직접 INSERT**. UI 경유는 CSRF + 세션 + (게임) WebGL 업로드를 강제해 고비용. DB 직삽은 CSRF/세션/중복선검사를 우회하되 FK·CHECK·UNIQUE idx 는 그대로 적용됨. 기성 산출물: `db/seed-dev.sql` (멱등, NOT EXISTS 가드) + `db/seed-dev-teardown.sql` (정리). 적용: `docker exec -i bibimbap-db psql -U bibimbap -d bibimbap -v ON_ERROR_STOP=1 < db/seed-dev.sql` DB: 가동 컨테이너 `bibimbap-db` (postgres:16, 호스트 5433), db/user `bibimbap`, schema `dev`. ## INSERT 순서 (FK 의존) 1. `users` (status='ACTIVE', role='USER', is_delete=false) 2. `user_auth_identities` (PBKDF2 password_hash — `mem:bibimbap-auth-pbkdf2-not-bcrypt`; provider='email') 3. `games` (user_id FK, name NOT NULL, is_visible=true, is_delete=false → 목록/상세 표시; sort_order=MAX+1) 4. `game_reviews` (game_id, user_id, rating 1~5 CHECK, body) 5. `game_comments` (game_id, user_id nullable, nickname, content) ## 핵심 제약 (코드 교차확인 필요 — schema.sql 은 비권위 복원본) - **`game_reviews` 부분 UNIQUE `(game_id, user_id) WHERE is_delete IS NOT TRUE`** → 한 게임에 더미 리뷰 N개 = **더미 유저 N명** 필요. 한 유저로 N리뷰 불가. - `game_reviews`/`games` 조회는 `users` JOIN → 작성자명은 `users.display_name` 에서 옴. - `game_comments` 조회는 users JOIN 안 함 → **작성자명은 `nickname` 컬럼을 직접 채워야** 표시됨 (`GameCommentsMapper.listGameComments`). - 게임 `webgl_path`/`thumbnail_url` NULL 안전 — `game-detail.jsp:13-21` 가 빈 src 로 처리. - "리뷰 작성 테스트" 하려면 로그인 계정은 해당 게임에 리뷰 0건이어야 함 (`getActiveReviewByGameAndUser` 중복검사, GameReviewController.java:103-105). 근거 세션: .atp/work-session/20260618-121419.