6.3 KiB
6.3 KiB
| title | status | created_at | session |
|---|---|---|---|
| 게임잼 플랫폼 고도화 — 세션 로드맵 | draft (사용자 확정 대기) | 2026-06-17 | 20260617-150635 |
게임잼 플랫폼 고도화 — 세션별 로드맵
기존 bibimbap(게임 공유 + 팀원 모집, Spring Boot + MyBatis + JSP) 위에 게임잼 운영/평가/리뷰/관리자/포스팅/검색 신규 기능군을 얹는다. 메모를 "1항목=1세션"으로 쪼개면 공유 자원(게임잼 엔티티·RBAC·평가 데이터모델)에서 재작업이 폭증하므로(§2.7), 토대 → 결합 클러스터 → 표면 기능 순으로 의존 순서를 강제한다.
의존 그래프
S1 RBAC(권한) ─┬─> S2 게임잼 엔티티 ─┬─> S3 태그+검색
│ ├─> S4D 평가 통합설계(스키마 동결)
│ │ └─> S4a 댓글/리뷰분리 ─┬─> S4b 심사위원
│ │ ├─> S4c 인기투표
│ │ └─(4a·4b·4c)─> S4d 시상집계
│ └─> S6 메인 통합(노출 대상 필요)
└─> S5 포스팅 보드 (S4와 독립, S1 후 병렬 가능)
└─> S6 메인 통합
차후: S7 Unity 빌드 업로드 파이프라인 (별도 조사)
운영: Discord/뒤끝/상금 (코드 외 — 표시 필드만 S2 흡수)
- 크리티컬 패스: S1 → S2 → S4D → S4a → S4d → S6
- S1 직후 병렬 가능: S5(포스팅)
- S2 직후 병렬 가능: S3(태그)
- S4 분할 원칙: S4D(통합설계) 가 평가/리뷰/투표/댓글/시상 스키마를 한 번에 동결. 이후 S4a~S4d 는 동결된 계약을 소비만 한다 — 구현 세션이 스키마를 바꾸면 형제 세션 재작업이므로, 스키마 변경은 S4D 로 회귀해 처리.
세션 카드
S1 — 권한 체계(RBAC) 기반 ★최우선 토대
- 목표: 사이트 관리권한 모델 + 기능별 인증유저 플래그 스캐폴드.
- 포함: 관리자(전체)/부관리자(허용 권한만 = 권한부여형) 모델, 관리자 콘솔(부관리자 임명 + 권한 토글), 인증유저 플래그 정의·부여(리뷰어/포스터/심사위원/기술자), 권한 체크 인터셉터.
- 제외: 각 권한의 실제 사용처(후속 세션이 소비).
- 의존: 없음.
- 공유 자원:
users,security/, 세션/인증. - 권장 진입: requirements-advisor(권한 모델 정밀화) → design → implementation.
- 산출: 권한 스키마 마이그레이션, 관리자 콘솔, 권한 인터셉터.
S2 — 게임잼 엔티티 + 라이프사이클 ★토대
- 목표: 게임잼 이벤트 엔티티 + 상태전이 + 관리 + 출품작 연결.
- 포함:
jams테이블, 상태전이(모집→개발→평가→종료), 개발기간/평가기간 필드, 관리자 게임잼 CRUD, 출품작 =games에 잼 연결(개인·팀 모두), 게임잼 목록/상세 페이지, (운영 표시) Discord 링크·상금·후원사 필드. - 제외: 평가/투표/리뷰(S4), 검색(S3).
- 의존: S1(게임잼 생성 권한).
- 공유 자원:
games,recruit_posts(팀 연결), 상태전이. - 산출:
jams스키마, 게임잼 페이지, 라이프사이클 상태머신.
S3 — 태그 + 검색
- 목표: 게임잼+게임 공통 태그, 게임잼 태그 검색.
- 포함: 공유
tags+ 조인테이블(game/jam), 게임잼 태그 검색 UI/쿼리. - 의존: S2.
- 산출: 태그 스키마, 검색 UI.
S4 — 평가·리뷰·투표 통합 ⚠️결합 클러스터 → 분할 세션화
§2.7 주의: 댓글/리뷰/심사/투표/시상이 같은 데이터 도메인 + 평가기간 게이트를 공유. S4D 가 스키마를 한 번에 동결하고, S4a~S4d 는 그 계약을 소비만 한다. 스키마 변경 필요 시 S4D 로 회귀(형제 세션 재작업 방지).
S4D — 평가 통합설계 (설계 전용 세션, 코드 0)
- 목표: 리뷰/댓글/심사/투표/시상 데이터모델 + 계약 + 평가기간 게이트를 한 번에 확정·동결.
- 포함:
reviews(게시물당 1회, 완성도+종합 평점),game_comments200자 제약, 심사 점수 스키마, 잼 투표 스키마, 3트랙 집계 규칙, 상태/기간 게이트 계약. - 의존: S1, S2.
- 권장 진입: design-advisor.
- 산출: design.md + DB 스키마(동결) + contracts.
S4a — 댓글/리뷰 분리 (구현)
- 목표:
game_comments200자 제한 + 리뷰(신규, 게시물당 1회, 완성도+종합 평점) 분리. - 의존: S4D.
S4b — 심사위원 평가
- 목표: 심사위원 권한자 점수 입력 → 심사위원 대상.
- 의존: S4D, S4a, S1(심사위원 권한).
S4c — 인기투표
- 목표: 잼 전용 1인 1표(평가기간 한정) → 인기 대상.
- 의존: S4D.
S4d — 시상 집계/결과
- 목표: 3트랙(심사/유저평점/인기) 산정 + 수상 표시.
- 의존: S4a·S4b·S4c 산출.
S5 — 정보성/홍보성 포스팅 보드 (S1 후 병렬 가능)
- 목표: 운영진 전용 공지·블로그 + 외부링크 큐레이션. 유저 작성 차단.
- 포함:
posts테이블, 포스터 권한자 작성, 카테고리(유니티블로그/세션/후기인터뷰/뒤끝 개발팀), 외부링크 타입, 유저작성 차단. - 의존: S1(포스터 권한). S4와 독립.
- 산출:
posts스키마, 포스터 작성 UI.
S6 — 메인페이지 통합 (거의 마지막)
- 목표:
index.jsp에 게임잼+게임+포스팅 통합 노출. - 의존: S2, S5(노출 대상 존재).
- 산출: index 확장.
S7 — (차후) Unity 빌드 업로드 파이프라인 ⏸deferred
- 목표: WebGL 빌드 업로드 → 검증 →
/game/{uuid}/배치 자동화. - 선행: 별도 조사(빌드 포맷/검증 규칙/보안 — zip-slip 등).
- 현재: 스코프 인지만, 후속 결정.
운영(코드 외)
- Discord: 공지·진행은 수동 운영. 코드는 게임잼 상세에 초대 링크 표시 정도(S2 흡수).
- 뒤끝(Bekend): 파트너/콘텐츠 — 포스팅 카테고리로만 등장.
- 상금·후원(치킨/10만원/편의점 5000원권): 게임잼 상세 표시 필드(S2) + 실제 지급은 수동.