[STK3-01] 추천 랭킹

작업 내용 (설계 의도)

변경 사항

  • recommendation.py rank_recommendations() — 종합 점수>0.15 필터 → 내림차순 정렬 → 상위 limit.

의존

  • 선행: Phase 2 시그널 완료
  • 후행: STK3-04

다이어그램

처리 흐름

sequenceDiagram
    participant M as main.py
    participant R as recommendation.py
    M->>R: rank_recommendations(signals, limit)
    Note over R: composite_score > 0.15 필터
    Note over R: 내림차순 정렬
    Note over R: 상위 limit 슬라이싱
    R-->>M: recommendations[]
    alt 필터 후 결과 0건
        R-->>M: []
    end

클래스 의존

flowchart LR
    subgraph Application["Application"]
        main["main.py\n(라우터)"]
    end
    subgraph Domain["ML 도메인"]
        rec["recommendation.py\nrank_recommendations()"]
    end
    main --> rec

테스트 케이스

  • 임계값(0.15) 이하 종목은 필터링돼 결과에 포함되지 않는다.
  • 임계값 초과 종목이 종합 점수 내림차순으로 정렬되어 반환된다.
  • limit=3 요청 시 상위 3개만 반환된다.
  • 후보 전체가 임계값 이하면 빈 리스트가 반환된다.
  • 동점(같은 composite_score)인 종목의 순서가 일정하게 결정된다.