---
title: 6시간 지속 경량 웹 생존·피난·전쟁·좀비 개선
date: 2026-10-30T23:06:08.351Z
version: v1.0.11
status: 작업 중
state: progress
project: last37n
type: 작업 메뉴얼
report_kind: manual
category: 순차 작업 · 반복 QA
summary: 빌드 용량 증가를 차단하고 기존 네 가지 개념을 실제 게임·서버·배포 비용 검증과 함께 개선합니다.
format: tracefolio-v2
priority: normal
manual_id: lightweight-six-hour-20261031
round: 1
manual_state: active
payload: ../assets/submissions/2026-10-30-manual-lightweight-six-hour-20261031-20261030230608351-v1.0.11.json
---

## 목표와 완료 기준

사용자 요청6시간 동안 현재 웹 빌드의 초기 및 실제 배포 패키지 용량을 절대 늘리지 않으면서 생존·피난·전쟁·좀비 개념과 서비스 비용을 개선합니다.

완료 기준: 불변 기준 측정·하드 용량 게이트·깨끗한 가역 배포·동일 기능 다운로드 감소·반복 네트워크 비용 감소·기존 자산 기반 네 개념의 실제 플레이·현재 전체 회귀/저장·실제8788 적용/실제 화면·공식HTML 결과/정확한 시간 및 남은 범위. 새 대형 자산이나 숨겨진 필수 후속 다운로드로 상한을 우회하지 않습니다.

최초 1회차 · 순차 진행 · 전체 8개 · 이번 실행 T06

## 순차 작업 메뉴얼

| 순서 | 작업 | 실행 절차 | 완료 기준 | QA 절차 | 상태 |
| --- | --- | --- | --- | --- | --- |
| T01 | 실제 기준·기존 게임·비용 측정 | 현재 활성/누적 배포 파일·해시·콜드 브라우저·서버 스냅샷/자산 비용을 측정하고 불변 기준을 보존합니다. | 초기11095729bytes와 실제 패키지 바이트·기능 기준이 기록됩니다. | 원본 활성파일 해시/압축해제·현재 실제 게임 캡처/서버 기능 검사 | 완료 |
| T02 | 용량 증가 차단·깨끗한 배포 도구 | 초기 및 전체 런타임 상한·참조 누락/여분파일 검사를 구현하고 이전 빌드 누적 없이 검증된 후보만 가역 적용합니다. | 용량 초과/누락/여분파일은 적용 전 실패하며 기존 게임은 보존됩니다. | 실제 정상·초과·누락·여분 후보 검사와 복원 가능한 적용/재접속 | 완료 |
| T03 | 동일 기능의 다운로드·에셋 경량화 | 현재 자산/엔진 비용을 분석하고 압축·불필요한 중복 리소스·임포트 비용을 줄입니다. 한글/애니메이션/네 모드를 유지합니다. | 초기/전체 패키지가 기준보다 작고 기존 표시·조작이 실제 실행됩니다. | 원본/후보 바이트·헤더·압축해제·한글·행동·수원/전쟁/좀비 실제 렌더 | 완료 |
| T04 | 멀티플레이 전송·서버 비용 감소 | 호환 협상과 서버 권한을 보존하며 반복 불변 데이터·상태 전송을 줄이고 재접속·월드 격리를 검증합니다. | 현재 부하 대비 실제 전송량이 줄고 상태/명령 결과가 유지됩니다. | 구/신 프로토콜 상태 동등성·100명90초/재접속·월드/명령/거래·실제 두 브라우저 | 완료 |
| T05 | 기존 자산 중심 네 가지 게임 루프 보강 | 기존 모델·아이템·지도만 사용해 좀비의 소음 조사/웅크리기 접근, 순환 동네 보급 제보, 적 접근 시 구조 호위 대기/재개와 생존 경고 UI를 구현합니다. 미결정 수치는 provisional 설정으로 분리합니다. | 네 개념의 실제 플레이 연결이 있으며 새 대형 에셋/필수 추가 다운로드가 없습니다. | 소음 범위/유효시간/월드격리/중복, 보급 영수증/수용량, 위험 호위 정지·재개·안전지대, 기존 생존·저장 회귀와 실제 Web 화면/행동을 검사합니다. | 완료 |
| T06 | 런타임 렌더·메모리·기기 설정 개선 | 동일한 고정 위치·지도·장비·99원격접속+1실제Unity관찰자에서 현재 군중 비용을 먼저 측정합니다. 확인한 병목만 줄이고 반복 이동/월드전환의 메모리·렌더·오류와 빌드 상한을 재검증합니다. | 기존 핵심 표현/정보를 보존하며 측정된 비용과 제한이 기록됩니다. | 고정99WS+1실제Unity관찰자의 동일좌표/카메라1440x900·3회10초 표본과 실제GPU종류를 대조합니다. 가까운 원본/원거리메시 복귀·재질/장비·14클립 변형을 검사합니다. 실루엣은 원본 전체 bounds를 기준으로 양쪽을 동일 프레임(높이85/폭130px 이내)에 맞춘252개 비교·최저IoU0.9 기준을 사용합니다. 반복 이동/월드전환·메모리/캐시 상한·오류·빌드 상한을 확인합니다. | 진행 |
| T07 | 전체 회귀·실제 로컬 적용 | 현재 전체 서버/DB/클라이언트·네 개념과 멀티플레이·엄격 용량 게이트를 통과한 마지막 후보만 적용합니다. | 실제8788 게임과 저장/재접속이 유지되고 초기/전체 용량이 증가하지 않습니다. | 전체 자동검사·Native/Web·2클라이언트·100명 부하·저장복구·깨끗한 패키지/실제 화면 | 대기 |
| T08 | 최종 전체 QA·시간·아카이브 전달 | 현재 버전 전체 QA·원본/결과 비교와 실제 화면 HTML 보고·공개 상태·시간·교훈을 기록합니다. | 6시간 예산 안에 적용/검증/정확한 상태 보고가 있으며 미실행 항목을 통과 처리하지 않습니다. | 현재 전체 작업/의존버전 QA·이미지/HTML/링크·공개 확인 또는 실제 제한 증거 | 대기 |

