--- id: wiki-2026-0508-ndf-neutral-data-format title: NDF (Neutral Data Format) category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # NDF (Neutral Data Format) ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) NDF(Neutral Data Format)๋Š” EugenSystems๊ฐ€ ๊ฐœ๋ฐœํ•œ ๋…์ž์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ํฌ๋งท์ž…๋‹ˆ๋‹ค [1]. [[WARNO|WARNO]]์˜ ๊ฒŒ์ž„ ๋™์ž‘๊ณผ ์œ ๋‹›์˜ ์„ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฒŒ์ž„ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์ˆ˜์ฒœ ๊ฐœ์— ๋‹ฌํ•˜๋Š” ์†์„ฑ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ '์œ ์ „์  ์ฒญ์‚ฌ์ง„' ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ฒŒ์ž„ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ˆ˜์ • ์—†์ด๋„ ์ •๊ตํ•œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ๋ชจ๋”ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค [1]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **NDF์˜ ๊ตฌ์กฐ์™€ ๊ฐ์ฒด ์ง€ํ–ฅ์  ํŠน์„ฑ** NDF ํŒŒ์ผ์€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜•์‹์„ ๋ ๋ฉฐ, ์ƒ์†๊ณผ ๋ชจ๋“ˆํ™”๊ฐ€ ๊ณ ๋„๋กœ ๋ฐœ๋‹ฌ๋œ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ํŠน์„ฑ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [1]. ๊ตฌ์กฐ์  ์„ค๊ณ„์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ, `UniteDescriptor.ndf` ํŒŒ์ผ ๋‚ด์˜ ๊ฐœ๋ณ„ ์œ ๋‹› ์—”ํ‹ฐํ‹ฐ๋Š” ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์™ธํ˜• ๋ชจ๋“ˆ(ApparenceModel), ๋ณด๊ธ‰ ๋ชจ๋“ˆ(TSupplyModuleDescriptor), ์ƒ์กด ๋ชจ๋“ˆ(THealthModuleDescriptor) ๋“ฑ ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋””์Šคํฌ๋ฆฝํ„ฐ(Descriptor)๋“ค์„ ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๊ตํ•˜๊ฒŒ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค [1]. - **์ฃผ์š” NDF ํŒŒ์ผ๊ณผ ๋‹ด๋‹น ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜์—ญ** WARNO์˜ ๋ชจ๋“  ๋…ผ๋ฆฌ์  ์„ค๊ณ„๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ `.ndf` ํŒŒ์ผ์— ๋‚˜๋‰˜์–ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ํŒŒ์ผ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: * `UniteDescriptor.ndf`: ์œ ๋‹›์˜ ๋ฌผ๋ฆฌ์  ๋ฐ ๊ธฐ์ˆ ์  ์†์„ฑ(๊ฐ€๊ฒฉ, ์‹œ์•ผ, ์ด๋™์„ฑ, ์€์‹ ๊ฐ’ ๋“ฑ)์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค [3, 4]. * `WeaponDescriptor.ndf`: ํฌํƒ‘ ํšŒ์ „ ์†๋„, ์กฐ์ค€ ์‹œ๊ฐ„ ๋“ฑ ๋ฌด๊ธฐ ์ฒด๊ณ„์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค [3, 4]. * `Ammunition.ndf`: ์ฒ ๊ฐ‘ํƒ„(AP) ๊ด€ํ†ต๋ ฅ, ๊ณ ํญํƒ„(HE) ๋ฐ๋ฏธ์ง€, ์ œ์••๋ ฅ ๋“ฑ ํƒ„์•ฝ์˜ ๋ฌผ๋ฆฌ์  ํƒ€๊ฒฉ ๋กœ์ง์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [3, 4]. * `Divisions.ndf` ๋ฐ `DivisionRules.ndf`: ์‚ฌ๋‹จ ๋ฑ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์ ์šฉ๋˜๋Š” ์นด๋“œ๋‹น ์œ ๋‹› ์ˆ˜์™€ ์ „๋žต์  ๊ฐ€์šฉ์„ฑ ๊ทœ์น™์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค [4, 5]. - **๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๋ชจ๋”ฉ์˜ ํ•ต์‹ฌ ๋™๋ ฅ** NDF ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ๊ณ ๋„์˜ ์œ ์—ฐ์„ฑ์€ WARNO ํŠน์œ ์˜ '๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ(Data-Driven Balancing)'์„ ๊ฐ€๋Šฅ์ผ€ ํ•ฉ๋‹ˆ๋‹ค [4]. ๊ฐœ๋ฐœ์ž์™€ ๋ชจ๋”๋“ค์€ ์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋‚˜ ์ „์šฉ ๋„๊ตฌ(WME: Warno Mod Editor)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์†Œ์Šค์ฝ”๋“œ ๋ณ€ํ˜• ์—†์ด ์œ ๋‹› ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰๊ฐ์ ์œผ๋กœ ํŠœ๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 5, 6]. ๋˜ํ•œ, `[[ndf-parse|ndf-parse]]`์™€ ๊ฐ™์€ Python ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜๋ฉด NDF ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํŒŒ์‹ฑํ•˜๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์œ ํšจํ•œ NDF ์ฝ”๋“œ๋กœ ๋‹ค์‹œ ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ตแ„‡แ…กแ†ซ แ„‰แ…ฅแ†ฏแ„€แ…จ (Data-Driven Design)|๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์„ค๊ณ„(Data-Driven Design]], Iriszoom ์—”์ง„, [[WARNO แ„†แ…ฉแ„ƒแ…ตแ†ผ(Modding)|WARNO ๋ชจ๋”ฉ(Modding]] - **Projects/Contexts:** [[WARNO-DATA แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ|WARNO-DATA ํ”„๋กœ์ ํŠธ]], ndf-parse ํŒจํ‚ค์ง€, [[Warno-Armory|Warno-Armory]] - **Contradictions/Notes:** [[Eugen Systems|Eugen Systems]]๋Š” ๊ณต์‹์ ์ธ ๋ชจ๋”ฉ ๋งค๋‰ด์–ผ๊ณผ `.ndf` ์ฐธ์กฐ ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ํ˜•์‹์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒŒ์ผ์— ๋ถ„์‚ฐ๋œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ฐ’์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [2]. ์ด๋กœ ์ธํ•ด ์œ ์ € ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฃผ๋„ํ•˜์—ฌ WARNO-DATA ์œ„ํ‚ค๋ฅผ ๊ฐœ์„คํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•ด ์ˆจ๊ฒจ์ง„ ์Šคํƒฏ์„ ๋ณด์—ฌ์ฃผ๋Š” War-Yes, [[Warno-Armory|Warno-Armory]] ๋“ฑ์˜ ์„œ๋“œํŒŒํ‹ฐ ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ๊ณต์‹ ๋ฌธ์„œ์˜ ๋นˆํ‹ˆ์„ ๋ฉ”์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [2, 8]. --- *Last updated: 2026-04-28* ## ๐Ÿค– LLM ํ™œ์šฉ ํžŒํŠธ (How to Use This Knowledge) **์–ธ์ œ ์ด ์ง€์‹์„ ์“ฐ๋Š”๊ฐ€:** - *(TODO)* **์–ธ์ œ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€:** - *(TODO)* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** needs_review - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** *(P-Reinforce Phase 1 ์ž๋™ ์ •๊ทœํ™”. ๋ณธ๋ฌธ ๊ฒ€์ฆ ํ•„์š”.)* ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** *(TODO: ์ธ๋ฑ์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌํฌํŠธ ์ฐธ์กฐ)* - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** UPDATE (์ž๋™ ์ •๊ทœํ™”) - **์ฒ˜๋ฆฌ ์ด์œ :** Phase 1 ์ •๊ทœํ™” โ€” ์˜› ํ…œํ”Œ๋ฆฟ/๋ˆ„๋ฝ ํ•„๋“œ ๋ณด๊ฐ•. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & Updates) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์—†์Œ - **์ •์ฑ… ๋ณ€ํ™”:** ์—†์Œ ## ๐Ÿ•“ ๋ณ€๊ฒฝ ์ด๋ ฅ (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: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*