--- id: P-REINFORCE-AUTO-98C2AC category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์™„์ „์„ฑ ๊ฒ€์‚ฌ (Exhaustiveness Checking)" --- # [[แ„‹แ…ชแ†ซแ„Œแ…ฅแ†ซแ„‰แ…ฅแ†ผ แ„€แ…ฅแ†ทแ„‰แ…ก (Exhaustiveness Checking)|์™„์ „์„ฑ ๊ฒ€์‚ฌ (Exhaustiveness Checking)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์ง€์‹ ์š”์•ฝ ์ •๋ณด ์ถ”์ถœ ์ค‘... ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๊ฐœ๋… ๋ฐ ํ•„์š”์„ฑ:** ์™„์ „์„ฑ ๊ฒ€์‚ฌ๋Š” ์‹œ์Šคํ…œ์ด ํ™•์žฅ๋˜๊ฑฐ๋‚˜ ํƒ€์ž…์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€์ž‘์šฉ์„ ์›์ฒœ ์ฐจ๋‹จํ•˜๋Š” ๋ฐฉ์–ด ๊ธฐ์ œ์ž…๋‹ˆ๋‹ค [3]. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์œ ๋‹ˆ์˜จ ํƒ€์ž…์— ์ƒˆ๋กœ์šด ํ˜•ํƒœ(์˜ˆ: ์ƒˆ๋กœ์šด ๋„ํ˜• ํƒ€์ž…, ๋„คํŠธ์›Œํฌ ์ƒํƒœ, API ์‘๋‹ต ๋“ฑ)๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ, ๊ธฐ์กด์˜ ๋ถ„๊ธฐ๋ฌธ(`switch` ๋“ฑ)์—์„œ ์ด๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋ˆ„๋ฝ ์‚ฌ์‹ค์„ ์ฆ‰๊ฐ์ ์œผ๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค [1, 2, 4]. - **`never` ํƒ€์ž…์„ ํ™œ์šฉํ•œ ๊ฒ€์ฆ ๊ธฐ๋ฒ•:** ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๋ช…์‹œ์ ์ธ ์™„์ „์„ฑ ๊ฒ€์‚ฌ ๋ฐฉ๋ฒ•์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ `never` ํƒ€์ž…์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ„๊ธฐ๋ฌธ์—์„œ ์œ ๋‹ˆ์˜จ์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„, ๋‚จ์€ ๊ฐ’์„ `default` ๋ธ”๋ก์ด๋‚˜ `assertNever`์™€ ๊ฐ™์€ ๊ฒ€์ฆ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ `never` ํƒ€์ž…์— ํ• ๋‹นํ•˜๋„๋ก ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค [3, 5]. ๋งŒ์•ฝ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์€ ์ผ€์ด์Šค๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ๋ณ€์ˆ˜๋Š” `never`๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ํƒ€์ž…์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฏ€๋กœ "Type 'X' is not assignable to type 'never'"์™€ ๊ฐ™์€ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ์ฆ‰์‹œ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [2, 3, 5]. - **๋ฐ˜ํ™˜ ํƒ€์ž… ์ง€์ •์„ ํ†ตํ•œ ๊ฒ€์ฆ:** `strictNullChecks` ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค [6]. ๋ชจ๋“  `switch` ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๋น ์ ธ๋‚˜์˜ค๋Š” ๊ฒฝ๋กœ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ `undefined`๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ธ์ง€ํ•˜์—ฌ ๋ช…์‹œ๋œ ๋ฐ˜ํ™˜ ํƒ€์ž…๊ณผ์˜ ๋ถˆ์ผ์น˜ ์—๋Ÿฌ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค [6]. - **๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ณ ๊ธ‰ ๋ฌธ๋ฒ• ํ™œ์šฉ (`ts-pattern`, `satisfies`):** `ts-pattern`๊ณผ ๊ฐ™์€ ํŒจํ„ด ๋งค์นญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” `.exhaustive()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ์ง€ํ•˜๊ณ  ๊ฐ•์ œํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7, 8]. ๋˜ํ•œ, ๋ถ„๊ธฐ๋ฌธ์˜ ๋งˆ์ง€๋ง‰์— `satisfies never` ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ์ผ€์ด์Šค๊ฐ€ ์—†์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9]. ์ด๋Ÿฌํ•œ ํŒจํ„ด๋“ค์€ '๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ'๋ฅผ ์ฝ”๋“œ์ƒ์—์„œ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค [3]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„‰แ…ตแ†จแ„‡แ…งแ†ฏ แ„€แ…กแ„‚แ…ณแ†ผแ„’แ…กแ†ซ แ„‹แ…ฒแ„‚แ…ตแ„‹แ…ฉแ†ซ (Discriminated Unions)|์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ์œ ๋‹ˆ์˜จ (Discriminated Unions)]], [[never แ„แ…กแ„‹แ…ตแ†ธ|never ํƒ€์ž…]], [[ts-pattern|ts-pattern]], [[satisfies แ„‹แ…งแ†ซแ„‰แ…กแ†ซแ„Œแ…ก|satisfies ์—ฐ์‚ฐ์ž]] - **Projects/Contexts:** [[แ„แ…กแ„‹แ…ตแ†ธแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ธแ„แ…ณ แ„‰แ…กแ†ผแ„แ…ข แ„€แ…ชแ†ซแ„…แ…ต แ„†แ…ตแ†พ แ„‡แ…ฎแ†ซแ„€แ…ต แ„Žแ…ฅแ„…แ…ต แ„‰แ…ฅแ†ฏแ„€แ…จ|ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ ์„ค๊ณ„]] - **Contradictions/Notes:** ์†Œ์Šค์—์„œ๋Š” ์™„์ „์„ฑ ๊ฒ€์‚ฌ์˜ ํšจ๊ณผ๋ฅผ ๊ธ์ •์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜์ง€๋งŒ, `ts-pattern` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ `.exhaustive()` ๋“ฑ์„ ํ™œ์šฉํ•œ ๊ณ ๋„์˜ ์ถ”์ƒํ™”๋Š” ๊ธฐ๋ณธ ์ œ์–ด ๊ตฌ์กฐ(`if/else`, `switch`)๋ณด๋‹ค ์„ฑ๋Šฅ์ด ํ˜„์ €ํžˆ ๋–จ์–ด์ง€๊ณ  ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง์ด ๋  ์ˆ˜ ์žˆ์Œ์„ ๊ฒฝ๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ˆœํ•œ ์กฐ๊ฑด์˜ ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ฐฉ์‹๊ณผ `satisfies never` ๋“ฑ์„ ์กฐํ•ฉํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ถ„๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค [7-10]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/์™„์ „์„ฑ ๊ฒ€์‚ฌ (Exhaustiveness Checking).md ---