Back to the catalog

๐Ÿ—บ๏ธ Project Knowledge Index

Bundle OKF 0.1 ยท 25 conceitos ยท jinhoOps/IndividualSavingsFlowUI

Open source Repository Open in the app JSON README (API)

About

# ๐Ÿ—บ๏ธ Project Knowledge Index

IndividualSavingsFlowUI (ISF) ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ง€์‹์€ ์ด ์ง€๋„๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. v1.1 ํ˜„๋Œ€ํ™” ์ดํ›„์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

## ๐Ÿ›๏ธ ํ•ต์‹ฌ ์ฐธ์กฐ (The Constitution)
*ํ˜„๋Œ€์  ๊ฐœ๋ฐœ ์ธํ”„๋ผ์™€ ์šด์˜์˜ ๊ทผ๊ฐ„์ด ๋˜๋Š” ๋ฌธ์„œ๋“ค์ž…๋‹ˆ๋‹ค.*
- [Operating_Principles](./core/operating_principles.md): ํ”„๋กœ์ ํŠธ ์šด์˜ ์›์น™ ๋ฐ ํ˜„๋Œ€์  DX ์ง€์นจ.
- [Architecture_Reference](./core/architecture_reference.md): Vite, TS, Tailwind v4 ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ๋ช…์„ธ.
- [Data_Model_Reference](./core/data_model_reference.md): v2 ์Šคํ† ๋ฆฌ์ง€ ์Šคํ‚ค๋งˆ, Branded Types, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ทœ์น™.
- [Financial_Taxation_Reference](./core/financial_taxation_reference.md): ๊ธˆ์œต์†Œ๋“์ข…ํ•ฉ๊ณผ์„ธ ์ •์ฑ… ๋ฐ UI ๊ฒฝ๊ณ  ๊ธฐ์ค€ (Safety Margin).
- [Version_Management_Principles](./core/version_management_principles.md): ์ž๋™ํ™”๋œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ(Actions) ํ”„๋กœํ† ์ฝœ.
- [UI_Standards_Reference](./core/ui_standards_reference.md): ๋””์ž์ธ ์‹œ์Šคํ…œ(Glassmorphism), ํ”ผ๋“œ๋ฐฑ ๋ฐ ์‹œ๊ฐํ™” ํ‘œ์ค€.
- [Knowledge_Harness](./core/knowledge_harness.md): ์ง€์‹ ํ•˜๋„ค์Šค(LLM Wiki) ๋ฐ Codegraph ์—ฐ๊ณ„ ์šด์˜ ์ฒด๊ณ„.