## QA 반복 기록

### Q01 · step · 2026-10-30T20:24:58.023Z

불변 바이트·현재 전체 서버/실제 두 모드 기준 측정

- T01 r1 · pass: 현재 활성 초기11095729bytes·압축해제33390388bytes·실제5개 런타임 파일11097504bytes와 SHA-256/원본백업을 고정했습니다. 누적 디렉터리114817961bytes/30개는 과거 빌드가 섞인 값으로 구분합니다. 실제 현재89개/TypeScript 검사 실패0·건너뜀0,100명90초/재접속10/명령9900/오류0·raw전송3987492590bytes. 현재 두 Web 모드의 실제 도시/장비12/구조3·NPC9/12·오류0, 군사/좀비 각각15초 표본2258134/2353775bytes를 확인했습니다. 현재100명 스냅샷39908bytes 중 players23851bytes입니다. · 근거: docs/qa/lightweight/baseline.json; snapshot-baseline.json; load-baseline.json; baseline/browser.json; .runtime/lightweight-baseline-tests.log
### Q02 · step · 2026-10-30T20:35:08.852Z

초기/전체/마지막릴리스 상한·실제1바이트 거부·깨끗한 가역 적용

- T02 r1 · pass: 13개 도구 검사에서 gzip/br 파일 검증·1바이트 상한·누락/손상/여분/원격참조·오래된/실패 QA 거부·원본 보존·기록 실패 시 실제 이전 게임/잠금 복원을 확인했습니다. 실제 게임의 로더1바이트 증가 후보는 차단됐고 기본 게임 지문이 유지됐습니다. 실제 후보/기본8788 각각13개 검사(파일별 압축해제 해시/인코딩/wasm MIME·도시·점프·한글채팅·기존카탈로그·오류0)를 통과한 동일 게임을5파일11097472bytes로 적용했습니다. 초기11095729bytes는 동일하며 누적114817961bytes는 비공개 백업에 보존했습니다. PowerShell과 실제Unity 진입점은 출력 누락/기존배포 덮어쓰기를 거부했습니다. 프로젝트 AGENTS·README·서비스 문서에 상한을 고정했습니다. · 근거: tools/test/web-release.test.mjs; docs/qa/lightweight/one-byte-gate.json; package/execution.json; package-live/execution.json; unity-build-gate.json; package-promotion.json
### Q03 · step · 2026-10-30T20:51:40.427Z

모션 압축 최초 품질 게이트 실패·미적용

