Files
portfolio-hub/docs/batches/bat-015_20260601_rel-001-feedback-cleanup/planning.md
T

3.3 KiB

BAT-015 Planning

  • Status: confirmed
  • Batch: BAT-015
  • Profile: standard

Included REQ

  • REQ-033 (Migration): ledger_trades.asset_id → portfolio_id 컬럼명 정합화
  • REQ-034 (Interface): LoginRequest 추가 필드 거부 enforcement
  • REQ-035 (Interface): GET /health 응답에 db_enabled 필드 추가

Delivery Plan

  • 순서: REQ-034 → REQ-035 → REQ-033
    • REQ-034 우선: 1줄 schema 변경 + pytest 422 회귀 (저위험·빠른 evidence)
    • REQ-035 후속: HealthResponse 확장 + baseline 문서 갱신 (저위험·문서 변경 포함)
    • REQ-033 마지막: Migration 동반 (가장 큰 변경, alembic revision + DB schema, staging dry-run 필요)
  • 선행 조건:
    • dcy-005 confirmed (2026-06-01) ✓
    • REQ-033/034/035 Approved (2026-06-01) ✓
    • 본 워크스페이스 개발용 메모리 확인 — prod 영향 검증은 release 단계 ✓
  • batch 통합 회귀: 3건 변경 후 전체 pytest 회귀 + 로컬 smoke (/health, /auth/login, /v1/portfolios/{id}/ledger/trades)

Dependencies

  • Internal:
    • dcy-005: Discovery 본문에 OQ-1/OQ-2/OQ-3 결정 명문화 완료
    • REQ-021: 본 batch가 REQ-021 AC-5 follow-up을 해소(REQ-034). REQ-021 본문 변경은 본 batch 범위 밖이며 cross-reference만 추가.
    • REQ-029: 본 batch가 REQ-029 Notes follow-up을 해소(REQ-033). REQ-029 본문 변경은 본 batch 범위 밖.
    • REL-001: 별도 release로 분리 배포 진행 중. 본 batch는 REL-002로 분리.
  • External:
    • 없음 (외부 client/integration 의존 없음)

Design Gate

  • Design Required Before Implementation: yes
  • Reason: REQ-033이 DB schema 마이그레이션을 동반하고 REQ-035가 baseline 문서(docs/runtime-flows.md) 갱신을 요구한다. Architecture impact가 있으므로 design 단계에서 architecture 결정과 baseline 갱신 계획을 명문화한 뒤 implementation 진입.

Milestones

  1. Design 단계: REQ-033 마이그레이션 전략 결정(ALTER COLUMN RENAME vs 별도 컬럼 추가+backfill), REQ-035 baseline 문서 갱신 위치 결정
  2. Implementation 단계: REQ-034 → REQ-035 → REQ-033 순서로 구현
  3. Verification 단계: pytest 회귀(전체 369+ passed 기대) + REQ-033 staging dry-run + 로컬 smoke (/health 응답, /auth/login 422, /v1/portfolios/{id}/ledger/trades 회귀)
  4. confirm-batch-verification 후 confirm-req-implemented 3건 일괄 전환

Risks

  • R-1 (Low): REQ-033 ALTER COLUMN RENAME이 ledger_trades 테이블에 lock을 유발해 운영 영향 발생.
    • 대응: staging dry-run으로 lock 시간 측정(< 1초 권장), 짧은 단일 트랜잭션 패턴 적용. 본 워크스페이스는 개발용이라 prod 영향 검증은 release 단계.
  • R-2 (Low): REQ-034 extra="forbid"가 기존 ignored field를 보내던 외부 client를 silently 깨뜨림.
    • 대응: 본 워크스페이스 개발용이라 외부 monitoring 영향 없음. 회귀 테스트에서 기존 username/password만 보내는 케이스 통과 확인.
  • R-3 (Low): REQ-035 HealthResponse 확장이 strict JSON schema validation 사용 monitoring 도구를 깨뜨림.
    • 대응: 본 워크스페이스 개발용이라 영향 없음. prod 배포 시 사전 점검(REL-002 verification).
  • R-4 (Low): 3건 변경이 통합 회귀에서 예상치 못한 상호 영향 발생.
    • 대응: 각 REQ 구현 후 pytest 회귀 incremental 실행, batch 마지막에 전체 회귀.