피드로 돌아가기
I Built a Real-Time Simulation Game in a Single HTML File (Without React or Custom JavaScript)
Dev.toDev.to
Frontend

Virtual DOM 제거 및 DOM-First State 관리로 구현한 Zero-JS 렌더링 시뮬레이션

I Built a Real-Time Simulation Game in a Single HTML File (Without React or Custom JavaScript)

iDev-Games2026년 5월 26일5intermediate

Context

현대 프론트엔드 개발의 과도한 추상화 레이어와 Virtual DOM 기반의 복잡한 상태 동기화 프로세스에 따른 오버헤드 발생. React 등의 프레임워크가 제공하는 State management와 렌더링 파이프라인이 단순 인터랙티브 앱에서도 불필요한 리소스 소모를 유발하는 구조적 한계 직면.

Technical Solution

  • DOM 자체를 Database로 활용하여 HTML data-* attribute에 애플리케이션 상태를 직접 저장하는 DOM-First State 모델 설계
  • State.js 라이브러리를 통한 상태 값의 CSS Custom Properties 자동 매핑으로 브라우저 네이티브 렌더링 엔진을 직접 활용
  • data-state-intervaldata-state-increment 속성을 이용해 JavaScript 함수 없이 선언적 마크업만으로 Autonomous Game Loop 구현
  • data-state-trigger-chain 속성을 통해 절차적 로직을 DOM 요소 간의 연쇄 반응으로 대체한 Event Orchestration 시스템 구축
  • CSS Selector와 상태 속성을 결합하여 JavaScript 루프 없는 Reactive UI 업데이트 및 하드웨어 가속 렌더링 최적화

- 단순 상태 변경이 빈번한 UI의 경우 Virtual DOM 대신 CSS Variable과 Native DOM Attribute 연동 검토 - 복잡한 비즈니스 로직을 JS 함수로 구현하기 전, 선언적 속성을 통한 상태 전이(State Transition) 설계 가능 여부 판단 - 런타임 오버헤드 최소화가 필요한 임베디드 웹 환경에서 Build-less 아키텍처 도입 고려

원문 읽기