Skip to content

기능(백엔드-종목-거래): 검증된 원장 입력을 사용하는 종목·거래 CRUD API 추가 #4

Description

@dkfhddla

문제

저장소에는 종목과 거래에 관한 지속 가능한 제품, 명세, 아키텍처 계약이 마련되어 있지만, 종목을 생성하고 거래를 기록하며 검증된 거래 원장 데이터를 보존하는 실행 가능한 백엔드 경로가 아직 없다.

기대 동작

백엔드는 요청 입력을 검증하고 원장 기록을 영속화하며, 이후 포트폴리오·성과·대시보드 작업의 안정적인 기반을 제공하는 종목 및 거래 CRUD 엔드포인트를 노출해야 한다.

범위

  • stockstrades의 초기 FastAPI 라우터 구조 생성
  • 종목 및 거래 입력의 요청/응답 스키마 정의
  • StockTrade 영속성 모델 정의
  • 시장, 거래 유형, 수량, 가격, 수수료, 세금, 중복 종목 검증 규칙 적용
  • 종목 생성/목록 조회/수정과 거래 생성/수정/삭제 지원
  • 잘못된 입력에 대해 일관된 API 오류 반환

수용 기준

  • POST /stocks, GET /stocks, PATCH /stocks/{stock_id}가 존재하며, 비즈니스 규칙을 라우터에서 직접 구현하지 않고 서비스 계층 코드에 위임한다.
  • POST /trades, PATCH /trades/{trade_id}, DELETE /trades/{trade_id}가 존재하며, 파생 포트폴리오 값이 아니라 거래 원장 기록을 영속화한다.
  • Stock 입력은 잘못된 시장 값과 중복된 code + market 등록을 거부한다.
  • Trade 입력은 잘못된 거래 유형과 음수 숫자 값을 거부한다.
  • Trade 기록은 원장 이벤트와 함께 메모 및 사유 필드를 저장한다.
  • 백엔드 요청/응답 스키마가 영속성 모델과 분리되어 있다.
  • 잘못된 요청은 일관된 HTTP 오류 응답을 반환한다.

근거 위치

  • 소유 지속 문서: docs/specs/mvp-foundation.md - R-001, R-002 승인됨
  • 소유 지속 문서: docs/specs/stock-signal-view-data-model.md - Stock, Trade 모델 규칙 승인됨
  • 소유 지속 문서: docs/arch/backend-architecture-slices.md - SVC-001 Stocks, SVC-002 Trades, POST /stocks, POST /trades 제안됨
  • 소유 지속 문서: docs/specs/stock-signal-view-core-flow.md - F-001, F-002 승인됨

영향 영역

  • backend/app/api/
  • backend/app/models/
  • backend/app/schemas/
  • backend/app/services/
  • backend/tests/

차단 요소 또는 후속 작업

  • 쓰기 시점에 매도 수량이 현재 보유량을 초과하는지 검사하려면 최소 포트폴리오 조회 경로가 필요할 수 있다.
  • 음수가 아닌지 확인하는 수준을 넘는 수수료 처리는 포트폴리오 작업으로 미룬다.

제외 범위

  • 상대수익률 계산
  • 대시보드 생성 또는 검증
  • 알림 규칙 평가

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions