구축 경과 보고 · 2026. 08. 13

Factory World — 게임형 MES 시스템 MVP

기안서 『게임형 MES 시스템 구축 기안 및 기본설계서』를 기반으로, 심시티형 공장 맵과 게더타운식 근접 협업을 결합한 MES MVP를 하루 만에 구축·검증했습니다. 기획서의 Phase 1 전체와 Phase 2·3의 핵심이 동작하는 상태입니다.

저장소 github.com/je31061/factory-world (비공개) 실행 npm install && npm start → localhost:3000 관리자 콘솔 /admin.html
구현 커밋
5건 · 약 5,800줄
기능 요구사항
12/13 (FR-11 부분)
화면
6+ (SCR-01~06)
외부 인프라
0개 (단일 서버 실행)

진행 타임라인

1 · PHASE 1 MVP

게임형 협업 공간

게임 타이틀 로그인 → 캐릭터 설정 → 아이소메트릭 공장 맵(4존·설비 10대) 입장. 다중 접속 실시간 위치 동기화, 설비 상태창(HUD), 근접 대화 자동 활성화(서버 판정), 파일 공유, append-only 대화·이력 기록. 기획서 3.2 대표 시나리오(설비 알람 → 가상 집결 → 파일 공유 → 조치 → 이력 저장)를 2인 동시 접속으로 검증.

2 · 관리자 콘솔 (FR-10)

KPI · 로그 검색 · 마스터 관리

설비 상태 점유율, 알람 대응 시간, 대화 로그 검색(설비/기간/키워드), 설비·사용자 마스터 관리. 이후 알람 대응 리포트(에피소드별 대응 시간·협업 지표)로 확장 — 기대효과 "대응 시간 30% 단축"의 측정 근거.

3 · 맵 에디터 + 캐릭터

데이터 기반 맵 편집, 도트 캐릭터

존 영역 드래그 지정·설비 드래그 배치(코드 수정 없이 맵 변경 — NFR-02 실증). 설비별 데이터 연동 설정(프로토콜/주소/태그) 저장 구조 선반영. 캐릭터는 외부 에셋 없이 절차 생성한 4방향 도트 스프라이트로 교체, 플레이어 색상별 자동 생성.

4 · PHASE 2 게이트웨이

설비 자동 수집 — MQTT는 실연동

맵 에디터의 연동 설정을 읽어 상태를 자동 발행하는 게이트웨이. 수동 변경과 동일한 이벤트 규격이라 클라이언트 무수정(설계서 5.3 원칙 실증). MQTT는 실제 브로커 접속·구독(LIVE), OPC-UA/Modbus는 시뮬레이션(SIM). 로컬 브로커·발행기 개발 도구 포함.

5 · 인증 강화 (NFR-03)

비밀번호 + JWT + 역할 권한

scrypt 해시 비밀번호, JWT 12시간 세션(재시작에도 유지), 역할 3종(작업자/보전/관리자). 상태 변경은 보전·관리자만 — UI 비활성화와 서버 강제 이중 차단. 비밀번호 변경(본인)·초기화(관리자) 지원.

6 · PHASE 3 게임성

작업지시 퀘스트 · 포인트 · 리더보드

관리자가 발행한 작업지시가 현장에는 퀘스트로 표시 — 수락·완료(양품/불량 실적 등록)가 설비 이력에 자동 기록. 포인트(완료 +100P, 무결점 +20P, 알람 해제 +50P), 레벨, 뱃지 4종, 개인·팀 리더보드.

7 · 공정 라인 부하

심시티식 라인 연결 · 정체 관리

에디터에서 설비 간 라인을 클릭 체인으로 연결. 상류 가동 시 재공 유입, 하류 가동 시 배출되는 부하 모델 — 하류 정지 시 재공이 쌓여 라인이 녹→황→적으로 변하고, 90% 돌파 시 "라인 정체" 전체 알림. 자재 점이 라인을 따라 흐르는 애니메이션으로 흐름을 시각화.

기획서 대비 커버리지

ID요구사항상태비고
FR-01~03게임형 로그인 · 캐릭터 · 공장 맵완료맵 에디터 포함, 도트 캐릭터 절차 생성
FR-04~05설비 상태창 · 다중 접속완료수동 변경 + 게이트웨이 자동 수집
FR-06~09근접 대화 · 파일 · 기록 · 알림완료서버 근접 판정, append-only
FR-10관리자 콘솔완료KPI·로그 검색·마스터·맵 에디터·알람 리포트
FR-11설비 연동 (Phase 2)부분MQTT 실연동 완료, OPC-UA/Modbus는 시뮬레이션
FR-12~13생산관리 · 게이미피케이션 (Phase 3)MVP 완료작업지시 퀘스트·실적·포인트/레벨/뱃지/리더보드
NFR-03보안 (인증·권한)완료scrypt+JWT, 역할 기반. SSO/AD는 미적용
NFR-02·06확장성 · 기록 무결성완료맵·설비 데이터 정의, 이벤트 규격 통일, append-only

아키텍처

MVP는 외부 인프라 없이 단일 Node.js 서버로 동작하며, 기획서의 목표 스택으로 교체 가능한 경로를 유지합니다.

프론트 Phaser 3 + 순수 JS (빌드 없음) 서버 Express + Socket.IO DB SQLite (Node 내장) → PostgreSQL 파일 로컬 저장 → MinIO/S3 연동 MQTT LIVE / OPC-UA·Modbus SIM 세션 JWT HS256
핵심 설계 원칙(기획서 5.3)이 실증됨 — 수동 상태 변경과 게이트웨이 자동 수집이 동일한 이벤트 규격을 사용하므로, MQTT 실연동을 붙일 때 게임 클라이언트는 한 줄도 수정하지 않았습니다. 실제 공장 적용 시 브로커 주소만 바꾸면 됩니다.

검증 방식

남은 과제