# drawNET Bug Report - 2026-03-22 ๐Ÿž ์ด ๋ฌธ์„œ๋Š” 2026๋…„ 3์›” 22์ผ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ ๋ฐ ์žฅ์• ์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์กฐ์น˜ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. --- ### [Instance #2310] - 404 Resource Not Found in Object Studio - **ํ˜„์ƒ**: ์˜ค๋ธŒ์ ํŠธ ์ŠคํŠœ๋””์˜ค(Object Studio) ์ ‘์† ์‹œ ๋‹ค๊ตญ์–ด ํŒŒ์ผ(`i18n.js`)๊ณผ ํŒŒ๋น„์ฝ˜(`favicon.ico`)์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” 404 ์—๋Ÿฌ์™€ ํ•จ๊ป˜ UI์˜ ๋ฒ„ํŠผ ๊ธ€์ž๊ฐ€ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์€ ์ƒํƒœ(Raw Key)๋กœ ๋…ธ์ถœ๋จ. - **์›์ธ**: 1. **๊ฒฝ๋กœ ์˜คํ‘œ๊ธฐ**: `static/js/modules/studio/` ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ `renderer.js`์™€ `actions.js`์—์„œ `../../i18n.js` ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•จ. ์‹ค์ œ ํŒŒ์ผ์€ `../i18n.js`(`static/js/modules/i18n.js`)์— ์œ„์น˜ํ•ด ์žˆ์–ด ์ƒ๋Œ€ ๊ฒฝ๋กœ ๊ณ„์‚ฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ. 2. **ํŒŒ๋น„์ฝ˜ ๋งํฌ ๋ˆ„๋ฝ**: `studio.html` ํŒŒ์ผ์— ๋ช…์‹œ์ ์ธ ํŒŒ๋น„์ฝ˜ ๋งํฌ๊ฐ€ ์—†์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ธ `/favicon.ico`๋ฅผ ํ˜ธ์ถœํ•จ. - **์กฐ์น˜**: 1. `renderer.js` ๋ฐ `actions.js`์˜ ์ž„ํฌํŠธ ๊ฒฝ๋กœ๋ฅผ `../i18n.js`๋กœ ์ผ๊ด„ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค๊ตญ์–ด ๋ชจ๋“ˆ ๋กœ๋”ฉ ์ •์ƒํ™”. 2. `studio.html` ์ƒ๋‹จ์— ํ†ตํ•ฉ ๋กœ๊ณ (`logo.svg`)๋ฅผ ํŒŒ๋น„์ฝ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋งํฌ ํƒœ๊ทธ ์ถ”๊ฐ€. 3. ์ŠคํŠœ๋””์˜ค ์ „์ฒด ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ ์ƒํƒœ๋ฅผ ์žฌ์ ๊ฒ€ํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ์ •์  ํŒŒ์ผ์ด ์—†์Œ์„ ํ™•์ธ. ### [Instance #2300] - ReferenceError: t is not defined in help_modal.js - **ํ˜„์ƒ**: ๋„์›€๋ง ๋ฒ„ํŠผ(`help-btn`) ํด๋ฆญ ์‹œ ๋„์›€๋ง ๋ชจ๋‹ฌ(Help Modal)์ด ์—ด๋ฆฌ์ง€ ์•Š๊ณ , ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์— `Uncaught (in promise) ReferenceError: t is not defined` ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ฉˆ์ถ”๋Š” ํ˜„์ƒ. - **์›์ธ**: 1. ๋งˆํฌ๋‹ค์šด ๋ Œ๋”๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(`marked.js`) ํ†ตํ•ฉ์„ ์œ„ํ•œ `help_modal.js` ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์—์„œ ์‹ค์ˆ˜๋กœ ์ƒ๋‹จ์˜ `import { t } from '../i18n.js';` ๊ตฌ๋ฌธ์„ ์‚ญ์ œํ•จ. 2. ๋ชจ๋‹ฌ ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ ๋‚ด์—์„œ ๋‹ค๊ตญ์–ด ๋ฒˆ์—ญ ํ•จ์ˆ˜์ธ `${t('help_center')}` ๋“ฑ์„ ํ˜ธ์ถœํ•  ๋•Œ ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•„ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ. - **์กฐ์น˜**: 1. `static/js/modules/ui/help_modal.js` ํŒŒ์ผ ์ƒ๋‹จ์— ๋ˆ„๋ฝ๋œ `t` ํ•จ์ˆ˜ ์ž„ํฌํŠธ ๊ตฌ๋ฌธ์„ ์ฆ‰์‹œ ๋ณต๊ตฌํ•จ. 2. ๋ชจ๋‹ฌ ๋‚ด์˜ ๋ชจ๋“  `t()` ํ˜ธ์ถœ๋ถ€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์ฆํ•˜๊ณ , ๋ชจ๋‹ฌ์ด ์ •์ƒ์ ์œผ๋กœ ํŒ์—…๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•จ. 3. ํ–ฅํ›„ ๋ฆฌํŒฉํ† ๋ง ์‹œ ํ•„์ˆ˜ ์˜์กด์„ฑ(Dependency) ๋ˆ„๋ฝ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๋„๋ก ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ”„๋กœ์„ธ์Šค ๋ณด๊ฐ•. ### [Instance #2290] - Incorrect Filtering in PPTX Details Slide - **ํ˜„์ƒ**: PPTX ๋‚ด๋ณด๋‚ด๊ธฐ ์‹œ "๊ฐ์ฒด๋ณ„ ์ƒ์„ธ ๋‚ด์šฉ ๋ฐ ์ฃผ์„ ๋ชฉ๋ก" ์Šฌ๋ผ์ด๋“œ์—์„œ ์‹ค์ œ ๋…ธ๋“œ(์˜ค๋ธŒ์ ํŠธ)๋Š” ๋ณด์ด์ง€ ์•Š๊ณ , UUID ํ˜•ํƒœ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์„ (edge)๋“ค๋งŒ ๋Œ€๊ฑฐ ๋‚˜์—ด๋˜๋Š” ํ˜„์ƒ. - **์›์ธ**: 1. ์ƒ์„ธ ๋ชฉ๋ก ํ•„ํ„ฐ๊ฐ€ `description` ์†์„ฑ์ด ์žˆ๋Š” ๊ฐ์ฒด๋งŒ ์ฐพ๋„๋ก ๋˜์–ด ์žˆ์–ด, ์„ค๋ช…์ด ์—†๋Š” ์ผ๋ฐ˜ ๋…ธ๋“œ๋“ค์€ ๋ชจ๋‘ ์ œ์™ธ๋จ. 2. ์ˆ˜๋™ ๊ฒฝ๋กœ ์˜คํ”„์…‹(`routing_offset`)์ด ์žˆ๋Š” ์—ฃ์ง€๋“ค์ด ํ•„ํ„ฐ์— ํฌํ•จ๋˜๋ฉด์„œ, ๋ผ๋ฒจ์ด ์—†๋Š” ์ผ๋ฐ˜ ์—ฃ์ง€๋“ค์ด UUID์™€ ํ•จ๊ป˜ ๋…ธ์ถœ๋จ. - **์กฐ์น˜**: 1. ์ƒ์„ธ ๋ชฉ๋ก ํ•„ํ„ฐ๋ฅผ ๊ฐœ์„ ํ•˜์—ฌ **๋ชจ๋“  ์ผ๋ฐ˜ ๋…ธ๋“œ**๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ˆ˜์ • (๋‹จ, ๊ทธ๋ฃน์€ ์„ค๋ช…์ด ์žˆ์„ ๋•Œ๋งŒ ํฌํ•จ). 2. ์—ฃ์ง€๋Š” **์‚ฌ์šฉ์ž ์ •์˜ ๋ผ๋ฒจ์ด๋‚˜ ์„ค๋ช…์ด ์žˆ์„ ๋•Œ๋งŒ** ํฌํ•จํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌด์˜๋ฏธํ•œ ํ•ญ๋ชฉ ์ œ๊ฑฐ. 3. ๋ผ๋ฒจ์ด ์—†๋Š” ์—ฃ์ง€์˜ ๊ฒฝ์šฐ UUID ๋Œ€์‹  `[์‹œ์ž‘๋…ธ๋“œ] -> [๋Œ€์ƒ๋…ธ๋“œ]` ํ˜•ํƒœ์˜ ์ฝ๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์ž๋™ ์ƒ์„ฑํ•˜๋„๋ก ๋ณด์™„. ### [Instance #2280] - Asset Filter Modal Invisibility - **ํ˜„์ƒ**: ์™ผ์ชฝ ์—์…‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒ๋‹จ์˜ ํ•„ํ„ฐ(ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ) ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด๋„ ์•„๋ฌด๋Ÿฐ ๋ฐ˜์‘์ด ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ˜„์ƒ. - **์›์ธ**: 1. `selector.js`์—์„œ ๋ชจ๋‹ฌ ํŒ์—… ์ƒ์„ฑ ์‹œ `modal.style.display = 'flex'`๋งŒ ์‚ฌ์šฉํ•จ. 2. ๊ณตํ†ต CSS(`modal.css`)์—์„œ `.modal-overlay`๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ `opacity: 0`์ด๋ฉฐ `.active` ํด๋ž˜์Šค๊ฐ€ ์žˆ์–ด์•ผ๋งŒ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋„๋ก ์ •์˜๋˜์–ด ์žˆ์–ด ์‹œ๊ฐ์ ์œผ๋กœ ์ˆจ๊ฒจ์ง„ ์ƒํƒœ์˜€์Œ. 3. ๊ตฌํ˜• ์ฝ”๋“œ์ธ `static/js/modules/assets.js` ํŒŒ์ผ์ด ์ž”๋ฅ˜ํ•˜์—ฌ ๋””๋ฒ„๊น… ๋ฐ ์œ ์ง€๋ณด์ˆ˜์— ํ˜ผ์„ ์„ ์คŒ. - **์กฐ์น˜**: 1. `selector.js`์˜ ๋ชจ๋‹ฌ ์ œ์–ด ๋กœ์ง์„ `classList.add('active')` ๋ฐ `remove('active')` ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ๊ฐ€์‹œ์„ฑ ํ™•๋ณด. 2. ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ตฌํ˜• `assets.js` ํŒŒ์ผ์„ ์‚ญ์ œํ•˜์—ฌ ๋ชจ๋“ˆ ๊ตฌ์กฐ ๋‹จ์ˆœํ™”. ### [Instance #2275] - Selection Highlight Disappears during Edit - **ํ˜„์ƒ**: ์„ (edge) ์†์„ฑ์ฐฝ์—์„œ ์‹œ์ž‘/๋Œ€์ƒ ํ˜ธ๋ฒ„ ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ ํ‘œ์‹œ๋œ ์ƒํƒœ์—์„œ ์ƒ‰์ƒ์ด๋‚˜ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ ์ฆ‰์‹œ ์‚ฌ๋ผ์ง. - **์›์ธ**: `renderProperties()` ์‹œ์ž‘ ๋ถ€๋ถ„์— `unhighlight()`๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด, ์†์„ฑ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๋ฆฌ๋ Œ๋”๋ง ๋ฐœ์ƒ ์‹œ๋งˆ๋‹ค ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ ๊ฐ•์ œ๋กœ ์ดˆ๊ธฐํ™”๋จ. - **์กฐ์น˜**: 1. `renderProperties()` ๋‚ด๋ถ€์˜ ์ƒ์‹œ `unhighlight()` ํ˜ธ์ถœ ์ œ๊ฑฐ. 2. ์„ ํƒ๋œ ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” `selection:changed` ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ๋งŒ `unhighlight()`๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ๋กœ์ง ์œ„์น˜ ๋ณ€๊ฒฝ. 3. ์ด๋ฅผ ํ†ตํ•ด ๋™์ผ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๋™์•ˆ์—๋Š” ์‹œ๊ฐ์  ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ ์œ ์ง€๋˜๋„๋ก ์ •ํ•ฉ์„ฑ ํ™•๋ณด. ### [Instance #2270] - Infinite Loop in Sidebar Rendering (Selection Loop) - **ํ˜„์ƒ**: ์„ (edge) ์„ ํƒ ์‹œ ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์— `renderProperties start` ๋กœ๊ทธ๊ฐ€ ๋ฌดํ•œํžˆ ์ถœ๋ ฅ๋˜๋ฉฐ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ํ˜„์ƒ. - **์›์ธ**: 1. ์„  ์„ ํƒ ์‹œ ํ˜ธ์ถœ๋˜๋Š” `unhighlight()`๊ฐ€ ๋…ธ๋“œ์˜ `attr`์„ ์ˆ˜์ •ํ•จ. 2. `attr` ์ˆ˜์ •์ด `cell:change:attrs` ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด. 3. ํ•ด๋‹น ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ๋‹ค์‹œ `renderProperties()`๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•จ. - **์กฐ์น˜**: 1. `unhighlight` ๋ฐ `highlight` ํ˜ธ์ถœ ์‹œ ๋ชจ๋“  ์†์„ฑ ๋ณ€๊ฒฝ์— `{ silent: true }` ์˜ต์…˜์„ ๋ถ€์—ฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ด๋ฒคํŠธ ์ „ํŒŒ ์ฐจ๋‹จ. 2. `cell:change` ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์—์„œ `options.silent` ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™•์ธํ•˜์—ฌ ๋‚ด๋ถ€์ ์ธ ์‹œ๊ฐ ํšจ๊ณผ ๋ณ€๊ฒฝ ์‹œ์—๋Š” ๋ฆฌ๋ Œ๋”๋ง์„ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ๊ฐœ์„ . ### [Instance #2265] - Sticky Source/Target Highlights in Sidebar - **ํ˜„์ƒ**: ์—ฃ์ง€ ์†์„ฑ์ฐฝ์—์„œ ์‹œ์ž‘/๋Œ€์ƒ ์„ ํƒ ์ƒ์ž์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ๋…ธ๋“œ ๊ฐ•์กฐ(ํ…Œ๋‘๋ฆฌ)๊ฐ€ ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ์„ ํƒ์„ ๋ฐ”๊ฟ”๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์œ ์ง€๋จ. - **์›์ธ**: ํ•˜์ด๋ผ์ดํŠธ ์ œ๊ฑฐ ๋กœ์ง(`unhighlight`)์ด ์˜ค์ง `mouseleave` ์ด๋ฒคํŠธ์—๋งŒ ๋ฐ”์ธ๋”ฉ๋˜์–ด ์žˆ์–ด, ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ์ „ํ™˜ ์‹œ ์ด๋ฒคํŠธ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์Œ. - **์กฐ์น˜**: 1. `unhighlight` ๋กœ์ง์„ ๋ชจ๋“ˆ ๋ ˆ๋ฒจ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ. 2. ์‚ฌ์ด๋“œ๋ฐ” ๋‹ซ๊ธฐ ๋ฒ„ํŠผ, ์ ์šฉ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ฐ ์†์„ฑ์ฐฝ ๋ฆฌ๋ Œ๋”๋ง(`renderProperties`) ์‹œ์ž‘ ์‹œ์ ์— ํ•ญ์ƒ `unhighlight`๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ๋ณด๊ฐ•ํ•˜์—ฌ ์ž”์ƒ ๋ฐฉ์ง€. ### [Instance #2260] - Edge Rendered Underneath Groups (Z-Index Hierarchy) - **ํ˜„์ƒ**: ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์„ (edge)์ด ๊ธฐ์กด ๊ทธ๋ฃน์˜ ๋ฐฐ๊ฒฝ ๋’ค๋กœ ์ˆจ์–ด์„œ ๋ณด์ด์ง€ ์•Š๊ฑฐ๋‚˜ ์„ ํƒ์ด ์–ด๋ ค์šด ํ˜„์ƒ. - **์›์ธ**: ์„  ์ƒ์„ฑ ์‹œ ๋ ˆ์ด์–ด ์˜คํ”„์…‹์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ธฐ๋ณธ z-index(30)๊ฐ€ ๋ถ€์—ฌ๋˜์–ด, ์ด๋ฏธ ๋ ˆ์ด์–ด ๊ฐ€์ค‘์น˜(101, 201 ๋“ฑ)๋ฅผ ๋ฐ›์€ ๊ทธ๋ฃน๋ณด๋‹ค ๋‚ฎ๊ฒŒ ๋ฐฐ์น˜๋จ. - **์กฐ์น˜**: 1. `layers.js`์— ์ค‘์•™ ์ง‘์ค‘ํ˜• z-index ๊ณ„์‚ฐ ํ•จ์ˆ˜(`calculateCellZIndex`)๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ ˆ์ด์–ด ์˜คํ”„์…‹๊ณผ ๊ฐ์ฒด ํƒ€์ž…๋ณ„ ์šฐ์„ ์ˆœ์œ„(๋…ธ๋“œ>์„ >๊ทธ๋ฃน)๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌ. 2. ์„  ๋ฐ ๋…ธ๋“œ ์ƒ์„ฑ ์‹œ(`config.js`, ์Šคํƒ€์ผ ๋งคํ•‘ ๋ชจ๋“ˆ) ์ฆ‰์‹œ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ดˆ๊ธฐ z-index๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ• ๋‹นํ•˜๋„๋ก ๊ตฌ์กฐ ๊ฐœ์„ . --- *์•„์นด์ด๋ธŒ ๊ด€๋ฆฌ์ž: drawNET AI Assistant*