๊ธฐ๋ณธ ์ ๋ณด
์์คproposal
๋ฐ์ ์์ฌ์ฉ์ ์์ฒญ ยท 260628 ยท ์น์ธ๋๊ธฐํจ UX ๊ฐ์
์ฐ์ ์์mid
์์ฑ์ผ์2026-06-28 13:09 KST
๊ฒฐ์ ์ผ์2026-06-28 13:11 KST
๊ฒฐ์ ์ก์
send
์ ์ ๋ด์ฉ
what์ฃผ์ ์ฌ์ด๋๋ฐ ์์ ฏ(renderer._render_stock_widget)์ ๋ธ๋ฃธ๋ฒ๊ทธ ๋จ๋ง๊ธฐ ์คํ์ผ๋ก ์ฌ๋์์ธํ๋ค. โ ์ง์ยท๊ด์ฌ์ข
๋ชฉ์ ํ ํํ๋ก: [ํฑ์ปค/์ด๋ฆ | ํ์ฌ๊ฐ | ๋ฑ๋ฝ | ๋ฑ๋ฝ๋ฅ ], ์์น=์ด๋กยทํ๋ฝ=๋นจ๊ฐ ์์, ์ฐ์ธก์ ๋ ฌ ์ซ์, ๋ฑ๋ฝ ํ์ดํ(โฒโผ). โก ๋ด์ค๋ ๋ณธ๋ฌธ์์ ๋ถ๋ฆฌํด 'ํ ์ค ์์ฝ + ํด๋ฆญ ๋งํฌ' ๋ชฉ๋ก์ผ๋ก(ํ์ฌ๋ summary ํ
์คํธ์ URL์ด ์์ฌ ์์).
valueํ์ฌ plain text ๋ค์ด์ ์คํธ๋ ์ง์/์ข
๋ชฉ/๋ด์ค๊ฐ ์ค๊ธ๋ก ์์ฌ ํ๋์ ์ ๋ค์ด์จ๋ค. ํ+์์์ผ๋ก ๋ฑ๋ฝ์ ์ฆ์ ํ์
, ๋ด์ค๋ ๋งํฌ๋ก ๋ถ๋ฆฌํด ํด๋ฆญ ๊ฐ๋ฅ.
limits์ฃผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ: collector queue.json ์ stock_digest ์นด๋ summary ๋ ํ
์คํธ. ์ ์์ stock_monitor/run.py ๊ฐ ๊ตฌ์กฐํ data(indices/stocks/news, ๊ฐ {name,value,change,pct})๋ฅผ extra.stock_data ์ ์ ์ฅํ๊ฒ ํ๊ณ (run.py:_write_card extra ์ ์ถ๊ฐ), renderer ๊ฐ ๊ทธ๊ฑธ ํ๋ก ๋ ๋. ํ
์คํธ ํ์ฑ์ ์ฐจ์ (ํฌ๋งท ๊นจ์ง๊ธฐ ์ฌ์). ์ฃผ์์ Codex(์ฌ๋น) ์์ญ โ ์์ ฏ์ ์ฝ๊ธฐ์ ์ฉ ์ ์ง(์น์ธ ๋ฒํผ ์์).
improve๊ตฌํ ๋จ๊ณ: (1) stock_monitor/run.py ์ _write_card ๊ฐ extra['stock_data']={indices,stocks,news} ๊ตฌ์กฐํ ์ ์ฅ(fetch.py ๊ฐ ์ด๋ฏธ dict ๋ฐํ). (2) renderer._render_stock_widget ์ด stock_data ์์ผ๋ฉด ํ ๋ ๋(์์ผ๋ฉด ๊ธฐ์กด ํ
์คํธ ํด๋ฐฑ). (3) CSS: .stock-table (ํฑ์ปคยท๊ฐ๊ฒฉยท๋ฑ๋ฝ ์ปฌ๋ผ, .up=์ด๋ก/.down=๋นจ๊ฐ), .stock-news-item (ํ ์ค+๋งํฌ). (4) diagram-design / publication-figures ์คํฌ์ ์์ยทํ์ดํฌ ์ฐธ์กฐ(Okabe-Ito ์๋, ๊ธ์ต ๊ด๋ก=์์น์ด๋กยทํ๋ฝ๋นจ๊ฐ, ํ๊ตญ์ ๋ฐ๋์ผ ์ ์์ผ๋ ํ์ธ). (5) ๋ธ๋ผ์ฐ์ ๊ฒ์ฆ.