--- id: P-REINFORCE-AUTO-C8AC26 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - μƒνƒœ λ¨Έμ‹ (State Machine) 섀계" --- # [[μƒνƒœ λ¨Έμ‹ (State Machine) 섀계]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > μƒνƒœ λ¨Έμ‹ (State Machine) μ„€κ³„λŠ” μ‹œμŠ€ν…œμ΄ κ°€μ§ˆ 수 μžˆλŠ” λ‹€μ–‘ν•œ μƒνƒœμ™€ κ·Έ μƒνƒœ κ°„μ˜ μ „ν™˜μ„ λͺ…ν™•νžˆ μ •μ˜ν•˜λŠ” λͺ¨λΈλ§ κΈ°λ²•μž…λ‹ˆλ‹€ [1]. TypeScriptμ—μ„œλŠ” κ΅¬λΆ„λœ μœ λ‹ˆμ–Έ(Discriminated Unions)을 ν™œμš©ν•˜μ—¬ μƒνƒœ 머신을 μ™„λ²½ν•˜κ²Œ κ΅¬ν˜„ν•˜κ³  νƒ€μž… μ•ˆμ „μ„±μ„ 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 2]. λ‹€λ§Œ, 제곡된 μ†ŒμŠ€μ—λŠ” TypeScript νŒ¨ν„΄μœΌλ‘œμ„œμ˜ κ°„λž΅ν•œ 적용 사둀 외에 μƒνƒœ λ¨Έμ‹  섀계 μžμ²΄μ— λŒ€ν•œ 심측적인 μ •λ³΄λŠ” λΆ€μ‘±ν•©λ‹ˆλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **κ΅¬λΆ„λœ μœ λ‹ˆμ–Έ(Discriminated Unions)의 ν™œμš©**: TypeScript ν™˜κ²½μ—μ„œ μƒνƒœ 머신을 κ΅¬μΆ•ν•˜κ³  λͺ¨λΈλ§ν•˜λŠ” 데 μžˆμ–΄ κ΅¬λΆ„λœ μœ λ‹ˆμ–Έμ€ μ™„λ²½ν•˜κ²Œ λ“€μ–΄λ§žλŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€ [1, 2]. - **μƒνƒœ(State)와 μ „ν™˜(Transition)의 λͺ…ν™•ν•œ μ •μ˜**: μƒνƒœ 머신은 `Idle`(유휴 μƒνƒœ), `Fetching`(κ°€μ Έμ˜€λŠ” 쀑), `Success`(성곡), `Failure`(μ‹€νŒ¨)와 같은 λͺ…ν™•ν•œ μƒνƒœλ“€μ„ λͺ¨λΈλ§ν•©λ‹ˆλ‹€ [1]. λ˜ν•œ, `FETCH_START`, `FETCH_SUCCESS`, `FETCH_FAILURE`, `RETRY`(μž¬μ‹œλ„ 횟수 쑰건 포함), `REFRESH`와 같은 νŠΉμ • μ•‘μ…˜λ“€μ„ 톡해 μƒνƒœ κ°„μ˜ μ „ν™˜μ„ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1]. - **μœ νš¨ν•˜μ§€ μ•Šμ€ μƒνƒœ λ°©μ§€**: μƒνƒœ λ¨Έμ‹  νŒ¨ν„΄μ„ κ΅¬λΆ„λœ μœ λ‹ˆμ–Έκ³Ό κ²°ν•©ν•˜λ©΄, λΆˆκ°€λŠ₯ν•˜κ±°λ‚˜ μœ νš¨ν•˜μ§€ μ•Šμ€ μƒνƒœ(Invalid States)κ°€ μ‹œμŠ€ν…œμ— λ‚˜νƒ€λ‚˜λŠ” 것을 ꡬ쑰적으둜 λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [3, 4]. - **정보 λΆ€μ‘± λͺ…μ‹œ**: μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. μƒνƒœ 머신에 λŒ€ν•œ λ²”μš©μ μΈ μ†Œν”„νŠΈμ›¨μ–΄ 곡학적 섀계 μ΄λ‘ λ³΄λ‹€λŠ”, TypeScript의 νŠΉμ • νƒ€μž… νŒ¨ν„΄μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•œ μ˜ˆμ‹œλ‘œλ§Œ λ‹¨νŽΈμ μœΌλ‘œ λ“±μž₯ν•©λ‹ˆλ‹€ [1, 2]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Discriminated Unions]], Exhaustiveness Checking - **Projects/Contexts:** API Response Handling - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. μƒνƒœ λ¨Έμ‹ μ˜ 일반적인 μ•„ν‚€ν…μ²˜λ‚˜ λ‹€μ–‘ν•œ 섀계 νŒ¨ν„΄μ— λŒ€ν•œ μƒμ„Έν•œ 이둠적 배경은 μ œκ³΅λ˜μ§€ μ•ŠμœΌλ©°, 였직 TypeScript의 κ΅¬λΆ„λœ μœ λ‹ˆμ–Έμ„ μ΄μš©ν•œ μƒνƒœ λͺ¨λΈλ§μ˜ λ§₯λ½μ—μ„œλ§Œ 짧게 μ–ΈκΈ‰λ©λ‹ˆλ‹€ [1, 2]. --- *Last updated: 2026-04-18* ---