목적
게임 정보(FR-7)를 인터널 CMS 1차 범위로 편입한다. 이번 태스크는 스키마와 공개 조회 API만 다룬다 — 관리자 CRUD(T-37~39), 홈 위젯(T-40)은 후속 PR.
배경
docs/01-requirements.md에 게임 정보(빌드 제외)와 홈 위젯(멘토·Q&A·모집 링크)을 2026-08-30에 1차로 재편입했다. 게임 빌드(Unity WebGL ZIP) 업로드·압축해제·서빙은 ADR-023으로 방향(홈페이지 OCI 서버 로컬 디스크 + 자체 서빙, S3/Lambda 미도입)만 정하고 별도 태스크(T-41)로 분리했다.
작업 내용
테스트 (ADR-019)
GameIntegrationTest 7개 —
- AC-9.3 공개 목록은 공개 게임만
display_order 순, 숨김은 404
- AC-9.10 활성 빌드 없으면
activeBuild null이고 500 아님, 있으면 버전·상태 노출
- AC-9.14 탈퇴한 참여 멤버는 공개 응답에서 제외
- INV-18 삭제되지 않은 게임의 slug 유일성(DB 제약)
참고
docs/02-acceptance-criteria.md AC-9, INV-18~22
docs/04-architecture.md ADR-023
docs/05-api-spec.md §1.3, §3
docs/07-task-breakdown.md T-36
목적
게임 정보(FR-7)를 인터널 CMS 1차 범위로 편입한다. 이번 태스크는 스키마와 공개 조회 API만 다룬다 — 관리자 CRUD(T-37~39), 홈 위젯(T-40)은 후속 PR.
배경
docs/01-requirements.md에 게임 정보(빌드 제외)와 홈 위젯(멘토·Q&A·모집 링크)을 2026-08-30에 1차로 재편입했다. 게임 빌드(Unity WebGL ZIP) 업로드·압축해제·서빙은ADR-023으로 방향(홈페이지 OCI 서버 로컬 디스크 + 자체 서빙, S3/Lambda 미도입)만 정하고 별도 태스크(T-41)로 분리했다.작업 내용
V15__create_game.sql—game/game_screenshot/game_rating/game_build/game_memberGame,GameScreenshot,GameRating,GameBuild,GameMember엔티티 + 리포지토리GET /v1/games,GET /v1/games/{slug}—SecurityConfig에 permitAll 추가status=ACTIVE만 결합game_build는 메타데이터만 —build_file_url은 실제 파이프라인이 붙기 전까지 null (ADR-023 §범위)테스트 (ADR-019)
GameIntegrationTest7개 —display_order순, 숨김은 404activeBuildnull이고 500 아님, 있으면 버전·상태 노출참고
docs/02-acceptance-criteria.mdAC-9, INV-18~22docs/04-architecture.mdADR-023docs/05-api-spec.md§1.3, §3docs/07-task-breakdown.mdT-36