AI êž°ë° ì ë·ì ì±ì ë¶ì íµí© ííž ížë ìŽë© ìì€í
| 구ì±ìì | êž°ì |
|---|---|
| Backend | Python 3.11 + FastAPI 0.135.3 |
| Database | PostgreSQL 16 + TimescaleDB 2.14 |
| Document DB | MongoDB 7.0 |
| Cache/Queue | Redis 7.2 |
| AI/LLM | Anthropic Claude API (Haiku 4.5 + Sonnet 4) |
| Broker | íêµí¬ììŠê¶ OpenAPI |
| Container | Docker + Docker Compose |
cp .env.example .env
# .env íìŒì ìŽìŽ ì€ì ê°ì ì
ë ¥íìžìììž í겜 구ì±: docs/operations/docker-setup-guide.md ì°žì¡°
# ê°ë° í겜 (ìì€ ë§ìŽíž + ìë 늬ë¡ë)
docker compose up -d
# íë¡ëì
í겜 (override ì ìž)
docker compose -f docker-compose.yml up -dcurl http://localhost:8000/api/system/healthì»€ë° ì ê²ìŠ(ruff check, black --check)ì ë¡ì»¬ìì ëëŠ¬ë €ë©Ž Docker ìžë¶ì
Python ê°ìí겜ì lint ë구륌 ì€ì¹íë€. ë²ì pin ì backend/requirements-dev.txt
ëšìŒ ì§ì€ìì²(SSOT)ìì êŽëЬëë©° CI ì ìëìŒë¡ ìŒì¹íë€.
# lint ëêµ¬ë§ íìí ê²œì° (editor LSP ë±)
pip install -r backend/requirements-dev.txt
# ë°íì + lint ë구 몚ë ì€ì¹ (í
ì€ížê¹ì§ ë¡ì»¬ìì ëëŠ¬ë €ë©Ž)
pip install -r backend/requirements.txt -r backend/requirements-dev.txtaqts/
âââ docker-compose.yml # ìë¹ì€ ì€ìŒì€ížë ìŽì
(PostgreSQL, MongoDB, Redis, Backend)
âââ docker-compose.override.yml # ê°ë° í겜 ì€ë²ëŒìŽë (ìë ë³í©)
âââ .env.example # í겜ë³ì í
í늿
âââ README.md
âââ docs/
â âââ PRD.md # ì í ì구ì¬í 묞ì
â âââ FEATURE_STATUS.md # êž°ë¥ êµ¬í íí© (Single Source of Truth)
â âââ backtest/
â â âââ oos-analysis-2026-04-06.md # OOS ë¶ì 늬í¬íž (17ê° ì¹ì
)
â âââ operations/ # ìŽì 묞ì (OPS-001 ~ OPS-008)
â âââ trading-halt-policy.md # OPS-001: 맀맀 ì€ëš/ì¬ê° ì ì±
â âââ incident-runbook.md # OPS-002: ì¥ì ëì ë°ë¶
â âââ model-change-policy.md # OPS-003: ëªšëž ë³ê²œ ì ì±
â âââ release-gates.md # OPS-004: ëŠŽëŠ¬ì€ ì¹ìž ê²ìŽíž (Gate A~E)
â âââ rollback-plan.md # OPS-005: ë°°í¬ ë¡€ë°± ê³í
â âââ customer-notice.md # OPS-006: ê³ ê° ê³µì§/멎ì±
â âââ docker-setup-guide.md # OPS-007: Docker í겜 ìží
ê°ìŽë
â âââ deployment-roadmap.md # OPS-008: ë°°í¬ ë° ê²ìŠ ë¡ëë§µ
âââ backend/
â âââ Dockerfile # ë©í° ì€í
ìŽì§ ë¹ë (Python 3.11.14+)
â âââ requirements.txt # Python ë°íì ì졎ì±
â âââ requirements-dev.txt # ë¡ì»¬/CI ì ì© lint·format ë구 (ruff, black)
â âââ requirements-security.txt # ë¡ì»¬/CI ì ì© ë³Žì ì€ìºë (pip-audit, OPS-025)
â âââ pyproject.toml # pytest/ruff/black ì€ì
â âââ main.py # FastAPI ìížëЬí¬ìžíž (Lifespan, GracefulShutdown)
â âââ config/
â â âââ settings.py # í겜ë³ì êž°ë° ì€ì (pydantic-settings)
â â âââ constants.py # ìì·Enum ì ì (20+ Enum, ë§€í í
ìŽëž)
â â âââ logging.py # Loguru ë¡ê¹
ì€ì (dev/production ë¶ëЬ)
â â âââ operational_thresholds.yaml # ì ì€í
ìŽì§ ìê³ê° ì€ìêŽëЬ
â â âââ ensemble_config.yaml # ììëž íìŽíŒíëŒë¯ží° ì€ì (YAML êŽëЬ)
â â âââ ensemble_config_loader.py # YAML ì€ì ë¡ë·ê²ìŠÂ·Hyperopt ì°ë
â âââ contracts/ # ë°ìŽí° ê³ìœ (9ê° ëë©ìž)
â â âââ converters.py # ê³ìœ â ìì§ ë³íêž°
â â âââ price_data.py # ê°ê²© ë°ìŽí° ê³ìœ
â â âââ financial_data.py # ì¬ë¬Ž ë°ìŽí° ê³ìœ (look-ahead ë°©ì§)
â â âââ news_data.py # ëŽì€ ë°ìŽí° ê³ìœ
â â âââ feature_vector.py # íŒì² ë²¡í° ê³ìœ
â â âââ signal.py # ìê·žë ê³ìœ
â â âââ portfolio.py # í¬ížíŽëŠ¬ì€ ê³ìœ (weight í© â 1.0)
â â âââ order.py # 죌묞 ê³ìœ
â â âââ execution.py # 첎결 ê³ìœ
â â âââ risk_check.py # 늬ì€í¬ ì²Ží¬ ê³ìœ
â âââ core/
â â âââ data_collector/
â â â âââ kis_client.py # íí¬ API ëíŒ (LIVE/DEMO/BACKTEST)
â â â âââ market_data.py # ììž ë°ìŽí° ìì§Â·ë¬Žê²°ì± ê²ìŠ
â â â âââ news_collector.py # RSS ëŽì€ + DART ê³µì ìì§
â â â âââ economic_collector.py # FRED·ECOS 겜ì ì§í ìì§
â â â âââ financial_collector.py # DART ì¬ë¬Žì í (íìŽëžëЬë)
â â â âââ social_collector.py # Reddit SNS ìì§
â â â âââ corp_action.py # êž°ì
ìŽë²€íž ì²ëЬ
â â âââ quant_engine/
â â â âââ factor_analyzer.py # 5í©í° ë¶ì (Value·Momentum·Quality·LowVol·Size)
â â â âââ signal_generator.py # êž°ì ì ìê·žë ìì±
â â â âââ vectorized_signals.py # 벡í°í ìê·žë (MR/TF/RP, ê³ ì ì°ì°)
â â âââ ai_analyzer/
â â â âââ sentiment.py # Mode A: Claude Haiku ê°ì± ë¶ì
â â â âââ opinion.py # Mode B: Claude Sonnet í¬ì ì견 (STOCK·SECTOR·MACRO)
â â â âââ prompt_manager.py # í롬ííž DB ë²ì êŽëЬ
â â â âââ cost_analyzer.py # AI ì¬ì© ë¹ì© ë¶ì
â â â âââ drift_monitor.py # ëªšëž ë늬ííž ëªšëí°ë§
â â â âââ promotion_checklist.py # LLM ì¹ê²© 첎í¬ëЬì€íž
â â â âââ reproducibility.py # ì¬íì± ê²ìŠ
â â âââ strategy_ensemble/
â â â âââ engine.py # ê°ì€ ììëž + Sharpe êž°ë° ì¬ë³Žì
â â â âââ regime.py # ë ì§ ê°ì§ (ìì¹/íëœ/í¡ë³Ž/ê³ ë³ë)
â â â âââ dynamic_ensemble.py # ëì ë ì§ êž°ë° ììëž ìë¹ì€ (OOS ê²ìŠ)
â â â âââ runner.py # ììëž ì€í ì€ìŒì€ížë ìŽí°
â â âââ backtest_engine/
â â â âââ engine.py # ë°±í
ì€íž ìì§ + ì ëµ ë¹êµ + ë²€ì¹ë§í¬ ì§í
â â â âââ metrics_calculator.py # ì±ê³Œ ì§í ì°ì¶
â â â âââ benchmark.py # ë²€ì¹ë§í¬ ë¹êµ (Alpha/Beta/IR/TE)
â â â âââ fill_model.py # 첎결 몚ëž
â â â âââ impact_model.py # ìì¥ ì¶©ê²© 몚ëž
â â â âââ bias_checker.py # ë°±í
ì€íž íží¥ ê²ì¬
â â â âââ significance.py # íµê³ì ì ìì± ê²ì
â â â âââ regime_analyzer.py # ë ì§ë³ ì±ê³Œ ë¶ì
â â â âââ ablation.py # ì ëµ ì ê±° íšê³Œ ë¶ì
â â â âââ pass_fail.py # í©ê²©/ë¶í©ê²© íì
â â âââ pipeline.py # í¬ì ìì¬ê²°ì íµí© íìŽíëŒìž
â â âââ state_machine.py # 10-state íìŽíëŒìž ìí ëšžì
â â âââ gate_registry.py # Gate ëì ë±ë¡/ì€í
â â âââ fallback_handler.py # Gate BLOCK ì íŽë°± ì²ëЬ
â â âââ gates/ # 9ê° íìŽíëŒìž ê²ìŽíž
â â â âââ base.py # GateResult ì€í€ë§
â â â âââ data_gate.py # ìì§ ë°ìŽí° íì§ ê²ìŠ
â â â âââ factor_gate.py # í©í° ë²¡í° ìì± íì§
â â â âââ signal_gate.py # ìê·žë ì íšì± ê²ìŠ
â â â âââ ensemble_gate.py # ììëž ê²°ê³Œ ê²ìŠ
â â â âââ portfolio_gate.py # í¬ížíŽëŠ¬ì€ êµ¬ì± ê²ìŠ
â â â âââ trading_guard_gate.py # í¬ì§ì
늬ì€í¬ ì¬ì ê²ìŠ
â â â âââ recon_gate.py # ê±°ë-í¬ì§ì
ëì¬ ê²ìŠ
â â â âââ execution_gate.py # 첎결 ì±ê³µ/ì€íš ê²ìŠ
â â â âââ fill_gate.py # 죌묞 ìì ì± ê²ìŠ
â â âââ portfolio_manager/
â â â âââ profile.py # í¬ìì íë¡í êŽëЬ
â â â âââ construction.py # í¬ížíŽëŠ¬ì€ êµ¬ì± (MVO·Risk Parity·Black-Litterman)
â â â âââ rebalancing.py # 늬밞ë°ì± ìì§ (ì Ʞ·ꞎêžÂ·ë°©ìŽ)
â â â âââ universe.py # í¬ì ì ëë²ì€ êŽëЬ
â â â âââ exchange_rate.py # íìš êŽëЬ (KIS+FRED, Redis ìºì±)
â â âââ order_executor/
â â â âââ executor.py # 죌묞 ì§í (ìì¥ê°Â·ì§ì ê°Â·TWAP·VWAP)
â â â âââ slippage.py # ì¬ëЬíŒì§ 몚ëž
â â â âââ time_rules.py # ìê°ëë³ ê±°ë ê·ì¹
â â âââ hyperopt/ # Optuna íìŽíŒíëŒë¯ží° ìë ìµì í
â â â âââ search_space.py # 20ê° íëŒë¯ží° íì ê³µê° (3귞룹)
â â â âââ objective.py # Walk-Forward OOS 목ì íšì
â â â âââ optimizer.py # TPE ë² ìŽì§ì ìµì í ì€ìŒì€ížë ìŽí°
â â â âââ models.py # TrialResult·OptimizationResult
â â âââ rl/ # ê°ííìµ ììŽì íž
â â â âââ environment.py # Gymnasium ížë ìŽë© í겜 (11ì°šì êŽì°°)
â â â âââ trainer.py # PPO/SAC íìµ íìŽíëŒìž
â â â âââ config.py # RL ì€ì (25ê° íëŒë¯ží°)
â â â âââ data_loader.py # RL ë°ìŽí° ë¡ë (DB OHLCV â íìµ ë°ìŽí°)
â â â âââ multi_asset_env.py # ë©í°ìì
ížë ìŽë© í겜
â â â âââ hyperopt_rl.py # RL íìŽíŒíëŒë¯ží° ìµì í (Optuna)
â â â âââ model_registry.py # ëªšëž ë ì§ì€ížëЬ (ë²ì êŽëЬ, ì±íŒìž ì ì )
â â â âââ inference.py # RL ì¶ë¡ ìë¹ì€ (ë°°ì¹ ì¶ë¡ , ììëž ëžë ë©)
â â âââ data_collector/
â â â âââ daily_collector.py # ìŒìŒ OHLCV ìë ìì§ (KIS API)
â â â âââ kis_websocket.py # KIS ì€ìê° WebSocket (첎결ê°+ížê°)
â â â âââ realtime_manager.py # ì€ìê° ììž êŽëЬ (ìžë©ëªšëЬ ìºì)
â â âââ scheduler_handlers.py # ì€ìŒì€ë¬ ìŽë²€íž ížë€ë¬ (5ê° ìê°ë)
â â âââ oos/ # Out-of-Sample ê²ìŠ
â â â âââ models.py # OOS ë°ìŽí° 몚ëž
â â â âââ walk_forward.py # Walk-Forward ìì§
â â â âââ gate_evaluator.py # 3ëšê³ Gate íê° (A/B/C)
â â â âââ regime_mapping.py # ë ì§ ë§€í ë ìŽìŽ
â â â âââ job_manager.py # OOS ìì
êŽëЬì
â â âââ param_sensitivity/ # íëŒë¯ží° 믌ê°ë ë¶ì
â â â âââ models.py # 믌ê°ë ë¶ì ë°ìŽí° 몚ëž
â â â âââ sweep_generator.py # Grid/Random/OAT ì€ì ìì±êž°
â â â âââ analyzer.py # íì±ì¹/í ë€ìŽë/ìì êµ¬ê° ë¶ì
â â â âââ engine.py # 믌ê°ë ë¶ì ìì§
â â âââ compliance/ # ê·ì ì€ì
â â â âââ audit_integrity.py # ê°ì¬ ë¡ê·ž ë¬Žê²°ì± (SHA-256 íŽì 첎ìž)
â â â âââ retention_policy.py # ê±°ë êž°ë¡ ë³Žì¡Ž ì ì±
(5ë
/10ë
)
â â â âââ pii_masking.py # PII ë§ì€í¹ (7ì¢
íšíŽ)
â â â âââ compliance_report.py # ê·ì ì€ì 늬í¬íž ìì±
â â â âââ secret_manager.py # ë¹ë°í€ êŽëЬ (ë±ë¡/ë¡í
ìŽì
/íêž°)
â â âââ audit/ # ê°ì¬ ì¶ì
â â â âââ collectors.py # ê°ì¬ ë°ìŽí° ìì§
â â â âââ decision_record.py # ìì¬ê²°ì êž°ë¡
â â â âââ visualization.py # ê°ì¬ ì¶ì ìê°í (íìëŒìž/íížë§µ)
â â âââ monitoring/ # 몚ëí°ë§
â â â âââ dashboard.py # 몚ëí°ë§ ëì볎ë (ìë¹ì€ ìí/ë©ížëŠ/ì늌)
â â âââ notification/
â â â âââ alert_manager.py # ì늌 ìì±Â·êŽëŠ¬Â·ìŽë ¥ (í
í늿 êž°ë°)
â â â âââ telegram_notifier.py # í
ë ê·žëš ëŽ ì늌 ë°ì¡
â â â âââ fallback_notifier.py # ë°±ì
ì늌 ì±ë (File/Console íŽë°±)
â â â âââ telegram_adapter.py # Telegram ì±ë ìŽëí°
â â âââ trading_guard.py # ížë ìŽë© ìì ì¥ì¹ (7ê³ìžµ 볎íž)
â â âââ health_checker.py # ìì€í
걎ì ì± ê²ì¬ (5í목)
â â âââ mode_manager.py # 몚ë ì í êŽëЬ (BACKTESTâDEMOâLIVE)
â â âââ demo_verifier.py # DEMO 몚ë ì€ì ê°ë ê²ìŠ (11í목)
â â âââ trading_scheduler.py # ìëí ì€ìŒì€ë¬ (KRX ì¥ ìê° êž°ë°)
â â âââ daily_reporter.py # ìŒìŒ 늬í¬íž ìë ìì±Â·ë°ì¡
â â âââ periodic_reporter.py # 죌ê°/ìê° ëŠ¬í¬íž (MDD/Sharpe ë¶ì)
â â âââ emergency_monitor.py # ë¹ì 늬밞ë°ì± 5ë¶ ëªšëí°
â â âââ graceful_shutdown.py # ê·žë ìŽì€í ì
§ë€ìŽ ë§€ëì
â â âââ circuit_breaker.py # ìžë¶ API ì¥ì ìë ì°šëš (4 ìë¹ì€)
â â âââ market_calendar.py # ë§ìŒ ìºëаë (KRX + NYSE, DST)
â â âââ weight_optimizer.py # ììëž ê°ì€ì¹ ìë ìµì í
â â âââ capital_budget.py # ì볞 ë°°ë¶
â â âââ capital_protection.py # ì볞 볎íž
â â âââ reconciliation.py # ê±°ë-í¬ì§ì
ëì¬
â âââ api/
â â âââ routes/
â â â âââ auth.py # ìžìŠ (ë¡ê·žìžÂ·í í° ê°±ì )
â â â âââ portfolio.py # í¬ížíŽëŠ¬ì€ (ììœÂ·ë³Žì ·ì±ê³Œ)
â â â âââ orders.py # 죌묞 (ìì±Â·ë°°ì¹Â·ì¡°í·췚ì)
â â â âââ profile.py # í¬ìì íë¡í (ì¡°í·ìì )
â â â âââ market.py # ìì¥ (íìšÂ·ì§ì·겜ì ì§í·ì ëë²ì€)
â â â âââ alerts.py # ì늌 (ìŽë ¥Â·íµê³Â·íìž ì²ëЬ)
â â â âââ system.py # ìì€í
(ì€ì ·백í
ì€ížÂ·ëŠ¬ë°žë°ì±Â·íìŽíëŒìž)
â â â âââ audit.py # ê°ì¬ ì¶ì API
â â â âââ oos.py # OOS ê²ìŠ API (4 ìëí¬ìžíž)
â â â âââ param_sensitivity.py # 믌ê°ë ë¶ì API (3 ìëí¬ìžíž)
â â â âââ ensemble.py # ëì ììëž API (4 ìëí¬ìžíž)
â â â âââ realtime.py # ì€ìê° ììž API (ììžÂ·ì€ë
ì·Â·ìí)
â â âââ schemas/
â â â âââ common.py # ê³µíµ ìëµ (APIResponse·PaginatedResponse)
â â â âââ auth.py # ìžìŠ ì€í€ë§
â â â âââ portfolio.py # í¬ížíŽëŠ¬ì€ ì€í€ë§
â â â âââ orders.py # 죌묞 ì€í€ë§
â â â âââ profile.py # íë¡í ì€í€ë§
â â â âââ alerts.py # ì늌 ì€í€ë§
â â â âââ ensemble.py # ììëž ìëµ ì€í€ë§
â â âââ middleware/
â â âââ auth.py # JWT ìžìŠ (HS256, Bearer Token)
â â âââ request_logger.py # ìì² ë¡ê¹
믞ë€ìšìŽ (X-Request-ID)
â â âââ rate_limiter.py # Rate Limiting (slowapi)
â âââ db/
â â âââ database.py # DB ì°ê²° êŽëЬ (PostgreSQL·MongoDB·Redis)
â â âââ models/ # SQLAlchemy 몚ëž
â â âââ repositories/
â â âââ audit_log.py # ê°ì¬ ë¡ê·ž (AuditLogger)
â âââ tests/ # 4,159 tests (ì 첎 íµê³Œ)
â âââ conftest.py # ê³µíµ Fixture + í겜ë³ì ì€ì
â âââ test_*.py # 75+ í
ì€íž íìŒ
âââ frontend/
â âââ index.html # SPA ëì볎ë (Chart.js)
âââ scripts/
âââ init_db.sql # DB ìŽêž°í ì€í¬ëŠœíž (17 í
ìŽëž, 6 hypertable)
âââ check_doc_sync.py # 묞ì-ìœë-í
ì€íž ëêž°í ê²ìŠ (CIì©)
âââ run_backtest.py # ë°±í
ì€íž ì€í CLI
âââ run_scheduler.py # ì€ìŒì€ë¬ CLI (ì¥ ì /ìì/ì€ê°/ë§ê°/í)
âââ run_hyperopt.py # Optuna íìŽíŒíëŒë¯ží° ìµì í CLI
âââ run_rl_training.py # RL ììŽì íž íìµ/íê° CLI (PPO/SAC)
| Phase | ëŽì© | ìí |
|---|---|---|
| Phase 1 | ìžíëŒ êµ¬ì¶, íí¬ API ì°ë, ë°ìŽí° ìì§ íìŽíëŒìž | â ìë£ |
| Phase 2 | ííž ì ëµ ìì§ (5í©í° ë¶ì, ìê·žë ìì±, ë°±í ì€íž) | â ìë£ |
| Phase 3 | AI ì ì±ì ë¶ì, ì ëµ ììëž, ë°ìŽí° ìì€ íì¥ | â ìë£ |
| Phase 4 | í¬ížíŽëŠ¬ì€ êŽëЬ, 늬밞ë°ì±, ìë맀맀 | â ìë£ |
| Phase 5 | ì¹ ëì볎ë, API, ì늌 ìì€í | â ìë£ |
| Phase 6 | íµí© í ì€íž, 몚ìí¬ì ê²ìŠ, ì€í¬ì ì í | â ìë£ |
| Phase 7 | DEMO 몚ë ì€ì ê°ë, ìëí ì€ìŒì€ë¬, ìŒìŒ 늬í¬íž | â ìë£ |
| Phase 8 | GAP 볎ì: ë¹ì 늬밞ë°ì± 몚ëí°, ëì ìì , íµí© ì°ë | â ìë£ |
| Phase 9 | í¬ížíŽëŠ¬ì€ ìµì í ìì±: Black-Litterman, ì€ì ê³µë¶ì° MVO, ERC Risk Parity | â ìë£ |
| Phase 10 | TWAP/VWAP ë¶í , ë²€ì¹ë§í¬ ì±ê³Œì§í, ê·žë ìŽì€í ì §ë€ìŽ | â ìë£ |
| Phase 11 | ê°ì€ì¹ ìë ìµì í, NYSE ìºëаë, 죌ê°/ìê° ëŠ¬í¬íž, Cross-Market í©í° | â ìë£ |
| Phase 12 | ë°ìŽí° ê³ìœ, íìŽíëŒìž ê²ìŽíž (9ê°), ìí ëšžì , OOS ê²ìŠ, íëŒë¯ží° 믌ê°ë | â ìë£ |
| Phase 13 | Release Gates (A~E), 컎íëŒìŽìžì€, 몚ëí°ë§ ëì볎ë, ìŽì 묞ì 8ì¢ | â ìë£ |
| Phase 14 | OOS Walk-Forward ê²ìŠ, ëì ë ì§ ììëž, 벡í°í ìê·žë, MDD ë°©ìŽ | â ìë£ |
| Phase 15 | KIS API ì€ìê° ì°ë, OHLCV ìë ìì§, ì€ìŒì€ë¬ íìŽíëŒìž (5ížë€ë¬) | â ìë£ |
| Phase 16 | ëì ììëž REST API, Optuna íìŽíŒíëŒë¯ží° ìµì í, YAML ì€ì êŽëЬ, RL ììŽì íž (Gym+PPO/SAC) | â ìë£ |
cd backend
# ì 첎 í
ì€íž (4,159 tests)
python -m pytest
# ì€ëªší¬ í
ì€íž (413 tests, < 13ìŽ)
python -m pytest -m smoke
# 컀ë²ëŠ¬ì§ í¬íš
python -m pytest --cov=core --cov=config --cov=api --cov=db --cov=contracts
# í¹ì 몚ë
python -m pytest tests/test_infrastructure.py -v
# 묞ì-ìœë ëêž°í ê²ìŠ
python scripts/check_doc_sync.py --verbose| Doc ID | 묞ì | ëŽì© |
|---|---|---|
| OPS-001 | 맀맀 ì€ëš/ì¬ê° ì ì± | ìë/ìë ì€ëš ížëŠ¬ê±°, ì¬ê° ì ì°š |
| OPS-002 | ì¥ì ëì ë°ë¶ | SEV-1~4 ë±êžë³ ëì, ìë늬ì€ë³ ë°ë¶ |
| OPS-003 | ëªšëž ë³ê²œ ì ì± | ë³ê²œ ë¶ë¥, ë°±í ì€íž/OOS ê²ìŠ ì걎 |
| OPS-004 | ëŠŽëŠ¬ì€ ì¹ìž ê²ìŽíž | Gate A~E 5ëšê³ ì¹ìž |
| OPS-005 | ë°°í¬ ë¡€ë°± ê³í | ì±/DB/ì€ì 례백 ì ì°š |
| OPS-006 | ê³ ê° ê³µì§ | í¬ì ìí ê³ ì§, SLA |
| OPS-007 | Docker í겜 ìží | ê°ë°/íë¡ëì í겜 êµ¬ì± |
| OPS-008 | ë°°í¬ ê²ìŠ ë¡ëë§µ | Phase 0~4 ëšê³ë³ ì ì°š |
| SEC-001 | RBAC ì ì± | ëŒì°ížë³ ê¶í ë§€ížëŠì€, wiring ê°ì ê²ì¬ |
| SEC-002 | ê³µêžë§ 볎ì ì ì± | SBOM/cosign keyless/grype/pip-audit, CD cosign verify ê°ë, ìë ê²ìŠ ì ì°š |
Private - All rights reserved