diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..ad1c368 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,45 @@ +# ๐Ÿš€ ๋‡Œ์‚ฌ๋ฃŒ (Brain Dogfood) ํ–ฅํ›„ ๊ฐœ๋ฐœ ๋กœ๋“œ๋งต (Roadmap) + +๋ณธ ๋ฌธ์„œ๋Š” '๋‡Œ์‚ฌ๋ฃŒ' ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋Šฅ ํ™•์žฅ ์•„์ด๋””์–ด์™€ ํ–ฅํ›„ ๊ตฌํ˜„๋  ๊ธฐ์ˆ ์  ํƒœ์Šคํฌ๋“ค์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. + +--- + +## ๐Ÿ•’ 1. ์ฐจ์„ธ๋Œ€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ (UX) ๊ฐ•ํ™” + +### 1.1 ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ง€์‹ ํฌ์ปค์Šค (Interactive Knowledge Focus) +๋ฉ”์ธ ๊ทธ๋ฆฌ๋“œ์—์„œ ํŠน์ • ๋ฉ”๋ชจ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ, ํ•ด๋‹น ๋ฉ”๋ชจ์™€ ์—ฐ๊ฒฐ๋œ(Links/Backlinks) ์ง€์‹๋“ค๋งŒ ๊ฐ•์กฐํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ํ๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋งฅ๋ฝ์„ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. + +- **์ˆ˜์ • ๋ฒ”์œ„ (Scope)**: + - `static/js/ui.js`: `renderMemos` ๋ฃจํ”„ ๋‚ด์—์„œ ์นด๋“œ๋ณ„ ๋งํฌ ๋ฐ์ดํ„ฐ ๋งคํ•‘ ๋ฐ `mouseenter/mouseleave` ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ถ”๊ฐ€. + - `static/css/components/memo.css`: `.memo-card.dimmed`, `.memo-card.focused` ํด๋ž˜์Šค ์ •์˜ ๋ฐ ๋ถ€๋“œ๋Ÿฌ์šด `opacity`, `filter: blur` ํŠธ๋žœ์ง€์…˜ ์ถ”๊ฐ€. +- **๊ตฌํ˜„ ๋‚œ์ด๋„**: **๋‚ฎ์Œ(Low) ~ ์ค‘๊ฐ„(Mid)** + - ๋ฐ์ดํ„ฐ๋Š” ์ด๋ฏธ API ์‘๋‹ต์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์Šคํƒ€์ผ ์—ฐ์ถœ๊ณผ DOM ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. +- **์ฃผ์˜์‚ฌํ•ญ**: + - **์„ฑ๋Šฅ**: ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ฉ”๋ชจ๊ฐ€ ํ™”๋ฉด์— ์žˆ์„ ๋•Œ ๋นˆ๋ฒˆํ•œ DOM ํด๋ž˜์Šค ์กฐ์ž‘์ด ํผํฌ๋จผ์Šค ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๋„๋ก `requestAnimationFrame` ๋˜๋Š” ํšจ์œจ์ ์ธ ์…€๋ ‰ํ„ฐ ์‚ฌ์šฉ ๊ถŒ์žฅ. + - **๊ฐ€๋…์„ฑ**: ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฅผ ๋„ˆ๋ฌด ํ๋ฆฌ๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๋ฉด ์ „์ฒด์ ์ธ ์œ„์น˜ ๊ฐ๊ฐ์„ ์žƒ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ ์ ˆํ•œ `opacity` ๊ฐ’(์•ฝ 0.2~0.3) ์„ค์ • ํ•„์š”. + - **๋ชจ๋ฐ”์ผ ๋Œ€์‘**: ๋งˆ์šฐ์Šค๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ๋กฑํ”„๋ ˆ์Šค(Long Press)๋‚˜ ํ„ฐ์น˜ ์‹œ ๋ฐœ๋™ ์—ฌ๋ถ€ ๊ฒ€ํ†  ํ•„์š”. + +--- + +## ๐Ÿ•ธ๏ธ 2. ์‹œ์Šคํ…œ ๋ฐ ํ™•์žฅ์„ฑ (Backend & Scalability) + +### 2.1 Obsidian ์–‘๋ฐฉํ–ฅ ๋™๊ธฐํ™” ํ”Œ๋Ÿฌ๊ทธ์ธ +๋กœ์ปฌ Obsidian ์ €์žฅ์†Œ์™€ ๋‡Œ์‚ฌ๋ฃŒ ์„œ๋ฒ„ ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์•”ํ˜ธํ™” ๋™๊ธฐํ™” ๋„๊ตฌ ๊ฐœ๋ฐœ. +- **์ฐธ์กฐ**: [docs/obsidian_plugin_plan.md](file:///c:/project/my_util/memo_server/docs/obsidian_plugin_plan.md) + +### 2.2 ์ง€์‹ ๋„ค๋ทธ๋ผ ์—”์ง„ ๊ณ ๋„ํ™” +- ๋…ธ๋“œ ๊ตฐ์ง‘ํ™”(Clustering) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์„ ์œผ๋กœ ๊ทธ๋ฃน ๊ฐ„ ๊ฒฝ๊ณ„ ๋ช…ํ™•ํ™”. +- ๋Œ€๊ทœ๋ชจ ๋…ธ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๋ Œ๋”๋ง ์ตœ์ ํ™”. + +--- + +## ๐ŸŽจ 3. ๋ฏธ์  ์™„์„ฑ๋„ (Aesthetics) + +### 3.1 ํ•˜์ด์—”๋“œ ์‰์ด๋” ๋ฐฐ๊ฒฝ (v3.0) +- ํ˜„์žฌ์˜ ์ •์ ์ธ ๋ฐฐ๊ฒฝ ๋Œ€์‹ , ์ง€์‹ ์ถ•์ ๋Ÿ‰์— ๋”ฐ๋ผ ์€์€ํ•˜๊ฒŒ ์›€์ง์ด๋Š” 3D ๋ ˆ์ด์–ด ๋ฐฐ๊ฒฝ(Three.js) ๋„์ž… ๊ฒ€ํ† . + +--- + +> [!TIP] +> **์ƒˆ๋กœ์šด ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”?** +> ์ œ์•ˆ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ด ๋กœ๋“œ๋งต์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ฒ ํ•™์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊พธ์ค€ํžˆ ๋ฐœ์ „์‹œ์ผœ ๋‚˜๊ฐ‘์‹œ๋‹ค.