1.9 KiB
1.9 KiB
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 의존)
users(status='ACTIVE', role='USER', is_delete=false)user_auth_identities(PBKDF2 password_hash —mem:bibimbap-auth-pbkdf2-not-bcrypt; provider='email')games(user_id FK, name NOT NULL, is_visible=true, is_delete=false → 목록/상세 표시; sort_order=MAX+1)game_reviews(game_id, user_id, rating 1~5 CHECK, body)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조회는usersJOIN → 작성자명은users.display_name에서 옴.game_comments조회는 users JOIN 안 함 → 작성자명은nickname컬럼을 직접 채워야 표시됨 (GameCommentsMapper.listGameComments).- 게임
webgl_path/thumbnail_urlNULL 안전 —game-detail.jsp:13-21가 빈 src 로 처리. - "리뷰 작성 테스트" 하려면 로그인 계정은 해당 게임에 리뷰 0건이어야 함
(
getActiveReviewByGameAndUser중복검사, GameReviewController.java:103-105).
근거 세션: .atp/work-session/20260618-121419.