--- id: P-REINFORCE-AUTO-B2F9C0 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - API 응닡 및 μ—λŸ¬ 핸듀링 μ•„ν‚€ν…μ²˜" --- # [[API 응ᄃᅑᆸ 맟 α„‹α…¦α„…α…₯ ᄒᅒᆫ들랑 α„‹α…‘α„α…΅α„α…¦α†¨α„Žα…₯|API 응닡 및 μ—λŸ¬ 핸듀링 μ•„ν‚€ν…μ²˜]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > API 응닡 및 μ—λŸ¬ 핸듀링 μ•„ν‚€ν…μ²˜λŠ” μ‹œμŠ€ν…œ λ‚΄μ—μ„œ λ°œμƒν•˜λŠ” μ—λŸ¬λ₯Ό μ˜ˆμƒ κ°€λŠ₯ν•œ 것과 κ·Έλ ‡μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ κ΅¬λΆ„ν•˜κ³ , 이λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μΌκ΄€λ˜κ³  예츑 κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•œ 섀계 λ°©μ‹μž…λ‹ˆλ‹€. 주둜 'μ˜ˆμ™Έ λ˜μ§€κΈ°(throw exceptions)' λŒ€μ‹  λͺ…μ‹œμ μΈ κ²°κ³Ό 객체(Result νƒ€μž…)λ‚˜ 식별 κ°€λŠ₯ν•œ μœ λ‹ˆμ˜¨(Discriminated Unions)을 ν™œμš©ν•˜μ—¬ νƒ€μž… μ•ˆμ „μ„±μ„ ν™•λ³΄ν•˜κ³ , 컨트둀러 κ³„μΈ΅μ—μ„œ μ‘λ‹΅μ˜ μ œμ–΄ 흐름을 λͺ…ν™•νžˆ κ΄€λ¦¬ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μ—λŸ¬μ˜ λΆ„λ₯˜μ™€ 처리 μ² ν•™** μ—λŸ¬λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ΄€μ μ—μ„œ 'μ˜ˆμƒ κ°€λŠ₯ν•œ μ—λŸ¬(Expected errors)'와 'μ˜ˆμƒμΉ˜ λͺ»ν•œ μ—λŸ¬(Unexpected errors/Defects)'둜 λ‚˜λ‰©λ‹ˆλ‹€ [1, 2]. 400 Bad Requestλ‚˜ 504 Gateway Timeout 같은 μ˜ˆμƒ κ°€λŠ₯ν•œ μ—λŸ¬λŠ” μ˜ˆμ™Έ(Exception)둜 λ˜μ§€κΈ°λ³΄λ‹€λŠ” λͺ…μ‹œμ μΈ μ—λŸ¬ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•˜μ—¬ μ‹œμŠ€ν…œμ΄ 볡ꡬ κ°€λŠ₯ν•˜λ„λ‘ μ œμ–΄ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1]. * **Result νŒ¨ν„΄μ„ ν†΅ν•œ λͺ…μ‹œμ  μ—λŸ¬ λ°˜ν™˜** μ—λŸ¬ λ°œμƒ μ‹œ λ¬΄λΆ„λ³„ν•˜κ²Œ μ˜ˆμ™Έλ₯Ό λ˜μ§€λ©΄ μ œμ–΄ 흐름을 νŒŒμ•…ν•˜κΈ° μ–΄λ ΅κ³  νƒ€μž… μ‹œμŠ€ν…œμ—μ„œ λ°˜ν™˜ νƒ€μž…μ„ λͺ…ν™•νžˆ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€ [3]. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ˜κ°μ„ 받은 `Result` νƒ€μž…(예: `neverthrow` 라이브러리의 `Ok`, `Err`)을 μ‚¬μš©ν•˜μ—¬, ν•¨μˆ˜κ°€ μ–΄λ–€ μ—λŸ¬λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆλŠ”μ§€ λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•˜λŠ” 방식이 ꢌμž₯λ©λ‹ˆλ‹€ [4-6]. 이 방식을 톡해 컴파일러 μˆ˜μ€€μ—μ„œ λͺ¨λ“  μ—λŸ¬ 상황을 μ²˜λ¦¬ν•˜λ„λ‘ κ°•μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€ [7]. * **식별 κ°€λŠ₯ν•œ μœ λ‹ˆμ˜¨(Discriminated Unions)을 μ΄μš©ν•œ 응닡 λͺ¨λΈλ§** API 응닡을 λ‹€λ£° λ•ŒλŠ” 식별 κ°€λŠ₯ν•œ μœ λ‹ˆμ˜¨μ„ ν™œμš©ν•˜λŠ” 것이 μ΄μƒμ μž…λ‹ˆλ‹€ [8, 9]. 응닡 객체에 `status: "success"`λ‚˜ `status: "error"`와 같은 곡톡 속성(νŒλ³„μž)을 두어 성곡 μ‹œμ—λŠ” 데이터(data)λ₯Ό, μ—λŸ¬ μ‹œμ—λŠ” μ—λŸ¬ λ©”μ‹œμ§€(error)λ₯Ό ν¬ν•¨ν•˜λ„λ‘ λͺ¨λΈλ§ν•˜λ©΄, TypeScript의 μ™„μ „μ„± 검사(Exhaustiveness Checking)λ₯Ό 톡해 μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μƒνƒœκ°€ 없도둝 컴파일 μ‹œμ μ— 검증할 수 μžˆμŠ΅λ‹ˆλ‹€ [8, 9]. * **메타데이터 ν™œμš©κ³Ό 컨트둀러 μ€‘μ‹¬μ˜ μ œμ–΄ 흐름** 응닡 객체에 `_tag`와 같은 메타데이터 속성을 ν¬ν•¨ν•˜μ—¬ λ‚΄λΆ€ 둜직 및 응닡 객체λ₯Ό κ΅¬λΆ„ν•˜λ©΄, λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ 및 ν΄λΌμ΄μ–ΈνŠΈ ν™˜κ²½ 간에 μΌκ΄€λœ μ œμ–΄ 흐름을 μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [10, 11]. λ˜ν•œ μ»¨νŠΈλ‘€λŸ¬λŠ” μš”μ²­κ³Ό μ‘λ‹΅μ˜ λͺ¨λ“  흐름을 관리해야 ν•˜λ©°, μ „μ—­ Catch-all λ―Έλ“€μ›¨μ–΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μ œμ–΄ 흐름을 λ‹΄λ‹Ήν•˜λŠ” λŒ€μ‹  였직 μ˜ˆμƒμΉ˜ λͺ»ν•œ 결함을 μ²˜λ¦¬ν•˜κ³  κ°œλ°œμžμ—κ²Œ μ•Œλ¦¬λŠ” μš©λ„λ‘œλ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [12, 13]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Result Type|Result Type]], [[Discriminated Unions|Discriminated Unions]], Exception Handling - **Projects/Contexts:** [[TypeScript API Development|TypeScript API Development]], [[Server Architecture|Server Architecture]] - **Contradictions/Notes:** μ „μ—­ μ˜ˆμ™Έ 처리기(Global Exception Handler)λ₯Ό 두고 μ»¨νŠΈλ‘€λŸ¬μ—μ„œ μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚€λŠ” 방식이 μ½”λ“œκ°€ 깔끔해진닀고 μ„ ν˜Έν•˜λŠ” κ°œλ°œμžλ“€λ„ μžˆμ§€λ§Œ, Result νŒ¨ν„΄μ„ μ§€μ§€ν•˜λŠ” κ°œλ°œμžλ“€μ€ μ˜ˆμ™Έλ₯Ό λ˜μ§€λŠ” 방식이 μ œμ–΄ 흐름을 끊고 νƒ€μž… μ‹œμŠ€ν…œμœΌλ‘œ μ—λŸ¬λ₯Ό νŒŒμ•…ν•  수 μ—†κ²Œ ν•˜λ―€λ‘œ μ˜ˆμƒ κ°€λŠ₯ν•œ μ—λŸ¬λŠ” λͺ…μ‹œμ μΈ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•΄μ•Ό ν•œλ‹€κ³  λ°˜λŒ€ν•©λ‹ˆλ‹€ [7, 14-16]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/API 응닡 및 μ—λŸ¬ 핸듀링 μ•„ν‚€ν…μ²˜.md ---