현행 마일스톤 작업 라인¶
기준과 운영 원칙¶
- 기준 원문: 게시된 SFH 프로젝트 Master GDD
- 기준 판정: Master GDD 구현 대조의 75%, Phase 1·2·3 완료, Phase 4 미완료, Phase 5 부분 완료, Phase 6 로컬 기반
- 완료 판정: 클래스나 UI가 존재하는지가 아니라 플레이어가
선택 → 실행 → 결과 → 다음 세션 반영을 인식할 수 있고 자동 E2E가 같은 인과를 증명해야 합니다. - 모듈 원칙: 데이터 정의, 도메인 규칙, 화면 표현, 저장·외부 제공자를 분리합니다. 기존 대형 Scene이나 HUD에 새 규칙을 직접 추가하지 않습니다.
- 진행 원칙: 한 작업선의 필수 게이트가 실패하면 다음 작업선으로 넘어가지 않습니다. Phase 2·3 회귀가 발생하면 해당 변경은 완료로 계산하지 않습니다.
한눈에 보는 실행선¶
기준선 고정 → Phase 1 자유 스킬 배치 → Phase 4 전리품 계약 → 현장 교체·세션 소켓·정산 → Phase 5 로비 4대 세팅 → Phase 6 비동기 랭킹·시즌
Phase 2의 무기 교체·태그·AP·쿨타임과 Phase 3의 탈출 방어·정산은 전 구간 공통 회귀선입니다. 성능 예산, 모듈 감사, 위키와 플레이어 인식 E2E는 각 작업선 종료 때 함께 갱신합니다.
작업선 0 · 기준선 잠금¶
목적: 이후 변경이 현재 플레이 가능한 코어 루프를 망가뜨리지 않도록 비교 기준을 먼저 고정합니다.
| ID | 작업 | 산출물 | 통과 조건 |
|---|---|---|---|
| BASE-01 · 완료 | 현재 메인 빌드의 계약·실제 입력 E2E 기준값 저장 | Phase 2·3, 방 전투, 탈출, 정산, HUD, 중·대형 성능 기준표 | Godot smoke·실제 입력 E2E·위키 게이트로 회귀선 고정 |
| BASE-02 · 완료 | 신규 모듈 의존 방향 고정 | Definition/Policy/Service/Presenter/Provider 경계표 | Profile→Service→System/HUD 단방향 의존 확인 |
작업선 1 · Phase 1 완결: 자유 스킬 배치¶
물리 키를 Action에 연결하는 현재 K 키 설정과, 스킬을 Action에 배치하는 새 기능은 별도 모듈로 유지합니다.
| ID | 구현 단위 | 모듈 경계 | 플레이어가 확인할 완료 조건 | E2E 게이트 |
|---|---|---|---|---|
| P1-01 · 완료 | 스킬↔Action 배치 데이터 계약 | SkillBindingProfile은 skill_id → action_id만 소유 |
장착 스킬마다 현재 입력 위치가 보임 | 저장 전·후 매핑 스냅샷 일치 |
| P1-02 · 완료 | 충돌·교환 정책 | SkillBindingService가 중복 교환, 기존 장비 시스템이 태그 적합성을 담당 |
이미 사용 중인 칸에 놓으면 두 스킬 교환 피드백 | 교환·거부·허용 Action 검증 |
| P1-03 · 완료 | K 화면의 두 단계 편집 | UI는 서비스 명령과 읽기 전용 상태만 사용 | 키 배치와 스킬 배치를 구분해 편집 |
실제 K/ESC, 22개 키와 3개 장착 스킬 행 |
| P1-04 · 완료 | 전투·HUD 실시간 반영 | CombatSkillSystem과 HUD는 배치 제공자만 조회 |
배치 직후 키 표시와 실제 Action 발동 위치가 동기화 | 배치 Signal→상태 재방출→HUD 갱신 |
| P1-05 · 완료 | 영구 저장·초기화 | JSON 저장을 서비스 내부 어댑터로 격리 | 재시작 뒤 유지되며 기본값 복구 가능 | 저장→재구성→복구→초기화 |
Phase 1 종료 게이트: 플레이어가 장착한 임의 스킬을 허용된 입력에 배치하고, 충돌을 이해하고, 재시작 뒤에도 같은 HUD와 발동 결과를 확인합니다.
작업선 2 · Phase 4 기반: 전리품 생명주기 계약¶
현장 교체보다 먼저 아이템의 소유 기간과 정산 결과를 고정합니다. 이 계약은 Phase 5 상점과 Phase 6 보상에서도 재사용합니다.
| ID | 구현 단위 | 모듈 경계 | 플레이어가 확인할 완료 조건 | E2E 게이트 |
|---|---|---|---|---|
| P4-01 | 전리품 2대 분류 | 영구 자산형과 세션 증폭·환금형의 획득·장착·탈출·사망 정책을 Resource로 정의 | 아이템 상세에서 이번 런/영구/환전 결과를 진입 전에 이해 | 정의 누락·잘못된 생명주기 조합 거부 |
| P4-02 | 지역·난이도별 드랍 테이블 확장 | LootTableProvider는 무기·스킬·도면·룬·코어·유물 정의만 제공 |
지역 선택과 실제 드랍 성격이 일치 | 동일 시드 결정성, 지역별 표본 분포, 성능 예산 |
| P4-03 | 현장 비교·획득 계약 | 비교 서비스는 현재 장비와 후보 수치만 계산, 표시와 입력은 별도 | 드랍 접근 시 교체 이득·손실·보존 결과가 보임 | 드랍→접근→비교 패널→취소/선택 |
작업선 2 종료 게이트: 모든 신규 전리품은 드랍되기 전에 어디서 나오고, 언제 사라지고, 탈출·사망 때 무엇이 되는지 자동 검증할 수 있습니다.
작업선 3 · Phase 4 완결: 현장 교체·세션 소켓·자동 환전¶
| ID | 구현 단위 | 모듈 경계 | 플레이어가 확인할 완료 조건 | E2E 게이트 |
|---|---|---|---|---|
| P4-04 | 현장 무기·스킬 즉시 교체 | 전리품 명령을 장비·스킬 인벤토리 공개 계약으로 전달 | 전투 중 새 장비/스킬을 비교하고 즉시 사용, 기존 항목 처리 결과 확인 | 드랍→교체→HUD/공격 변화→기존 항목 위치 확인 |
| P4-05 | 런 전용 룬·코어·유물 소켓 | 영구 장비 모듈과 별도인 SessionSocketService가 무기·스킬 런 효과만 소유 |
소켓 장착 즉시 전투 수치·기전이 변하고 런 전용임을 표시 | 소켓→실제 피해/쿨타임 변화→해제/교환 |
| P4-06 | 탈출 자동 환전·영구 해금·사망 소실 | RunSettlementService가 정책 결과를 만들고 프로필·상점·재화 저장소는 결과만 적용 |
정산 화면에서 해금, 환전액, 소실 항목이 분리되어 보임 | 성공 시 도면 등록·자동 환전, 사망 시 런 전리품 소실, 중복 정산 방지 |
Phase 4 종료 게이트: 처치/탐색 → 장비·스킬 드랍 → 현장 교체 또는 소켓 → 전투 변화 → 탈출 정산의 전체 인과가 한 실제 플레이 E2E로 연결됩니다.
작업선 4 · Phase 5 완결: 로비 4대 세팅¶
| ID | 구현 단위 | 모듈 경계 | 플레이어가 확인할 완료 조건 | E2E 게이트 |
|---|---|---|---|---|
| P5-01 | 캐릭터 선택 | 캐릭터 정의·패시브·가격과 표현을 분리 | 선택 전후 능력·비용 차이를 브리핑에서 확인 | 캐릭터 변경→견적→작전 내 패시브 확인 |
| P5-02 | 주·보조무기와 스킬 투자 | Phase 4의 동일 자산 정의·해금 상태 재사용 | 소유/미해금/이번 런 구매 상태가 구분됨 | 구매→장착→태그 적합성→실전 발동 |
| P5-03 | 유틸리티 투자 | 가방·회복/공격 소모품·비상 탈출을 독립 카탈로그로 제공 | 수량·사용 조건·소실 조건을 진입 전에 확인 | 구매→실전 사용→잔량/정산 |
| P5-04 | 단일 작전 초안과 BEP 미리보기 | 선택 UI는 OperationDraft만 편집하고 거래는 확정 시 한 번 수행 |
캐릭터·무기·스킬·유틸리티·계약·페널티와 총비용/기대 보상이 한 화면에 보임 | 변경마다 견적 갱신, 확정 원자성, 취소 무과금 |
| P5-05 | 파산 방지 프리셋 | 무료 기본 세팅을 경제 정책으로 격리 | 재화 0에서도 무료 무장·기본 맵으로 출격 가능 | 0 재화→무료 투입→탈출/사망→다시 투입 |
Phase 5 종료 게이트: 플레이어가 네 종류의 투자를 한 브리핑에서 선택하고 비용을 한 번만 지불하며, 선택한 효과가 작전과 정산에 정확히 이어집니다.
작업선 5 · Phase 6 완결: 비동기 랭킹·시즌 보상¶
| ID | 구현 단위 | 모듈 경계 | 플레이어가 확인할 완료 조건 | E2E 게이트 |
|---|---|---|---|---|
| P6-01 | 랭킹 제공자 인터페이스 | 기존 로컬 제공자를 유지하고 온라인 구현을 어댑터로 추가 | 오프라인 기록은 보존되고 온라인 상태가 명확히 표시 | 로컬/온라인 제공자 교체와 오프라인 폴백 |
| P6-02 | 신원·제출·검증·재시도 | 세션 결과 서명, 멱등 키, 서버 검증과 큐를 UI에서 분리 | 제출 중·성공·재시도·거부 이유를 확인 | 중복 제출, 네트워크 단절, 변조 기록 거부 |
| P6-03 | 시즌 규칙 | 기간·조건·종료 스냅샷을 SeasonPolicy로 분리 |
현재 시즌 종료일과 참여 조건이 보임 | 시즌 경계, 조건 불일치, 종료 후 읽기 전용 |
| P6-04 | 주간 칭호·오라 보상 | SeasonRewardService는 지급만, 장착·표현은 프로필/프레젠테이션 담당 |
획득 근거를 보고 칭호·오라를 장착 | 순위 확정→1회 지급→재로그인 유지→시각 적용 |
Phase 6 종료 게이트: 동일 조건의 세 랭킹이 검증된 비동기 기록으로 집계되고, 시즌 종료 후 보상이 중복 없이 계정에 남습니다.
공통 작업선 · 매 묶음 종료 시 필수¶
| ID | 검사 | 완료 기준 |
|---|---|---|
| X-01 | 모듈 감사 | 공개 Signal·Resource·Service 계약을 기록하고 Scene 경로 직접 결합이나 순환 의존이 없음 |
| X-02 | 플레이어 인식 E2E | 단서, 입력 반응, 상태 변화, 결과, 다음 행동을 플레이어 관점에서 판정 |
| X-03 | 성능 예산 | 평균 PC·웹 빌드에서 60 FPS 목표 예산과 대형 교전 상한 유지 |
| X-04 | 밸런스 데이터 | 실시간 Sheet 시험값과 확정 CSV 공급자를 같은 스키마 뒤에 두고 모드 전환 검증 |
| X-05 | 문서·배포 | 기능 문서, 모듈 감사, 일일 업데이트, 검색 우선순위, 전체 노드맵을 함께 갱신 |
착수 순서와 중단 규칙¶
- ~~
BASE-01~02~~ — 완료 - ~~
P1-01~05~~ — Phase 1 완료 P4-01~03— 다음 작업: 전리품 계약 동결P4-04~06— Phase 4 종료P5-01~05— Phase 5 종료P6-01~04— Phase 6 종료
작업 묶음은 최대 하나의 플레이어 흐름만 완결합니다. 테스트 실패, Phase 2·3 회귀, 데이터 마이그레이션 미정, 서버 검증 부재가 있으면 다음 번호를 시작하지 않습니다. 비동기 서버 준비는 Phase 6 제공자 인터페이스까지 병렬 설계할 수 있지만 Phase 5 경제 계약이 고정되기 전에 보상 지급을 연결하지 않습니다.
검색 별칭¶
마일스톤, 작업 라인, 개발 순서, 다음 작업, Phase 1, Phase 4, Phase 5, Phase 6, 자유 스킬 바인딩, 전리품 생명주기, 현장 교체, 세션 소켓, 자동 환전, 로비 4대 세팅, 비동기 랭킹, 시즌 보상, 완료 조건, E2E 게이트