- T03 r1 · fail: 14클립73444본자세 비교에서 초기 Optimal(.1/.01/.01) 압축의 최대오차 약0.01477m/2.6053도가3mm/.35도 게이트를 넘어 실패했습니다. 컨트롤러는 실제 참조 없는 AvatarMask10개를 확인해32객체/마스크11→22객체/마스크1로 정리했고 반복Prepare의 동일바이트/원본FBX유지는 통과했습니다. 실패 모션은 실제 기본 게임에 적용하지 않았습니다. 새 검사는 매번 Off 원본을 다시 불러와 기준을 고정한 후 더 낮은오차로 재검증합니다. · 근거: docs/qa/lightweight/attempts/character-compression-01.json; .runtime/character-compression.log; Assets/Editor/CharacterCompressionVerification.cs
### Q04 · step · 2026-10-30T20:52:24.097Z

더 낮은Optimal오차 설정도 자세 게이트 실패·미적용

- T03 r1 · fail: Off 원본을 매번 다시 불러온 두 번째 검사에서도 .005/.001/.001 Optimal 설정의 최대 회전2.6053도/위치0.01477m가 유지되어 실패했습니다. 원본FBX·참조정리·반복파일동일은 통과했으나 이 모션 후보는 적용하지 않았습니다. 추가 런타임 곡선 압축을 사용하지 않는 KeyframeReduction 방식으로 분리해 검사합니다. 같은 오차가 유지되는 구체적인 엔진 내부 원인은 미확인입니다. · 근거: docs/qa/lightweight/attempts/character-compression-20261030205147172.json
### Q05 · regression · 2026-10-30T21:16:26.553Z

파일/엔진/모션/캐시 경량화 현재 후보 실행 통과

- T03 r1 · pass: 동일 디코딩 해시의 Brotli 재압축8503386bytes를 실제 브라우저에서 검증한 후, 필수 스크립트를 직렬화한 부트스트랩/기본스플래시 제거와 엔진 축소·참조없는AvatarMask10개 제거·키프레임 축소로 현재 초기6775800/전체6777674bytes(기준11095729/11097472 이하)를 확인했습니다. 원본14클립73444본자세 최대위치0.001101m·측정회전0도/FBX보존·반복생성바이트동일. 실패한Optimal2회 기록을 보존했습니다. 실제 Native23검사·Web14행동/원격동기화·기본Web13검사·군사/좀비9/12NPC·오류0을 통과했습니다.21개 배포도구/HTTP검사·TypeScript 통과. 실제 콜드CDP게임파일전송6776884bytes→같은컨텍스트웜0bytes이며HTML/지도/WS와구분합니다. 이 후보는 아직 기본 게임에 적용하지 않았습니다. · 근거: docs/qa/lightweight/recompression.json; assets-package.json; character-compression.json; native-actions/actions.json; web-actions/result.json; assets/execution.json; assets/browser.json; cache/result.json; .runtime/lightweight-delivery-tests.log
- T02 r1 · pass: 콘텐츠 해시 이름의 실제파일변조 거부·UTF8전체바이트·디렉터리junction거부와 기존13개를 포함한16개패키지검사, 실제Brotli/gzip/HEAD/캐시/경로HTTP5검사를 다시통과했습니다. Unity출력경로보호·기본게임기존승인상한은유지합니다. · 근거: tools/test/web-release.test.mjs; server/test/web-delivery.test.ts; .runtime/lightweight-delivery-tests.log
### Q06 · step · 2026-10-30T21:59:25.806Z

비공개 상태 패치 최초 실패와 수정 근거 보존

- T04 r1 · fail: 최초 비공개 코덱 검사에서 __proto__ 키가 허용되는 실패를 확인했습니다. 명시적 금지 키 배열과 변경 전 검증으로 수정했으며, 이 실패는 배포 전 시험입니다. 현재16개 코덱/실제WS 검사와 전체110개 서버 검사는 통과했고 실제 Web 재접속/복구6검사도 통과했습니다. 행동 회귀가 진행 중이므로 단계 완료 처리는 보류합니다. · 근거: docs/qa/lightweight/attempts/state-patch-01.json; .runtime/state-patch-entities-tests-02.log; .runtime/lightweight-network-full-tests-02.log; docs/qa/lightweight/network-browser/result.json
### Q07 · regression · 2026-10-30T21:59:52.752Z

상태 전송 경량화 실제 서버·Unity·Web 회귀 통과

- T04 r1 · pass: 전체110개 서버 검사/TypeScript,16개 코덱·실제WS 검사, Unity11루트/세대/수신함 실제 검사, Web13기본/6복구·월드전환/14행동 검사를 통과했습니다. 100WS·80이동·10재접속·9900명령에서 상태3933910684→739112372bytes(81.2%감소),오류/미처리0,p95 68.22ms. 초기6782135/전체6784001bytes로 승인 상한 이하입니다. 현재 후보는 기본 게임에 아직 적용하지 않았습니다. · 근거: docs/qa/lightweight/load-entities/sustained-100.json; network-package.json; network/execution.json; network-browser/result.json; network-actions/result.json; client-state-cache.json; .runtime/lightweight-network-full-tests-02.log
### Q08 · step · 2026-10-30T22:12:05.471Z