## ๐Ÿš€ ์ง„ํ–‰ ์ค‘์ธ ๊ฐœ๋ฐœ (Active Development)
- [Phase 2 Context](file:///D:/jhkSandBox/CODE/IndividualSavingsFlowUI/.planning/phases/02-core

Details

Kind
OKF bundles
Topic
AI, RAG & memory
Publisher
jinhoops
Origin
okf_github
Category
dados
Version
0.1
Forks
1
Last push
2026-09-10T03:49:55Z
Repository state
ativo
Language
TypeScript
License
MIT
Added
2026-09-09 12:03:57
Updated
2026-09-09 12:03:57
Origin id
jinhoOps/IndividualSavingsFlowUI:.gemini/knowledge/wiki/index.md

README

# IndividualSavings Flow UIUX

๊ฐœ์ธ ์žฌ๋ฌด ํ๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์žฅ๊ธฐ ํˆฌ์ž ์ „๋žต๊ณผ ์‹คํ–‰ ๊ณ„ํš์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ •์  ์›น ์•ฑ์ž…๋‹ˆ๋‹ค. 2026-09-08 ์ตœ์‹  main ๊ธฐ๋Šฅ๊ณผ Supabase workspace v4๋ฅผ ํ†ตํ•ฉํ•˜๊ณ  ์›๊ฒฉ main pushยทPages ๋ฐฐํฌ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. 2026-09-10 ์ง€์ถœ ๋„์šฐ๋ฏธยทworkspace v5๋„ ์šด์˜ DB์— ์ ์šฉํ•˜๊ณ  Pages ๋ฐฐํฌ์™€ ์‹ค์ œ ๊ณ„์ • ์ €์žฅ์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์‚ฌ์ดํŠธ์˜ ์‹ค์ œ ์ž„์‹œ ์ด๋ฉ”์ผ ๋กœ๊ทธ์ธยท๊ณ„์ • ์ €์žฅยท๋‘ ๋ธŒ๋ผ์šฐ์ € ๋™๊ธฐํ™”๋ฅผ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. Google provider ์„ค์ •์€ ์•„์ง ๋ฏธ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค. [์ตœ์‹  ๋ฐฐํฌ ๊ธฐ๋ก](docs/superpowers/evidence/2026-09-10-expense-assistant-production-rollout.md)๊ณผ [๊ณ„์ • ์ €์žฅ ์šด์˜ ์•ˆ๋‚ด](docs/supabase-account-setup.md)๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ง€์› ์ œํ’ˆ์€ Main, Simulation, Portfolio์™€ Account Map์ž…๋‹ˆ๋‹ค. ๋„ค ์•ฑ์€ shared workspace๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- **Main**: ์›” ์‹ค์ˆ˜๋ น์•ก, ์ง€์ถœ, ์ €์ถ•, ํˆฌ์ž์™€ ๋‚จ๋Š” ๋ˆ์„ ํ•œ๋ˆˆ์— ๋ณด์—ฌ์ฃผ๊ณ  whole-workspace ๋ฐฑ์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ํ˜„์žฌ ์ œํ’ˆ ๊ธฐ์ค€์„ ์ž…๋‹ˆ๋‹ค.
- **Simulation**: Main์˜ ์›” ์ €์ถ•ยทํˆฌ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žฅ๊ธฐ ๋ณต๋ฆฌ ์„ฑ์žฅ๊ณผ ์ „๋ถ€ ์ €์ถ• ๊ธฐ์ค€์„ ์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
- **Portfolio**: ์ตœ์‹  Main ํˆฌ์ž๊ธˆ์„ ์ฒซ ์„ค์ • ํ๋ฆ„์—์„œ ์ „์ฒด ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ๋ถ„ํ•˜๊ณ , ์ดํ›„ ์•ˆ์ • ๋น„์ค‘ ์ค‘์‹ฌ ๊ฒฐ๊ณผ์™€ ์ง‘์ค‘ ํŽธ์ง‘ ํ™”๋ฉด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- **Account Map**: Main์˜ ๋‹ค์„ฏ ์›” ๊ธˆ์•ก์„ ์ฝ์–ด ๋ชฉ์  ๋ฐฐ์ •๊ณผ ๊ณ„์ขŒ ๊ฐ„ ์›” ๊ณ„ํš ํ๋ฆ„์„ ๋งŒ๋“ค๊ณ  ๋…ธ๋“œ ์ง€๋„๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ํŽ˜์ด์ง€: https://jinhoops.github.io/IndividualSavingsFlowUI/

## ์ œํ’ˆ ์ปจ์…‰

ISF๋Š” ๋‹จ์ˆœํžˆ ์ˆ˜์ž…๊ณผ ์ง€์ถœ์„ ๊ธฐ๋กํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋“ค์–ด์˜ค๋Š” ๋ˆ์ด ์ƒํ™œ๋น„, ์ €์ถ•๊ณผ ํˆฌ์ž๋กœ ์–ด๋–ป๊ฒŒ ๋‚˜๋‰˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ , ํ˜„์žฌ ์„ ํƒ์„ ์žฅ๊ธฐ ๊ณ„ํš๊ณผ ์‹ค์ œ ์‹คํ–‰์œผ๋กœ ์—ฐ๊ฒฐํ•ด ๊ฐ€๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ ์žฌ๋ฌด ํ”Œ๋ž˜๋‹ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” ์›”๊ฐ„ ํ˜„๊ธˆํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋Š” Main, N๋…„ ํ›„ ๊ธฐ๋Œ€ ์ž์‚ฐ์„ ๋น„๊ตํ•˜๋Š” Simulation, ์ตœ์‹  Main ํˆฌ์ž๊ธˆ์„ ์ „์ฒด ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ๋ถ„ํ•˜๋Š” Portfolio, ๊ณ„ํš์„ ์‹ค์ œ ๊ธˆ์œต ์œ„์น˜์— ์—ฐ๊ฒฐํ•˜๋Š” Account Map์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋„ค ์•ฑ์€ ํ•˜๋‚˜์˜ versioned workspace๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ณด์—ฌ์ฃผ๋Š” ๋ฏธ๋ž˜ ๊ฐ’์€ ํ™•์ •๋œ ์˜ˆ์ธก์ด๋‚˜ ์ˆ˜์ต ๋ณด์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ˜„์žฌ ์ƒํ™ฉ๊ณผ ๊ฐ€์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์—ฌ๋Ÿฌ ์„ ํƒ์ง€๋ฅผ ๋น„๊ตํ•˜๊ณ  ๋” ๋‚˜์€ ์งˆ๋ฌธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ณ„ํš์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค.

## ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

ISF์˜ ๋„ค ์•ฑ์€ ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•ฉ๋‹ˆ๋‹ค.

- ๋‚ด ์›” ์ˆ˜์ž…์€ ์–ด๋””๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š”๊ฐ€?
- ์ƒํ™œ๋น„, ์ €์ถ•๊ณผ ํˆฌ์ž ๋น„์ค‘์€ ํ˜„์žฌ ๊ณ„ํš์— ๋งž๋Š”๊ฐ€?
- **Simulation**: ์ •ํ•œ ์›” ์ €์ถ•ยทํˆฌ์ž๊ฐ€ ์žฅ๊ธฐ ๋ณต๋ฆฌ๋กœ ์–ผ๋งˆ๋‚˜ ์ปค์ง€๋Š”๊ฐ€?
- **Portfolio**: ์„ ํƒํ•œ ์ „๋žต์„ ์–ด๋–ค ํˆฌ์ž ๋Œ€์ƒ์œผ๋กœ ๋ฐฐ๋ถ„ํ•  ๊ฒƒ์ธ๊ฐ€?
- **Account Map**: ๊ธˆ์œต ์œ„์น˜์™€ ๊ณ„์ขŒ ๊ฐ„ ์›” ๊ณ„ํš ํ๋ฆ„์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€?

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์•ˆ์—์„œ ๊ณ„์‚ฐํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜๋ฉฐ, ๋กœ๊ทธ์ธํ•œ Supabase ๊ณ„์ •์˜ workspace๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Google๊ณผ ์ž„์‹œ ์ด๋ฉ”์ผยท๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ์€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ID์™€ ์ €์žฅ ๊ณ„์•ฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ ์•ฑ ์„œ๋ฒ„๋‚˜ ์€ํ–‰ ์—ฐ๋™์€ ์—†์Šต๋‹ˆ๋‹ค.

## ํ˜„์žฌ ์ œํ’ˆ

### Main

Main์€ ์›” ์‹ค์ˆ˜๋ น์•ก, ์ง€์ถœ, ์ €์ถ•, ํˆฌ์ž์™€ ๋‚จ๋Š” ๋ˆ์„ ํ•œ๋ˆˆ์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ์›” ์‹ค์ˆ˜๋ น์•ก, ์ฃผ๊ฑฐ ๊ณ ์ •๋น„, ํ‰๊ท  ์ƒํ™œ๋น„, ์ €์ถ•, ํˆฌ์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์—์„œ ํ˜„์žฌ ๊ณ„ํš๊ณผ ๋‚จ๋Š” ๋ˆ์„ ๋ฐ”๋กœ ํ™•์ธํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ํ™•์ธ ํ™”๋ฉด์—์„œ ์ง€์ถœ, ์ €์ถ•, ํˆฌ์ž, ๋‚จ๋Š” ๋ˆ์˜ ๋น„์œจ์„ ์‚ดํŽด๋ณธ ๋’ค ๊ณ„ํš์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ ์šฉ ํ›„์—๋Š” ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๊ฐ™์€ ์ˆ˜์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Main์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ:

- ์›”๊ฐ„ ํ˜„๊ธˆํ๋ฆ„ ์š”์•ฝ
- 2๋ถ„ ๋น ๋ฅธ ์„ค์ •๊ณผ ์ค‘๊ฐ„ ์ดํƒˆ ํ›„ ์žฌ๊ฐœ
- ์ง€์ถœ, ์ €์ถ•, ํˆฌ์ž, ๋‚จ๋Š” ๋ˆ์˜ ๊ธˆ์•ก๊ณผ ๋น„์œจ
- ์›” ์‹ค์ˆ˜๋ น์•ก๊ณผ ์›”๊ฐ„ ๊ณ„ํš ์ˆ˜์น˜ ํŽธ์ง‘
- ์ง€์ถœ ๊ธˆ์•ก์„ ๋ˆŒ๋Ÿฌ ๊ณ ์ •๋น„ยท๋ณ€๋™๋น„ 13๊ฐœ ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ธฐ์–ตํ•œ ๋‹ต๋ณ€์˜ ํ•ฉ๊ณ„๋กœ ์ฃผ๊ฑฐ๋น„ยท์ƒํ™œ๋น„ ๋Œ€์ฒด
- ๋‚จ๋Š” ๋ˆ ๊ธˆ์•ก์„ ๋ˆŒ๋Ÿฌ ์ €์ถ•ยทํˆฌ์ž์— ์ „๋ถ€ ๋˜๋Š” ์ผ๋ถ€๋ฅผ ๋‚˜๋ˆ„๊ณ , ๋ฐ˜์˜ ์ „ํ›„์™€ ๋‚จ๊ฒจ๋‘˜ ๋ˆ ํ™•์ธ
- ๋ชจ๋“  ํ˜„์žฌ ์•ฑ slice์™€ ๊ณต์œ  ์œ„์น˜๋ฅผ ํ•œ ๋ฒˆ์— ๋‹ค๋ฃจ๋Š” whole-workspace JSON ๋ฐฑ์—…

### Simulation

Main์— ์ ์šฉ๋œ ๊ณ„ํš์ด ์žˆ์œผ๋ฉด `Simulation์œผ๋กœ ์ด์–ด๊ฐ€๊ธฐ`๊ฐ€ URL๋กœ๋งŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ์—๋Š” ์‹œ์ž‘ ์ž์‚ฐ, ์‹œ์ž‘ ์ž์‚ฐ์ด 2์–ต ์› ์ด์ƒ์ผ ๋•Œ์˜ ์กฐ๊ฑด๋ถ€ ๋ชฉํ‘œ ๊ธˆ์•ก, ์˜ˆ์ƒ ์—ฐ ์ˆ˜์ต๋ฅ ์„ ํ•œ ๊ฐ€์ง€์”ฉ ์„ค์ •ํ•˜๊ณ , ์ดํ›„์—๋Š” ๊ฒฐ๊ณผ๋กœ ๋ฐ”๋กœ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค. Simulation์€ ์ง„์ž…ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์ • workspace์˜ ์ตœ์‹  Main slice๋ฅผ ์ฝ๋˜ Main ์›๋ณธ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ฐ„์€ ํ˜„์žฌ๋ฅผ ๋œปํ•˜๋Š” 0๋…„๋ถ€ํ„ฐ 30๋…„๊นŒ์ง€ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ํ•œ๊ตญ์‹ ์ •์ˆ˜ ๊ธˆ์•ก, ์ „์ฒด ํญ ์„ฑ์žฅ ๊ทธ๋ž˜ํ”„์™€ ์ „๋ถ€ ์ €์ถ• ๋น„๊ต๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ pointerยทtouchยทkeyboard๋กœ ์—ฐ๋„๋ณ„ ์ƒ์„ธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Ÿฐ์ฒ˜๋Š” Main, Simulation, Portfolio์™€ Account Map์„ ํ•œ ์ค„ ์•„์ด์ฝ˜์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์•ฑ์€ ์„ ํƒ์„ ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์•„์ด์ฝ˜์˜ ํ•œ๊ธ€ยท์˜๋ฌธ ๋ช…์นญ์€ hover, keyboard focus, ๋ชจ๋ฐ”์ผ ๊ธธ๊ฒŒ ๋ˆ„๋ฅด๊ธฐ ๋˜๋Š” `?` ๋„์›€๋ง๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

## Portfolio์™€ Account Map

### Portfolio

์ตœ์‹  Main ํˆฌ์ž๊ธˆ์„ workspace์—์„œ ์ฝ์–ด ์ตœ๋Œ€ 10๊ฐœ ์ž์œ  ์ด๋ฆ„ ํˆฌ์ž ๋Œ€์ƒ๊ณผ ํ˜„๊ธˆ์— ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ์—๋Š” ์‹œ์ž‘ยท๋ฐฐ๋ถ„ยท๊ฒ€ํ† ์˜ ์•ˆ๋‚ด ํ๋ฆ„์„ ๊ฑฐ์น˜๊ณ  ์ดํ›„์—๋Š” ๊ฒฐ๊ณผ๋กœ ๋ฐ”๋กœ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋Œ€์ƒ์€ ์„ฑ์žฅยท์•ˆ์ • ๋ถ„๋ฅ˜์™€ ์ž๋™ ์ถ”์ฒœยท์‚ฌ์šฉ์ž ์ง€์ • ์ถœ์ฒ˜๋ฅผ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์—์„œ๋Š” ์›ํ™” ๊ธˆ์•ก์„ ๊ธฐ๋ณธ์œผ๋กœ ์ˆจ๊ธด ์ฑ„ ์•ˆ์ • ๋น„์ค‘๊ณผ ๊ฐ€์žฅ ํฐ ๋ฐฐ๋ถ„ ๋Œ€์ƒ์„ ์š”์•ฝํ•œ ๋’ค ์ด๋ฆ„ยท๋น„์œจยท๋น„๋ก€ ๋ง‰๋Œ€ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ด€๋ฆฌ ๋ฉ”๋‰ด์—์„œ ์ „์ฒด ๊ธˆ์•ก ํ‘œ์‹œ์™€ ๋น„์œจ์ˆœยท์ž…๋ ฅ์ˆœ ์ •๋ ฌ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `๋ฐฐ๋ถ„ ์ˆ˜์ •`์€ ๋ชจ๋ฐ”์ผยทํƒœ๋ธ”๋ฆฟ์—์„œ ํ•˜๋‹จ sheet, ๋ฐ์Šคํฌํ†ฑ์—์„œ ์šฐ์ธก panel๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ํ˜„์žฌ UI๋Š” `์ „์ฒด ๊ธฐ์ค€` ์ ์šฉ ๊ณ„ํš๊ณผ ์ดˆ์•ˆ๋งŒ ํŽธ์ง‘ํ•˜๋ฉฐ Main์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ ํƒํ•œ ํˆฌ์ž ๋ฐฉํ–ฅ์„ ์ข…๋ชฉยท์ž์‚ฐ๋ณ„ ์ ๋ฆฝ ๊ธˆ์•ก๊ณผ ๋น„์ค‘์œผ๋กœ ๊ตฌ์ฒดํ™”ํ•ฉ๋‹ˆ๋‹ค.

### Account Map

Account Map์€ Main์˜ ๋‹ค์„ฏ ์›” ๊ธˆ์•ก์„ ์ฝ๊ธฐ ์ „์šฉ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ ์„ค์ •์—์„œ ์ˆ˜์ž…ยท์ฃผ๊ฑฐยท์ƒํ™œ๋น„ยท์ €์ถ•ยทํˆฌ์ž๋ฅผ ๊ณ„์ขŒยท๋ณด๊ด€์ฒ˜์— ๋ฐฐ์ •ํ•˜๊ณ , ๊ณ„์ขŒ ๊ฐ„ ๊ณ ์ • ์ด์ฒด์™€ `๋‚จ์€ ๊ธˆ์•ก ์ „๋ถ€` ๊ทœ์น™์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ ์ง€๋„๋Š” ์ „์ฒด ์›” ๊ณ„ํš ํ๋ฆ„์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ณด์ด๊ณ , ๊ณ„์ขŒ๋ฅผ ํ•œ ๋ฒˆ ์„ ํƒํ•˜๋ฉด ์ƒยทํ•˜๋ฅ˜ยท๋ชฉ์ ๊ณผ ๋ช…์‹œ์  ํ๋ฆ„ ํŽธ์ง‘ action์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ ์ž”์•กยท๊ฑฐ๋ž˜ ๋˜๋Š” ์‹คํ–‰ ์ด์ฒด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Main ๊ธˆ์•ก ์ˆ˜์ •์€ ์ง€๋„๋ฅผ ์œ ์ง€ํ•œ Main ์†Œ์œ  overlay์—์„œ๋งŒ ์ €์žฅํ•˜๋ฉฐ, ์ €์žฅ ๋’ค์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ `ํ˜„์žฌ Main ๊ธฐ์ค€์œผ๋กœ ํ™•์ธ`์„ ๋ช…์‹œํ•ด์•ผ stale notice๊ฐ€ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. Account Map command๋Š” `workspace.locations`์™€ `workspace.accountMap`๋งŒ ๊ฐฑ์‹ ํ•˜๊ณ  MainยทSimulationยทPortfolio์—๋Š” write-backํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒ์„ธ ๊ณ„์•ฝ์€ [Account Map Planned Account Flow Design](docs/superpowers/specs/2026-09-04-account-map-planned-account-flow-design.md)์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

## ๊ณต์œ  ์ธํ”„๋ผ

ํ˜„์žฌ ๋„ค ์•ฑ์€ ๋‹ค์Œ ๊ธฐ๋ฐ˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

- ๋„ค ๋ชฉ์ ์ง€ ์•ฑ ๋Ÿฐ์ฒ˜์™€ ํ˜„์žฌ ์œ„์น˜ ํ‘œ์‹œ
- ๊ณ„์ •๋‹น ํ•˜๋‚˜์˜ Supabase JSONB workspace(schema v5)์™€ ์•ฑ๋ณ„ typed slice adapter
- RLS ๊ณ„์ • ๊ฒฉ๋ฆฌ, ์„œ๋ฒ„ revision ๊ฒ€์‚ฌ์™€ mutation receipt๋ฅผ ์‚ฌ์šฉํ•œ ๋™์‹œ ์ €์žฅยท์ค‘๋ณต ์žฌ์‹œ๋„ ๋ณดํ˜ธ
- MainยทSimulationยทPortfolioยท๊ณต์œ  ๊ธˆ์œต ์œ„์น˜์™€ Account Map ์ƒํƒœ๋ฅผ ํฌํ•จํ•˜๋Š” whole-workspace ๋ฐฑ์—…
- ๋ชจ๋“  slice์™€ ์ฐธ์กฐ๋ฅผ ๋จผ์ € ๊ฒ€์ฆํ•œ ๋’ค ํ•œ ๋ฒˆ์— ๊ต์ฒดํ•˜๋Š” atomic restore
- URL ๊ธฐ๋ฐ˜ ์•ฑ ํƒ์ƒ‰๊ณผ workspace Main slice๋ฅผ ์ฝ๋Š” ์•ฑ๋ณ„ read-only adapter
- Vite PWA๊ฐ€ ์†Œ์œ ํ•˜๋Š” PWA ๋งค๋‹ˆํŽ˜์ŠคํŠธ์™€ ๋ฐฐํฌ ์„œ๋น„์Šค์›Œ์ปค
- ๊ณตํ†ต ๋””์ž์ธ ํ† ํฐ๊ณผ ๋ฒ„ํŠผยทํŒจ๋„ ์Šคํƒ€์ผ

๊ธˆ์œต ๋ฐ์ดํ„ฐ ์›๋ณธ์€ ๋กœ๊ทธ์ธํ•œ ๊ณ„์ •์˜ ์„œ๋ฒ„ workspace์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—๋Š” ๊ณ„์ •๋ณ„ ๋งˆ์ง€๋ง‰ snapshot๊ณผ ๋ฏธ์ „์†ก ์ž…๋ ฅ์„ ๋ณต๊ตฌ์šฉ์œผ๋กœ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ ์žฌ๋ฐฉ๋ฌธ์€ ์ฝ๊ธฐ ์ „์šฉ์ด๋ฉฐ, ์—ด๋ฆฐ ํ™”๋ฉด์€ focusยทonline ๋ณต๊ท€ ๋˜๋Š” visible ์ƒํƒœ์˜ 30์ดˆ ์กฐํšŒ๋กœ ์ตœ์‹ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๊ฐ€ ๋จผ์ € ์ €์žฅํ–ˆ์œผ๋ฉด ์ž…๋ ฅ์„ ์œ ์ง€ํ•˜๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ์žฌ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. Portfolio์˜ ๊ธˆ์•ก ํ‘œ์‹œยท์ •๋ ฌ ๊ฐ™์€ ๋ณด๊ธฐ ์„ค์ •์€ ๊ธˆ์œต workspace์™€ ๋ณ„๊ฐœ์˜ ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ฝ”๋“œ๋Š” [์ง€์ถœ ๋„์šฐ๋ฏธ ์„ค๊ณ„](docs/superpowers/specs/2026-09-10-main-expense-assistant-design.md)์˜ workspace v5๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด [v4 ํ†ตํ•ฉ](docs/superpowers/specs/2026-09-08-supabase-workspace-v4-integration-design.md) ์œ„์— Main ํ•ญ๋ชฉ๋ณ„ ๋‹ต๋ณ€์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  RPC์— protocol 5๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ • ์บ์‹œ๋Š” `isf-account-workspace-v3`์ด๋ฉฐ ๊ตฌ v2/v1 ์บ์‹œ์˜ ๋ฏธ์ „์†ก ์š”์ฒญ์€ ์ž๋™ ์žฌ์ „์†กํ•˜์ง€ ์•Š๊ณ  ๋ณต๊ตฌ ์›๋ฌธ์œผ๋กœ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ํ˜„์žฌ ํ‚ค๋Š” `isf-workspace-v5`์ด๋ฉฐ ๋ช…์‹œ์  ๊ฐ€์ ธ์˜ค๊ธฐ ํ›„๋ณด์ž…๋‹ˆ๋‹ค. ์—†์„ ๋•Œ๋งŒ v4 โ†’ v3 โ†’ ์œ ํšจํ•œ retired v1/v2 ์›๋ณธ `isf-workspace-v1` ์ˆœ์œผ๋กœ ์ฝ๊ธฐ ์ „์šฉ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. invalid ์ตœ์‹  ์›๋ณธ์—์„œ๋Š” ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ fallbackํ•˜์ง€ ์•Š๊ณ  ์›๋ณธยทforeign record๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •์ƒ export๋Š” ์„œ๋ฒ„ ํ™•์ • ๋ฐ์ดํ„ฐ์˜ backup format 4/workspace v5์ด๋ฉฐ format 3/2/1์€ ์—ญ์‚ฌ์  parser์™€ converter๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ๋ฏธ์ „์†ก ์ž…๋ ฅ์€ ๋ณ„๋„์˜ ๋ณต๊ตฌ ํŒŒ์ผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

## ์ œํ’ˆ ์›์น™

- **์š”์•ฝ ๋จผ์ €**: ๊ธฐ๋ณธ ํ™”๋ฉด์€ ์ž…๋ ฅ ํผ๋ณด๋‹ค ํ˜„์žฌ ์ƒํƒœ์™€ ๋‹ค์Œ ํ–‰๋™์„ ๋จผ์ € ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
- **์ž‘๊ณ  ๋ช…ํ™•ํ•œ ์ž…๋ ฅ ๊ณ„์•ฝ**: Main์€ ๋‹ค์„ฏ ์›”๊ฐ„ ๊ธˆ์•ก๊ณผ ์ง€์ถœ ๊ณ„์‚ฐ์šฉ ๋ณด์กฐ ๋‹ต๋ณ€์„ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค.
- **๋ช…์‹œ์  ์ €์žฅ**: ํฐ ํŽธ์ง‘์€ ์ ์šฉ ์ „๊นŒ์ง€ draft๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
- **๊ณ„์ •๋ณ„ ์›๋ณธ**: ์„œ๋ฒ„ ์ €์žฅ ํ™•์ • ํ›„ ์„ฑ๊ณต์„ ํ‘œ์‹œํ•˜๊ณ , ๋กœ์ปฌ ์›๋ณธ๊ณผ ๋ฏธ์ „์†ก ์ž…๋ ฅ์€ ๊ตฌ๋ถ„ํ•ด ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.
- **ํ•œ๊ตญ์–ด ๊ธˆ์•ก UX**: ์‚ฌ์šฉ์ž๋Š” ๋งŒ ์›ยท์–ต ์› ๋‹จ์œ„๋กœ ์ฝ๊ณ  ๋‚ด๋ถ€ ๊ณ„์‚ฐ๊ณผ ์ €์žฅ์€ ์› ๋‹จ์œ„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
- **์‹œ๊ฐํ™” ์ค‘์‹ฌ**: ํ˜„์žฌ Main์˜ ์›” ์ž๊ธˆ ๊ตฌ์„ฑ๊ณผ ํ–ฅํ›„ ์•ฑ๋ณ„ ์‹œ๊ฐํ™”๋Š” ์ˆซ์ž์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- **๋ช…์‹œ์  ์—ฐ๊ฒฐ**: ์•ฑ ์ด๋™์€ URL๋งŒ ์‚ฌ์šฉํ•˜๊ณ  SimulationยทPortfolioยทAccount Map์ด ๊ฐ™์€ workspace์˜ ์ตœ์‹  Main slice๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. Account Map์˜ Main ์ˆ˜์ • ์š”์ฒญ์€ Main ์†Œ์œ  overlay๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
- **์ฑ…์ž„ ๋ถ„๋ฆฌ**: ๊ฐ ์•ฑ์€ ์ž์‹ ์˜ draft/applied ์ƒํƒœ๋งŒ ์“ฐ๊ณ  ๋‹ค๋ฅธ ์ œํ’ˆ slice์—๋Š” ์•”๋ฌต์ ์œผ๋กœ write-backํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

## Legacy Migration Status

์•„์ง ์ด๊ด€ํ•˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํ˜ธํ™˜์„ฑ ์ง€์‹์ด ๋‚จ์•„ ์žˆ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋Š” ์ž„์‹œ๋กœ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ๊ฑฐ์‹œ๋Š” ์ง€์›๋˜๋Š” ์‚ฌ์šฉ์ž ๊ฒฝ๋กœ๋‚˜ ์‹ ๊ทœ ๊ธฐ๋Šฅ์˜ ๊ธฐ๋ฐ˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์„ ๋ชฉ๋กํ™”ํ•˜๊ณ  ํ˜„์žฌ ์ œํ’ˆ์— ํ•„์š”ํ•œ์ง€ ํŒ์ •ํ•œ ๋’ค, ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์€ ํ˜„์žฌ ์ฑ…์ž„ ๊ฒฝ๊ณ„๋กœ ์ด๊ด€ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ์€ ํ๊ธฐ ๊ทผ๊ฑฐ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋™์ž‘๊ณผ ๊ตฌ๋ฒ„์ „ ์ €์žฅ ๋ฐ์ดํ„ฐ์˜ ํ˜ธํ™˜์„ฑ์„ ๊ฒ€์ฆํ•˜๊ณ  ๋ชจ๋“  runtimeยทrouteยทselectorยทstorageยทtest ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ๋ ˆ๊ฑฐ์‹œ ๊ตฌํ˜„์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

Phase 4์—์„œ ๊ตฌ Main runtime, storage bridge, shared browser layer์™€ ๊ตฌ ์„œ๋น„์Šค์›Œ์ปค๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. `shared/brand/mainBrandGeometry.js`๋งŒ ์ด์ „ shared browser tree์—์„œ ๋‚จ์€ ํŒŒ์ผ์ด๋ฉฐ ํ˜„์žฌ Main brand icon์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ ์ €์žฅ ํ‚ค ๋ฌธ์ž์—ด์€ read-only migration/rollback ๊ฒฝ๊ณ„, ์Œ์„ฑ ์ฐธ์กฐ ๊ฒ€์‚ฌ์™€ fixture์—๋งŒ ๋‚จ์Šต๋‹ˆ๋‹ค. Task 8์˜ ์ตœ์ข… ์ „์ฒด ๊ฒ€์ฆ์€ ํ†ต๊ณผํ–ˆ๊ณ , ์ •ํ™•ํ•œ ๋ช…๋ นยท์ฐธ์กฐ ๊ฐ์‚ฌยท๋ฐ˜์‘ํ˜• QA ๊ฒฐ๊ณผ๋Š” [Phase 4 disposition](docs/superpowers/evidence/2026-09-02-phase4-legacy-test-disposition.md)์— ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›„์† ์ •๋ฆฌ์—์„œ๋Š” ๋ฏธ์‚ฌ์šฉ ๊ธ€๋กœ๋ฒŒ CSS, ์˜ˆ์ „ ์‹œ์„ธ ์ƒ์„ฑยท๋ฌธ์„œ ๋ณ€ํ™˜ ์Šคํฌ๋ฆฝํŠธ์™€ ๊ฒ€์‚ฌ ์ถœ๋ ฅ๋ฌผ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ญ์ œ ๊ทผ๊ฑฐ์™€ ํ˜„์žฌ ์ €์žฅ ํ˜ธํ™˜์„ฑ ๋ณด์กด ๋ฒ”์œ„๋Š” [์ž”์—ฌ ์ž์‚ฐ ์ •๋ฆฌ ๊ธฐ๋ก](docs/superpowers/plans/2026-09-08-entry-focus-and-legacy-residue.md)์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

## ์‹คํ–‰ํ•˜๊ธฐ

ํ•„์š” ์กฐ๊ฑด:

- Node.js 22 ์ด์ƒ ๊ถŒ์žฅ
- npm

์„ค์น˜:

```bash
npm install
```

๊ฐœ๋ฐœ ์„œ๋ฒ„:

`.env.example`์„ ์ฐธ๊ณ ํ•ด `.env.local`์— Supabase URL๊ณผ ๊ณต๊ฐœ publishable key๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. DB ๋น„๋ฐ€๋ฒˆํ˜ธยทservice-role/secret key๋Š” ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž„์‹œ ์ด๋ฉ”์ผยท๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ์€ ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์ „ ์ค€๋น„ํ•œ ๊ณ„์ •์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ํšŒ์›๊ฐ€์ž…์ด๋‚˜ ๊ณ„์ • ์ž๋™ ์ƒ์„ฑ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž„์‹œ ๊ณ„์ • ์ค€๋น„์™€ Google providerยทcallback ๋“ฑ๋ก์€ [์šด์˜ ์•ˆ๋‚ด](docs/supabase-account-setup.md)๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ํ™”๋ฉด์—์„œ ์ž…๋ ฅํ•˜๊ณ  ์†Œ์Šคยทํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์ •์  ๋นŒ๋“œ์— ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์„ค์ •์ด ์—†์œผ๋ฉด ์ œํ’ˆ ๋Œ€์‹  ์„ค์ • ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ production build๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

```bash
npm run dev
```

ํƒ€์ž… ์ฒดํฌ:

```bash
npm run check
```

์ „์ฒด E2E ํ…Œ์ŠคํŠธ:

```bash
npm run test:e2e -- --reporter=list
```

๋นŒ๋“œ:

```bash
npm run build
```

## ๊ฐœ๋ฐœ ๊ตฌ์กฐ

์ด ์ €์žฅ์†Œ๋Š” Vite ๊ธฐ๋ฐ˜ ์ •์  ๋ฉ€ํ‹ฐํŽ˜์ด์ง€ ์•ฑ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ Main, Simulation, Portfolio์™€ Account Map์€ ReactยทTypeScriptยทTailwind CSS๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํฐ ์ฑ…์ž„ ๊ฒฝ๊ณ„:

- **์ž…๋ ฅ๊ณผ ์ •๊ทœํ™”**: ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ณผ current workspace/backup payload์˜ exact validation
- **draft์™€ ์ƒํƒœ**: ํŽธ์ง‘ ์ค‘ ์ƒํƒœ, dirty ํŒ์ •, ์ ์šฉ๊ณผ ์ทจ์†Œ
- **ํ˜„์žฌ ๊ณ„์‚ฐ**: Main ์›”๊ฐ„ ํ˜„๊ธˆํ๋ฆ„, ์ž”์•ก๊ณผ ์ ์ž
- **ํ˜„์žฌ ์‹œ๊ฐํ™”**: Main ์š”์•ฝ ์นด๋“œ์™€ ์›” ์ž๊ธˆ ๊ตฌ์„ฑ
- **์ €์žฅ๊ณผ ๊ณต์œ **: ๋‹จ์ผ revisioned workspace, ์•ฑ slice adapter, ๊ณต์œ  ๊ธˆ์œต ์œ„์น˜์™€ whole-workspace JSON
- **์•ฑ ์—ฐ๊ฒฐ**: URL๋กœ ์ด๋™ํ•˜๋Š” Main โ†’ Simulation โ†’ Portfolio โ†’ Account Map ์ƒ์„ธ ํ™”๋ฉด
- **๊ณตํ†ต UI**: ์•ฑ ๋Ÿฐ์ฒ˜, Main ๋ฐ์ดํ„ฐ ํ—ˆ๋ธŒ, ํ”ผ๋“œ๋ฐฑ, ํ…Œ๋งˆ์™€ PWA

## ๊ฒ€์ฆ ๊ธฐ์ค€

์ตœ์†Œ ์ •์  ๊ฒ€์ฆ:

```bash
npm run check
```

์‚ฌ์šฉ์ž ํ๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ๊ด€๋ จ Playwright ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

```bash
npm run test:e2e -- --reporter=list
```

Main์˜ ๋น ๋ฅธ ์„ค์ •์ด๋‚˜ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด focused ํšŒ๊ท€๋ฅผ ๋จผ์ € ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```bash
npx playwright test tests/main-react.spec.ts
```

Account Map ์‚ฌ์šฉ์ž ํ๋ฆ„, Main overlay์™€ v3/v2 ํ˜ธํ™˜์„ฑ ํšŒ๊ท€๋Š” ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

```bash
npx playwright test tests/account-map.spec.ts --reporter=list
```

๊ณ„์ • ํ๋ฆ„์€ `npx playwright test --project=cloud`, ๊ธฐ์กด ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ํ˜ธํ™˜์„ฑ๊ณผ ์ œํ’ˆ ํšŒ๊ท€๋Š” ํ…Œ์ŠคํŠธ ์ „์šฉ entry์˜ `--project=chromium`์œผ๋กœ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์šฐํšŒ๋Š” production entry์— ์—†์Šต๋‹ˆ๋‹ค. DB ๊ถŒํ•œยทํŠธ๋žœ์žญ์…˜ ๊ฒ€์ฆ์€ Docker ์‹คํ–‰ ํ›„ `node scripts/test-workspace-db.mjs`๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์šด์˜ DB์—๋Š” ์ ‘์†ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Node 25 ์ด์ƒ์—์„œ ์‹คํ—˜์  Web Storage๊ฐ€ jsdom๊ณผ ์ถฉ๋Œํ•˜๋ฉด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— `NODE_OPTIONS=--no-experimental-webstorage`๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

## ํ˜„์žฌ ๋กœ๋“œ๋งต

Phase A shared workspace foundation๊ณผ Main, Simulation, aggregate-first Portfolio, planned account-flow Account Map์€ ํ˜„์žฌ ๊ธฐ์ค€์„ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ด ๊ธฐ์ค€์„ ์„ ๋ณด์กดํ•˜๋ฉฐ ๋ณ„๋„ ๊ณ„ํš์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

- **๊ณ„์ • ์ €์žฅ ๊ตฌํ˜„**: ์ •์  ๋ฐฐํฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” [Google ๋กœ๊ทธ์ธยทSupabase ๊ณ„์ •๋ณ„ workspace ์ €์žฅ](docs/superpowers/specs/2026-09-07-supabase-account-workspace-design.md)๊ณผ 2026-09-08 ์Šน์ธ๋œ ์ž„์‹œ ์ด๋ฉ”์ผยท๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ. ์‹ค์ œ ์ž„์‹œ ๊ณ„์ • ์ค€๋น„ยท์šด์˜ DB migrationยทGoogle ์‹ค์ œ ์™•๋ณตยทPages ๋ฐฐํฌ๋Š” [์šด์˜ ์•ˆ๋‚ด](docs/supabase-account-setup.md)์˜ ๋ณ„๋„ rollout ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
- **Phase B ์™„๋ฃŒ**: ๊ณ„์ขŒ ์šฐ์„  ์„ค์ •, ๊ณ„์ขŒยท๋ณด๊ด€์ฒ˜ registry, ๋…ธ๋“œ ์ง€๋„์™€ ๊ฐ€์—ญ์  ๊ด€๋ฆฌ๊ฐ€ ์žˆ๋Š” Account Map
- **Phase C**: ํ˜„์žฌ Main metric ์˜์—ญ์„ ๋Œ€์ฒดํ•˜๋Š” MainยทSimulationยทPortfolioยทAccount Map ์—ฐ๊ฒฐ ๊ฒฐ๊ณผ ์นด๋“œ
- **Phase 4 ์™„๋ฃŒ**: ๋ถ„๋ฅ˜๋œ legacy runtimeยทcompatibility pathยทtest ์‚ญ์ œ, v1/v2 migration evidence์™€ [repository-wide ์ตœ์ข… ๊ฒ€์ฆ](docs/superpowers/evidence/2026-09-02-phase4-legacy-test-disposition.md)์„ ๊ธฐ๋กํ•จ
- **๋ณ„๋„ ํ›„์†**: ๊ธˆ์œต workspaceยทbackup๊ณผ ๋ถ„๋ฆฌ๋œ hidden trophy room
- ํ•œ๊ตญ์–ด ์€ํ–‰ยท์นด๋“œ ์•Œ๋ฆผ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ง€์ถœ capture
- ๋‘ ์‚ฌ๋žŒ์˜ Main ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ๊ฐ€๊ตฌ ๋ณ‘ํ•ฉ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- ๊ณผ๊ฑฐ snapshot ๋Œ€๋น„ ํ˜„์žฌ ์ง€์ถœ ๋น„๊ต
- ๊ฐ€๊ตฌ ์†Œ๋“ยท๋ถ€์ฑ„ยทDSRยทLTV ๊ธฐ๋ฐ˜ ๋ถ€๋™์‚ฐ ๊ตฌ๋งค๋ ฅ ๊ณ„ํš
- ํ•„์š”ํ•œ ๋ ˆ๊ฑฐ์‹œ ๊ธฐ๋Šฅ์˜ ํ˜„์žฌ ๋ชจ๋“ˆ ์ด๊ด€๊ณผ ๊ฒ€์ฆ ํ›„ ์ œ๊ฑฐ

## ์ œํ’ˆ ๋ฌธ์„œ

- [Product PRD](docs/ways-of-work/plan/isf-rebuild/connected-financial-planning-workspace/prd.md)
- [Agent Guide](AGENTS.md)
- [Design Contract](DESIGN.md)
- [Product Direction and Documentation Spec](docs/superpowers/specs/2026-07-29-product-direction-and-documentation-design.md)
- [Journey Snapshot Retirement Spec](docs/superpowers/specs/2026-08-03-journey-snapshot-retirement-design.md)
- [Connected Account Map Workspace Design](docs/superpowers/specs/2026-08-06-connected-account-map-workspace-design.md)
- [Account Map Planned Account Flow Design](docs/superpowers/specs/2026-09-04-account-map-planned-account-flow-design.md)
- [Shared Workspace Foundation Plan](docs/superpowers/plans/2026-08-06-shared-workspace-foundation.md)
- [Account Flow Decision History](docs/adr/0002-account-flow-belongs-to-portfolio-boundary.md)

## ๋ฐ์ดํ„ฐ์™€ ์ฃผ์˜์‚ฌํ•ญ

ISF๋Š” ๊ธˆ์œต๊ธฐ๊ด€ ์—ฐ๋™, ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ ์—ฐ๋™, ๋ฒ•์  ๊ธˆ์œต ์ž๋ฌธ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ€์ •์— ๊ธฐ๋ฐ˜ํ•œ ๊ณ„ํš์šฉ ์ถ”์ •์ž…๋‹ˆ๋‹ค.

๋Œ€์ถœ, ์„ธ๊ธˆ, ํˆฌ์ž์™€ ๋ถ€๋™์‚ฐ ์˜์‚ฌ๊ฒฐ์ •์—๋Š” ์‹ค์ œ ๊ธˆ์œต๊ธฐ๊ด€ ์กฐ๊ฑด๊ณผ ์ „๋ฌธ๊ฐ€ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

## ๋ผ์ด์„ ์Šค

ISC

More