Files
2nd/01_Archive/2026-04-20/05_simulation-design-principles.md
T

1.4 KiB


💡 Lesson Learned: 시스템 시뮬레이션의 핵심 원리 (Simulation Design)

🎯 문제 상황 (The Problem)

테트리스는 단순한 게임이 아니라, **물리 법칙(Physics)**과 규칙 기반의 상태 변화가 작동하는 작은 시뮬레이터였습니다. 이 경험을 통해 '시뮬레이션을 어떻게 설계해야 하는지'에 대한 깊은 이해를 얻었습니다.

🔬 근본 원인 (Root Cause)

단순히 UI로 그리는 것에만 집중하면, 시스템이 **규칙(Ruleset)**과 **물리 법칙(Physics Law)**을 따르는 '가상 세계'의 느낌을 놓치기 쉽습니다.

해결책 (The Solution)

게임 로직을 gameWorker.js에 완전히 분리하여, 모든 변화를 수학적 함수(checkCollision, movePiece)로 처리하고 그 결과를 상태(State)에 반영했습니다. 이는 곧 "규칙이 물리 법칙처럼 작동하는 시스템" 설계의 성공적인 예시입니다.

💡 교훈 (Lesson Learned)

"모든 시뮬레이션은 '물리적 규칙'을 수학적으로 정의하고, 그 규칙을 절대 우회할 수 없도록 강제해야 한다." 이를 통해 우리는 단순한 게임을 넘어, 자율주행이나 물리 엔진에 적용 가능한 고수준의 시스템 모델링 능력을 갖추게 되었습니다.

🔗 관련 키워드

Simulation Design, Physics Engine, Ruleset Enforcement, Systemic Modeling