새 규칙 비공개 QA 실패와 빠른 포인터 이동 재현 보존

- T05 r2 · fail: 최초 시험 fixture에서 지연 초기화 combat 접근과 Site 전체 복사로 Player UUID가 바뀌는 문제를 실제 PostGIS 오류로 발견해 좌표만 복사하도록 수정했습니다. 수정 후 규칙10개/실제DB1개 검사를 통과했습니다. 실제Web에서 하단 클릭 직후 중앙으로 포인터를 옮길 때 탄약이 줄었고,350ms뒤 이동하면 기존 후보에서 통과했습니다. 현재 좌표만 검사하는 기존 조건을 보완해 누른 시작 위치를 브라우저에서 보존하는 수정 후보를 빌드 중입니다. 내부 엔진 이벤트 순서 자체는 미확인입니다. · 근거: docs/qa/lightweight/attempts/field-fixture-01.json; field-footer-click-01.json; field-footer-delay-02.json; .runtime/field-postgres-02.log; .runtime/field-pointer-tests.log
### Q09 · regression · 2026-10-30T22:15:39.824Z

기존 자산 기반 현장 플레이와 빠른 HUD 클릭 수정 실제 Web 통과

- T05 r2 · pass: 가상 소음/웅크림 좀비 시각·조사, 순환 동네 보급 보너스, 가시 적 근접 시 호위 대기/재개, 생존 회복 안내를 설정으로 분리했습니다. 새 대형 자산/다운로드 없음. 실제Web14현장검사·14행동/원격동기화·13기본검사·서버122개/TS·PostGIS실패롤백/중복/재시작·Unity12루트캐시 통과. 빠른하단클릭→포인터이동 탄약감소 실패와 지연대조를 보존하고 누른시작위치 검사 후 동일빠른조건통과. 현재 초기6782209/전체6784067bytes 승인상한이하, 기본게임미적용입니다. · 근거: docs/qa/lightweight/field-browser/result.json; field-actions/result.json; field/execution.json; field/postgres.json; field-client-cache.json; field-package-03.json; .runtime/field-full-tests-03.log; docs/FIELD_RULES.md
### Q10 · step · 2026-10-30T22:56:03.285Z

동일100명 장면 측정과 원거리 메시 검증 실패 보존

- T06 r2 · fail: 고정99WS+1실제Unity 관찰자·동일좌표/카메라1440x900에서 초기19.12FPS/7236draw,1차26.98FPS/4042draw,재질묶음약28FPS/1889draw,WebAssembly2023약32FPS를 측정했습니다. 원본14클립1852704정점 변형오차0/14→5재질구간을 검증했습니다. 최초QA서버준비전ECONNREFUSED와검증용C#선언컴파일오류를수정했습니다. 새원거리메시의252개실루엣평균0.99357이나최저0.89753으로설정기준0.9미달해적용하지않고수정중입니다. 뼈대매핑·원본복귀·캐시상한은통과했습니다. · 근거: docs/qa/lightweight/crowd-before/result.json; crowd-after-01/result.json; crowd-after-02/result.json; crowd-simd-01/result.json; character-palette.json; character-lod-assets.json; attempts/character-lod-silhouette-01.json; attempts/crowd-startup-01.json; .runtime/runtime-render-rules.log

## 남은 작업과 다음 반복

첫 미완료 작업부터 실제 실행·QA를 진행합니다.

이전 회차: [메뉴얼 열기](../../../projects/last37n/reports/2026-10-30-manual-lightweight-six-hour-20261031-20261030225603636-v1.0.10.html)

## 작업 시간

- 제안 시간: 6시간 예산. 시작2026-10-31 05:16:01 KST, 종료 예산2026-10-31 11:16:01 KST. 분석/상한/패키지55분·파일경량화60분·전송60분·게임루프80분·런타임40분·회귀/전달65분을 우선 배분하며 실제 결과에 따라 순서 내 조정합니다.
- 실제로 완료된 시간: 기록 2026-10-31 08:06:08 KST. 시작2026-10-31 05:16:01 KST·6시간 예산 종료11:16:01 KST.
- XERJ: 미사용 — 도구 목록에서 XERJ 제공 없음 확인. rg·실제 소스/로그/실행으로 대체합니다.
