--- id: wiki-2026-0508-nodejs-global-namespace-augmenta title: Nodejs Global Namespace Augmentation category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AUTO-NodejsG-001] duplicate_of: none source_trust_level: A confidence_score: 0.94 tags: [auto-reinforced, nodejs, typescript, software-engineering] raw_sources: [] last_reinforced: 2026-04-20 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Nodejs-Global-Namespace-Augmentation|Nodejs-Global-Namespace-Augmentation]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "์ „์—ญ ๊ณต๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ™•์žฅ: TypeScript ํ™˜๊ฒฝ์—์„œ Node.js์˜ `Global` ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™•์žฅํ•˜์—ฌ, ํƒ€์ž… ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์ปค์Šคํ…€ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์  'ํƒ€ํ˜‘์ '." ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) Node.js ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํ™•์žฅ(Global Namespace Augmentation)์€ ์ฃผ๋กœ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์ด๋‚˜ ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ ์„ค์ • ์‹œ ์ „์—ญ์ ์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 1. **๊ตฌํ˜„ ๊ธฐ๋ฒ• (Declaration Merging)**: ```typescript declare global { namespace NodeJS { interface Global { myCustomUtility: MyUtilityType; } } } ``` * `declare global` ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ๋ชจ๋“ˆ ๋‚ด์—์„œ๋„ ์ „์—ญ ์Šค์ฝ”ํ”„์— ํƒ€์ž…์„ ๋ณ‘ํ•ฉํ•จ. 2. **์‚ฌ์šฉ ์‚ฌ๋ก€**: * **ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ**: `jest`๋‚˜ `mocha`์—์„œ ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋งค์นญ ๋„๊ตฌ(Match Styles) ํ™•์žฅ. * **ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํƒ€์ž…**: `process.env` ์†์„ฑ์— ๋Œ€ํ•œ ์ž๋™ ์™„์„ฑ ๋ฐ ํƒ€์ž… ์ฒดํฌ ์ง€์›( `ProcessEnv` ์ธํ„ฐํŽ˜์ด์Šค ํ™•์žฅ). 3. **์ฃผ์˜์‚ฌํ•ญ**: * ๋‚จ์šฉ ์‹œ ์ด๋ฆ„ ์ถฉ๋Œ(Name Collision) ๋ฐ ์˜์กด์„ฑ ์ถ”์ ์˜ ์–ด๋ ค์›€ ๋ฐœ์ƒ. ์ตœ๋Œ€ํ•œ ๋ชจ๋“ˆํ˜•(Module-based) ์ ‘๊ทผ์„ ์šฐ์„ ํ•ด์•ผ ํ•จ. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & Updates) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ**: ๊ณผ๊ฑฐ์—๋Š” `global.d.ts` ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ์œผ๋‚˜, ์ตœ์‹  TypeScript ๋ฒ„์ „๊ณผ ES Modules ์‹œ์Šคํ…œ ํ•˜์—์„œ๋Š” `export {}` ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํŒŒ์ผ์ด ๋ชจ๋“ˆ๋กœ ์ธ์‹๋˜๊ฒŒ ํ•ด์•ผ ์ „์—ญ ํ™•์žฅ์ด ์ •ํ™•ํžˆ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ. - **์ •์ฑ… ๋ณ€ํ™”(RL Update)**: ํด๋ฆฐ ์ฝ”๋“œ ํ”„๋ฆฐ์‹œํ”Œ([[_แ„‚แ…ฌแ„‹แ…ช แ„‘แ…กแ†ฏแ„ƒแ…กแ„…แ…ตแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต_ - แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต (Separation of Concerns)|Separation of Concerns]])์— ๋”ฐ๋ผ ์ „์—ญ ๋ณ€์ˆ˜ ์‚ฌ์šฉ์€ ์ ์ง„์ ์œผ๋กœ ์ง€์–‘๋˜๋Š” ์ถ”์„ธ์ด๋‚˜, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ‰ ๋Œ€๊ทœ๋ชจ ๋ชจ๋…ธ๋ ˆํฌ์—์„œ๋Š” ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ํƒ€์ž… ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด ์—„๊ฒฉํ•œ ๊ฑฐ๋ฒ„๋„Œ์Šค ํ•˜์— ์„ ํƒ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋Š” ์ •์ฑ…์„ ์ทจํ•จ. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related**: [[TypeScript_Type_Safety|TypeScript_Type_Safety]], [[Monorepo|Monorepo]]-[[Management|Management]], [[Separation_of_Concerns|Separation_of_Concerns]], Modular Monolith - **Modern Tech/Tools**: TypeScript Declaration Merging, tsconfig paths. --- ## ๐Ÿค– LLM ํ™œ์šฉ ํžŒํŠธ (How to Use This Knowledge) **์–ธ์ œ ์ด ์ง€์‹์„ ์“ฐ๋Š”๊ฐ€:** - *(TODO)* **์–ธ์ œ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€:** - *(TODO)* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** needs_review - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** *(P-Reinforce Phase 1 ์ž๋™ ์ •๊ทœํ™”. ๋ณธ๋ฌธ ๊ฒ€์ฆ ํ•„์š”.)* ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** *(TODO: ์ธ๋ฑ์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌํฌํŠธ ์ฐธ์กฐ)* - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** UPDATE (์ž๋™ ์ •๊ทœํ™”) - **์ฒ˜๋ฆฌ ์ด์œ :** Phase 1 ์ •๊ทœํ™” โ€” ์˜› ํ…œํ”Œ๋ฆฟ/๋ˆ„๋ฝ ํ•„๋“œ ๋ณด๊ฐ•. ## ๐Ÿ•“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Changelog) | ๋‚ ์งœ | ๋ณ€๊ฒฝ ๋‚ด์šฉ | ์ฒ˜๋ฆฌ ๋ฐฉ์‹ | ์‹ ๋ขฐ๋„ | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 ์ •๊ทœํ™” (frontmatter + ํ—ค๋” ํ‘œ์ค€ํ™”) | UPDATE | A | ## ๐Ÿ’ป ์ฝ”๋“œ ํŒจํ„ด (Code Patterns) **ํŒจํ„ด 1:** *(TODO: ์ด ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜ ๋ฐ˜์˜ํ•œ ๊ตฌ์กฐ ์Šค์ผˆ๋ ˆํ†ค)* ```text # TODO ``` ## ๐Ÿค” ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ์ค€ (Decision Criteria) **์„ ํƒ A๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **์„ ํƒ B๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **๊ธฐ๋ณธ๊ฐ’:** > *(TODO)* ## โŒ ์•ˆํ‹ฐํŒจํ„ด (Anti-Patterns) - **[์•ˆํ‹ฐํŒจํ„ด]:** *(TODO: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*