# ๐Ÿš€ K-ArtSell Aegis v16.0 - ํ˜„์žฌ ์ง„ํ–‰ ๋กœ๋“œ๋งต **์ตœ์ข… ๊ฐฑ์‹ :** 2026-08-08 (VS ๋ฒˆํ˜ธ ์žฌ๋ฐฐ์ • โ€” ์•„๋ž˜ "์•Œ๋ ค์ง„ ๋ฌธ์„œ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ" 1๋ฒˆ ์ฐธ์กฐ. 2026-08-07 ๊ฐฑ์‹  ๋‚ด์šฉ์€ ์‹ค์ œ ์ฝ”๋“œ/ํ…Œ์ŠคํŠธ๋ฅผ ์ง์ ‘ ํ™•์ธํ•œ ๊ฒฐ๊ณผ์˜€๊ณ  ์ด๋ฒˆ ๊ฐฑ์‹ ์€ ๊ทธ ์œ„์— ๋ฒˆํ˜ธ ์ถฉ๋Œ๋งŒ ์ •์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.) **์ƒํƒœ ์š”์•ฝ:** VS-27(๊ฐ์‚ฌ ์ถ”์ ), VS-10(๋งค๋„ ๊ฒฐ์ •), VS-28(๊ฑฐ๋ž˜ ์‹คํ–‰), VS-29(ํฌํŠธํด๋ฆฌ์˜ค ๋Œ€์‚ฌ) ๋ฐฑ์—”๋“œ ๊ตฌํ˜„ + ํ…Œ์ŠคํŠธ ์™„๋ฃŒ. VS-26(์Šน์ธ ์›Œํฌํ”Œ๋กœ์šฐ, ๊ตฌ VS-03)์€ DEBT-017(์ค‘๋ณต ๊ตฌํ˜„) ๋ฏธํ•ด๊ฒฐ๋กœ **BLOCKED**. Phase 1 Shadow Run(Gate 5a, 252+ ๊ฑฐ๋ž˜์ผ ๊ฒ€์ฆ)์€ **์•„์ง ์‹œ์ž‘๋˜์ง€ ์•Š์Œ** (๊ณผ๊ฑฐ "RUNNING" ๊ธฐ๋ก์€ ํ—ˆ์œ„์˜€์Œ์ด ์ด๋ฏธ ๋ฌธ์„œ๋กœ ์ •์ •๋จ). ์ƒ์„ธ ํ•ญ๋ชฉ๋ณ„ ์ƒํƒœ๋Š” `docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv` ์ฐธ์กฐ. --- ## โš ๏ธ ์•Œ๋ ค์ง„ ๋ฌธ์„œ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ (DECISION_REQUIRED) 1. **VS ๋ฒˆํ˜ธ ์ฒด๊ณ„ ์ถฉ๋Œ โ€” 2026-08-08 ๋ถ€๋ถ„ ํ•ด๊ฒฐ:** `WBS_MASTER.csv`(์› ๊ณ„ํš)์™€ `WBS_PROGRESS_TRACKER.csv`(์‹คํ–‰ ํŠธ๋ž˜์ปค) ์‚ฌ์ด์˜ VS-03/VS-04/VS-12/VS-14 ์ถฉ๋Œ์€ ํŠธ๋ž˜์ปค ์ชฝ 4๊ฐœ ์Šฌ๋ผ์ด์Šค(์Šน์ธ์›Œํฌํ”Œ๋กœ์šฐ/๊ฐ์‚ฌ์ถ”์ /๊ฑฐ๋ž˜์‹คํ–‰/ํฌํŠธํด๋ฆฌ์˜ค๋Œ€์‚ฌ)๋ฅผ VS-26/27/28/29๋กœ ์žฌ๋ฒˆํ˜ธ ๋ถ€์—ฌํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๊ฑฐ: `docs/DECISIONS/ADR-WBS-001-slice-renumbering.md`. - **์ด ๊ณผ์ •์—์„œ ์ƒˆ๋กœ ๋ฐœ๊ฒฌํ•œ, ์•„์ง ๋ฏธํ•ด๊ฒฐ์ธ ๋ฌธ์ œ (TECH_DEBT_REGISTER.md DEBT-017):** VS-26(๊ตฌ VS-03) ์Šน์ธ์›Œํฌํ”Œ๋กœ์šฐ๋Š” **๋™์ผ ๊ธฐ๋Šฅ์˜ ์ค‘๋ณต ๊ตฌํ˜„์ด ๋‘ ๋ฒŒ** ์กด์žฌํ•ฉ๋‹ˆ๋‹ค โ€” `src/KArtSell.Modules.ModelOperations/ApprovalWorkflow/`(20/20 ํ…Œ์ŠคํŠธ ํ†ต๊ณผํ•˜์ง€๋งŒ ์ „ ์—”๋“œํฌ์ธํŠธ๊ฐ€ `[DontRegister]`๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์‹ค์ œ๋กœ๋Š” ํ˜ธ์ถœ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฃฝ์€ ์ฝ”๋“œ)์™€ `Features/ApprovalWorkflow/`(`Program.cs`์— ์‹ค์ œ ๋“ฑ๋ก๋˜์–ด ์‚ด์•„์žˆ์ง€๋งŒ ์ „์šฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์Œ). ์ฆ‰ **ํ…Œ์ŠคํŠธ๋œ ์ฝ”๋“œ๋Š” ์ฃฝ์–ด์žˆ๊ณ , ์‚ด์•„์žˆ๋Š” ์ฝ”๋“œ๋Š” ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.** ์•„ํ‚คํ…ํŠธ ๊ฒฐ์ •(๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ •์‹์œผ๋กœ ์„ ํƒํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์‚ญ์ œ) ์ „๊นŒ์ง€ ์ด ์Šฌ๋ผ์ด์Šค์— ํ”„๋ŸฐํŠธ์—”๋“œ๋ฅผ ๋ถ™์ด์ง€ ๋งˆ์„ธ์š”. WBS_PROGRESS_TRACKER.csv์˜ AEG-VS-26-01 ํ–‰ ์ƒํƒœ๋ฅผ `BLOCKED`๋กœ ์ •์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. - **๋˜ ๋‹ค๋ฅธ ๋ฐœ๊ฒฌ โ€” ๋ฏธ์ถ”์  ์ž‘์—…:** `src/KArtSell.Host/Features/MarketData/VS03_*.cs`, `Features/Portfolio/VS04_*.cs`/`VS05_*.cs`/`VS08_*.cs`๋Š” ์‹ค์ œ ๊ตฌํ˜„๋˜๊ณ  ํ…Œ์ŠคํŠธ๋„ ์žˆ๋Š”(commits `2bc2b1e`, `32b49a4`, `14c5e4f`, `2eee44d`) **์„ธ ๋ฒˆ์งธ** VS-03/04/05/08 ์‚ฌ์šฉ๋ก€(Market Data Ingestion Dashboard, Portfolio Rebalance, Risk Metrics, Dashboard)์ธ๋ฐ, `WBS_PROGRESS_TRACKER.csv`์— ์ „ํ˜€ ๊ธฐ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„ธ์…˜์—์„œ ์ด ์ž‘์—…์„ ๊ฒ€์ฆ(๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์žฌํ˜„, ํ”„๋ŸฐํŠธ์—”๋“œ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ)ํ•˜๊ณ  ํŠธ๋ž˜์ปค์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2. **DbUp ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ…Œ์ŠคํŠธ DB ๊ถŒํ•œ ๋ฌธ์ œ:** `kartsell` DB ์‚ฌ์šฉ์ž๊ฐ€ `kartsell_migration_test` ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์†Œ์œ ์ž๊ฐ€ ์•„๋‹ˆ์–ด์„œ `DbUpMigrationTests`(12๊ฑด)๊ฐ€ ๋กœ์ปฌ์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ DBA ์กฐ์น˜(์†Œ์œ ๊ถŒ ๋ถ€์—ฌ)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•  SQL ์ดˆ์•ˆ: `scripts/dba/grant-migration-test-db-ownership.sql`. 3. **frontend ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ ์žฌํ•ด์‹œ:** `dotnet build`๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค `pnpm build`๊ฐ€ ์žฌ์‹คํ–‰๋˜์–ด `wwwroot/assets/*` ํ•ด์‹œ ํŒŒ์ผ๋ช…์ด ๋ฐ”๋€Œ๊ณ  git์— ๋ถˆํ•„์š”ํ•œ ๋ณ€๊ฒฝ์ด ์Œ“์ด๋Š” ๊ตฌ์กฐ์  ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (์•„์ง ๋ฏธํ•ด๊ฒฐ). --- ## โœ… ์™„๋ฃŒ (Backend ๊ตฌํ˜„ + ํ…Œ์ŠคํŠธ, 2026-08-07 ๊ธฐ์ค€ ๊ฒ€์ฆ๋จ) ### VS-26 (๊ตฌ VS-03): ๋ชจ๋ธ ์Šน์ธ ์›Œํฌํ”Œ๋กœ์šฐ (Maker-Checker Governance) โ€” ๐Ÿ”ด BLOCKED - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/ApprovalWorkflow/` (์ฃฝ์€ ์ฝ”๋“œ, `[DontRegister]`) + `Features/ApprovalWorkflow/` (์‹ค์ œ ๋“ฑ๋ก๋จ, ํ…Œ์ŠคํŠธ ์—†์Œ) - **ํ…Œ์ŠคํŠธ:** 20/20 PASS๋Š” ์ฃฝ์€ ์ฝ”๋“œ ์ชฝ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค โ€” ์‹ค์ œ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๊ตฌํ˜„์€ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ TECH_DEBT_REGISTER.md DEBT-017 ์ฐธ์กฐ. - **๋ฏธ์™„๋ฃŒ:** ํ”„๋ŸฐํŠธ์—”๋“œ UI ์—†์Œ. DEBT-017 ํ•ด๊ฒฐ ์ „๊นŒ์ง€ ์ฐฉ์ˆ˜ ๊ธˆ์ง€. - **์ด์ „ ์„ธ์…˜์—์„œ ๋ฐœ๊ฒฌ/์ˆ˜์ •ํ•œ ๊ฒฐํ•จ (์—ฌ์ „ํžˆ ์œ ํšจ, ์ฃฝ์€ ์ฝ”๋“œ ์ชฝ ํ•œ์ •):** `ApprovalSql`์ด Dapper๋กœ `DateOnly` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜์ง€ ๋ชปํ•ด ์Šน์ธ ์ œ์•ˆ์„œ ์ƒ์„ฑ์ด ์‹ค DB ํ™˜๊ฒฝ์—์„œ 100% ์‹คํŒจํ•˜๋˜ ๋ฒ„๊ทธ โ€” ๋ณ‘ํ•ฉ ์ดํ›„ ์‹ค DB๋กœ ํ•œ ๋ฒˆ๋„ ๊ฒ€์ฆ๋˜์ง€ ์•Š์•„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š๊ณ  ์žˆ์—ˆ์Œ ### VS-27 (๊ตฌ VS-04): ๋ถˆ๋ณ€ ๊ฐ์‚ฌ ์ถ”์  (Audit Trail / GDPR) - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/Compliance/` - **ํ…Œ์ŠคํŠธ:** 5/5 PASS (๊ฒฉ๋ฆฌ ์‹คํ–‰ ๊ธฐ์ค€) - **๋ฏธ์™„๋ฃŒ:** ํ”„๋ŸฐํŠธ์—”๋“œ UI ์—†์Œ - **์ด๋ฒˆ ์„ธ์…˜์—์„œ ๋ฐœ๊ฒฌ/์ˆ˜์ •ํ•œ ๊ฒฐํ•จ:** `ip_address`/`kis_response`๋ฅ˜ ์ปฌ๋Ÿผ์˜ Dapper ํƒ€์ž… ์บ์ŠคํŒ… ์‹คํŒจ, `GdprRetention.RetentionEndsAt`์ด `DATE` ์ปฌ๋Ÿผ์ธ๋ฐ `DateTime`์œผ๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋˜ ๋ฌธ์ œ, ๊ทธ๋ฆฌ๊ณ  `KArtSell.BuildingBlocks`์˜ `[ModuleInitializer]`๊ฐ€ ์šฐ์—ฐํžˆ ๋กœ๋“œ๋˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  snake_case ์ปฌ๋Ÿผ์ด null๋กœ ๋งคํ•‘๋˜๋˜ ๋ ˆ์ด์Šค ์ปจ๋””์…˜ ### VS-10: ๋งค๋„ ๊ฒฐ์ • ์—”์ง„ (Sell Decision Engine) - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/SellDecision/`, `frontend/src/features/sell-decision/` - **ํ…Œ์ŠคํŠธ:** 32/32 PASS (๊ฒฉ๋ฆฌ ์‹คํ–‰ ๊ธฐ์ค€) - **์™„๋ฃŒ๋„:** Backend + Frontend ๋ชจ๋‘ ์กด์žฌ (VS-26/27/28/29 ์ค‘ ์œ ์ผ) - **โš ๏ธ ๋ฏธ๊ฒ€์ฆ ์‚ฌํ•ญ:** ์ฝ”๋“œ/ํ…Œ์ŠคํŠธ ์™„๋ฃŒ โ‰  PBO/DSR ํ”„๋กœ๋•์…˜ ๊ฒ€์ฆ ์™„๋ฃŒ. ์‹ค ์‹œ์žฅ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ฒ€์ฆ์€ Phase 1 Shadow Run ์™„๋ฃŒ ํ›„์—๋งŒ ๊ฐ€๋Šฅ ### VS-28 (๊ตฌ VS-12): ๊ฑฐ๋ž˜ ์‹คํ–‰ ์‹œ์Šคํ…œ (Trade Execution, KIS ์—ฐ๋™) - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/TradeExecution/` - **ํ…Œ์ŠคํŠธ:** 13/13 PASS (๊ฒฉ๋ฆฌ ์‹คํ–‰ ๊ธฐ์ค€) - **๋ฏธ์™„๋ฃŒ:** ํ”„๋ŸฐํŠธ์—”๋“œ UI ์—†์Œ - **์ด๋ฒˆ ์„ธ์…˜์—์„œ ๋ฐœ๊ฒฌ/์ˆ˜์ •ํ•œ ๊ฒฐํ•จ (์‹ฌ๊ฐ):** `UpdateTradeStatusAsync`๊ฐ€ `status`/`kis_response`/`error_message`๋งŒ ์ €์žฅํ•˜๊ณ  `kis_order_id`, `executed_quantity`, `unit_price`, `commission`, `net_proceeds`, ์ฒด๊ฒฐ/์ •์‚ฐ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ๋ณ‘ํ•ฉ ์ดํ›„ ๋งค๋ฒˆ ์กฐ์šฉํžˆ ์œ ์‹ค์‹œํ‚ค๋˜ ๋ฒ„๊ทธ. ๊ฑฐ๋ž˜ ์ฒด๊ฒฐยท์ •์‚ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ๋Š” ์ €์žฅ๋˜๊ณ  ์žˆ์ง€ ์•Š์•˜์Œ ### VS-29 (๊ตฌ VS-14): ํฌํŠธํด๋ฆฌ์˜ค ๋Œ€์‚ฌ (Portfolio Reconciliation) - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/PortfolioReconciliation/` - **ํ…Œ์ŠคํŠธ:** 18/18 PASS (๊ฒฉ๋ฆฌ ์‹คํ–‰ ๊ธฐ์ค€) - **๋ฏธ์™„๋ฃŒ:** ํ”„๋ŸฐํŠธ์—”๋“œ UI ์—†์Œ - **์ฐธ๊ณ :** ์ด ์Šฌ๋ผ์ด์Šค๊ฐ€ ํฌํ•จ๋œ PR(#28)์ด ๋ณ‘ํ•ฉ ๋‹น์ผ `model_operations.models` ํ…Œ์ด๋ธ” ๋ˆ„๋ฝ์œผ๋กœ ์‹ ๊ทœ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ „๋ถ€ ๊นจ๋œจ๋ฆฌ๋Š” ์ฑ„๋กœ ๋ณ‘ํ•ฉ๋˜์—ˆ๊ณ , ๊ฐ™์€ ๋‚  ๋ณ„๋„ PR(#29)๋กœ ๊ธด๊ธ‰ ์ˆ˜์ •๋จ โ€” ๋ณ‘ํ•ฉ ์ „ fresh-install ๋ฆฌํ—ˆ์„ค์ด ์‹ค์ œ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์Œ์„ ์‹œ์‚ฌ ### AEG-X-009: ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค ํ†ตํ•ฉ (KRX/OpenDart/KIS) - **์œ„์น˜:** `src/KArtSell.Modules.ModelOperations/Infrastructure/`, market_data ์Šคํ‚ค๋งˆ - **์™„๋ฃŒ:** ์†Œ์Šค ์นดํƒˆ๋กœ๊ทธ/๊ฑฐ๋ฒ„๋„Œ์Šค ์ •์ฑ…(Workstream D/E/F) + ์‹ค API ์—ฐ๋™(Workstream G: KRX OpenAPI/OpenDart/KIS ์„œ๋น„์Šค, ์ผ์ผ ์Šค์ผ€์ค„๋ง, ์—๋Ÿฌ ๋ถ„๋ฅ˜, LKG ํด๋ฐฑ) ### ๊ทธ ์™ธ ์™„๋ฃŒ ํ•ญ๋ชฉ (VS-00 ํ”Œ๋žซํผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ, VS-01/VS-02 ์Šฌ๋ผ์ด์Šค ์ŠคํŽ™, ๋ณด์•ˆ/Outbox/OpenAPI ๊ฒŒ์ดํŠธ ๋“ฑ) ์ƒ์„ธ๋Š” `docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv`์˜ AEG-X-001~008, AEG-VS-00-01~07, AEG-VS-01-01, AEG-VS-02-01 ํ–‰ ์ฐธ์กฐ. --- ## ๐Ÿ”ด ์‹ค์ œ๋กœ ๋ธ”๋กœํ‚น ์ค‘์ธ ๊ฒƒ (Phase 1 Shadow Run) ### PHASE-1-SHADOW-RUN: 252+ ๊ฑฐ๋ž˜์ผ ๊ฒ€์ฆ (Gate 5a) - **์ƒํƒœ:** `BLOCKED` โ€” **์‹คํ–‰ ์ค‘์ด ์•„๋‹˜** - **๊ทผ๊ฑฐ:** `docs/CURRENT/PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md`์— ์ด๋ฏธ ์ •์ •๋˜์–ด ์žˆ์Œ โ€” ๊ณผ๊ฑฐ ์„ธ์…˜๋“ค์˜ "Job 893/976 RUNNING, ~20+์‹œ๊ฐ„ ๊ฒฝ๊ณผ" ๋“ฑ์˜ ๊ธฐ๋ก์€ ์‹ค์ œ๋กœ๋Š” `POST /api/shadow-runs`๊ฐ€ `PostgresException 23514`(check_status ์ œ์•ฝ์กฐ๊ฑด ์œ„๋ฐ˜)๋กœ 500 ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์‹คํŒจํ•œ ๊ฒƒ์ด์—ˆ๊ณ , Job์ด ์‹ค์ œ๋กœ ์‹œ์ž‘๋œ ์ ์ด ์—†์Œ - **์ฐจ๋‹จ ์‚ฌ์œ :** ์„œ๋ฒ„ ์ธก `dataset_manifest`, `model_version_registry`, `evidence_snapshot`, `release_evidence_bundle`์— ์Šน์ธ/๋™๊ฒฐ๋œ ํ–‰์ด ์—†์–ด RunId/JobId๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ. ์Šน์ธ๋œ VersionSet ๋Œ€๊ธฐ ์ค‘ - **์žฌ๊ฐœ ์ ˆ์ฐจ:** `PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md`์˜ 5๋‹จ๊ณ„ ์ฐธ์กฐ (โ‘  check_status ์ œ์•ฝ์กฐ๊ฑด ์ •ํ•ฉ โ‘ก ์Šน์ธ๋œ ํ…Œ์ŠคํŠธ DB์—์„œ fresh/upgrade/์žฌ์‹คํ–‰/์‹คํŒจ๋ณต๊ตฌ ๋ฆฌํ—ˆ์„ค โ‘ข ์ฆ๊ฑฐ ๋ณด์กด โ‘ฃ ๋ช…์‹œ์  ์Šน์ธ ํš๋“ โ‘ค ์‹ ๊ทœ Run ID/Job ID๋กœ ์žฌํ์ž‰) - **์ด ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ ค๋ฉด:** ์‹ค์ œ RunId/JobId๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฌธ์„œ์— "RUNNING"์ด๋ผ๊ณ  ๋‹ค์‹œ ์ ์œผ๋ ค๋ฉด ๊ทธ ๊ทผ๊ฑฐ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ช…์‹œํ•ด์•ผ ํ•จ (๊ณผ๊ฑฐ์˜ ํ—ˆ์œ„ ๊ธฐ๋ก์„ ๋ฐ˜๋ณตํ•˜์ง€ ๋ง ๊ฒƒ) ์ด ๊ฒŒ์ดํŠธ๋Š” **๋‹ฌ๋ ฅ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ์ž‘์—…**์ž…๋‹ˆ๋‹ค (252+ ๊ฑฐ๋ž˜์ผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ์ปดํ“จํŒ…์œผ๋กœ ์•ž๋‹น๊ธธ ์ˆ˜ ์—†์Œ). "์ตœ์  ์ „๋žต์ ์œผ๋กœ ๋นจ๋ฆฌ ๋๋‚ด๊ธฐ"์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์—†๊ณ , ๋‚จ์€ ์œ ์ผํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅ ์กฐ์น˜๋Š” ์œ„ ์žฌ๊ฐœ ์ ˆ์ฐจ๋ฅผ ๋ฐŸ์•„ ์‹ค์ œ๋กœ ํ์ž‰ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. --- ## ๐Ÿ“š ๊ด€๋ จ ๋ฌธ์„œ - **WBS ํŠธ๋ž˜์ปค (ํ•ญ๋ชฉ๋ณ„ ์ƒ์„ธ ์ƒํƒœ):** `docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv` - **WBS ์› ๊ณ„ํš (๋ฒˆํ˜ธ ์ถฉ๋Œ ์žˆ์Œ, ์ฃผ์˜):** `docs/CURRENT/CATALOGS/WBS_MASTER.csv` - **Phase 1 ์ƒํƒœ ์ •์ • ๊ธฐ๋ก:** `docs/CURRENT/PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md` - **Architecture:** `docs/03_ARCHITECTURE_BE_FE.md` - **Code Guidelines:** `CLAUDE.md` - **Tech Debt:** `TECH_DEBT_REGISTER.md` --- ## ๐Ÿ“ ์ด ๋ฌธ์„œ๋ฅผ ๋‹ค์‹œ ๊ฐฑ์‹ ํ•  ๋•Œ 1. **git log๋ฅผ ๋จผ์ € ํ™•์ธํ•˜์„ธ์š”.** ์ด ๋ฌธ์„œ์™€ `main`์ด ์–ผ๋งˆ๋‚˜ ๋ฒŒ์–ด์กŒ๋Š”์ง€ (`git log --oneline <์ด-๋ฌธ์„œ-๋งˆ์ง€๋ง‰-์ปค๋ฐ‹>..main`) ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์„œ๋งŒ ์ฝ๊ณ  "ํ˜„์žฌ ์ƒํƒœ"๋ฅผ ํŒ๋‹จํ•˜์ง€ ๋งˆ์„ธ์š”. 2. **ํ…Œ์ŠคํŠธ๋Š” ๊ฒฉ๋ฆฌ ์‹คํ–‰์œผ๋กœ ํ™•์ธํ•˜์„ธ์š”.** ์ „์ฒด ์Šค์œ„ํŠธ ์‹คํ–‰์—์„œ ํ†ต๊ณผํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์ด ์•ˆ์ •์ ์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค (์ด๋ฒˆ ์„ธ์…˜์—์„œ `AuditSql`์ด ์ •ํ™•ํžˆ ์ด ์ด์œ ๋กœ ๋†“์น  ๋ป”ํ–ˆ์Šต๋‹ˆ๋‹ค โ€” `--filter`๋กœ ๋‹จ์ผ ํด๋ž˜์Šค๋งŒ ๋Œ๋ ค์„œ ์žฌํ™•์ธํ•˜์„ธ์š”). 3. **"์™„๋ฃŒ"๋ผ๊ณ  ์“ฐ๊ธฐ ์ „์— ์‹ค์ œ ํŒŒ์ผ ๊ฒฝ๋กœ์™€ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜์„ธ์š”.** ์ด ์ €์žฅ์†Œ์—๋Š” ๊ฒ€์ฆ ์—†์ด "COMPLETE"/"100%"๋ผ๊ณ  ์„ ์–ธํ•œ ๋ฌธ์„œ๊ฐ€ ๋งค์šฐ ๋งŽ์Šต๋‹ˆ๋‹ค (`EXECUTION_COMPLETE_FINAL.md`, `WORK_COMPLETION_CERTIFICATE.md` ๋“ฑ). ๊ทธ ํŒจํ„ด์„ ๋ฐ˜๋ณตํ•˜์ง€ ๋งˆ์„ธ์š”. 4. **Phase 1 Shadow Run์€ ๋‹ฌ๋ ฅ ์‹œ๊ฐ„ ๊ฒŒ์ดํŠธ์ž…๋‹ˆ๋‹ค.** ์‹ค์ œ๋กœ ํ์ž‰๋˜์–ด ์ง„ํ–‰ ์ค‘์ด๋ผ๋Š” ๊ตฌ์ฒด์  ์ฆ๊ฑฐ(RunId/JobId) ์—†์ด "์ง„ํ–‰ ์ค‘"์ด๋ผ๊ณ  ์“ฐ์ง€ ๋งˆ์„ธ์š”.