# πŸ“‘ μ‹œμŠ€ν…œ 톡신 ν”„λ‘œν† μ½œ 및 μƒνƒœ 전이 관리 맀뉴얼 (Protocols & State Flow) ## πŸ“œ 1. ν‘œμ€€ν™”λœ 데이터 κ΅ν™˜ κ·œμ•½ (Standardized Message Protocol) * **원칙:** λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ λ©”μ‹œμ§€λŠ” λ°˜λ“œμ‹œ λ‹€μŒ JSON ꡬ쑰λ₯Ό 따라야 ν•©λ‹ˆλ‹€. `{ type: 'ACTION_TYPE', payload: { data: value } }` * **ν•„μˆ˜ μ •μ˜ μ˜ˆμ‹œ:** * `INIT`: μ‹œμŠ€ν…œ μ΄ˆκΈ°ν™” μš”μ²­ 및 데이터 κ΅ν™˜ μ‹œμž‘ μ‹ ν˜Έ. * `KEY_INPUT`: μ‚¬μš©μž μž…λ ₯이 λ°œμƒν–ˆμ„ λ•Œμ˜ ν‚€ μ½”λ“œ 전솑. * `UPDATE`: μ—”μ§„μ—μ„œ 계산 μ™„λ£Œ ν›„, μƒˆλ‘œμš΄ μƒνƒœ(Board State)λ₯Ό μ „λ‹¬ν•˜λŠ” μ‹ ν˜Έ. ## πŸ”„ 2. μ‹œμŠ€ν…œ 생λͺ… μ£ΌκΈ° (Life Cycle Management) μ‹œμŠ€ν…œμ€ λ‹€μŒμ˜ λͺ…ν™•ν•œ μƒνƒœ 흐름을 거쳐야 ν•©λ‹ˆλ‹€: 1. **[Initialization]**: 초기 μ„€μ • $\rightarrow$ μ—”μ§„ μ‹œμž‘ μš”μ²­ (`INIT` λ©”μ‹œμ§€ 전솑). 2. **[Active Loop]**: μž…λ ₯ 감지 및 타이머 기반 루프 μ‹€ν–‰ (State Update & Redraw Cycle). 3. **[Termination]**: κ²Œμž„ μ˜€λ²„, λ‹€μŒ 단계 μ§„μž… λ“± λͺ…ν™•ν•œ μ’…λ£Œ μ‹ ν˜Έ λ°œμƒ μ‹œ λͺ¨λ“  λ¦¬μ†ŒμŠ€λ₯Ό 정리(Cleanup)ν•΄μ•Ό ν•©λ‹ˆλ‹€. ## 🚨 State Machine ν•„μˆ˜ 적용 μ‹œμŠ€ν…œμ˜ λ³΅μž‘λ„κ°€ λ†’μ•„μ§ˆμˆ˜λ‘ **μƒνƒœ λ¨Έμ‹ (State Machine)**을 λ„μž…ν•˜μ—¬, ν˜„μž¬ μ‹œμŠ€ν…œμ΄ μ–΄λ–€ μƒνƒœμ— μžˆλŠ”μ§€ (예: `READY`, `RUNNING`, `PAUSED`, `GAME_OVER`)λ₯Ό λͺ…ν™•νžˆ μ •μ˜ν•˜κ³  μ œμ–΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.