Files
portfolio-hub/.proofline/criteria/ac-0003.md
T

1.1 KiB

id, status
id status
ac-0003 active

다중 포트폴리오 grouped aggregate와 N+1 방지

Criterion

목록용 repository 계약은 반환 대상인 여러 portfolio ID의 유효 manual ledger 집계를 하나의 grouped aggregate query로 계산해 portfolio ID별 결과를 반환해야 하며, 목록 크기에 비례하는 portfolio별 ledger query를 수행해서는 안 된다. 입력 ID 목록이 비어 있으면 schema 확인이나 DB 연결·query 없이 빈 mapping을 반환해야 한다.

Verification

  • 성공 조건: 둘 이상의 portfolio ID를 한 번에 전달했을 때 단일 query가 실행되고 각 ID의 합계가 독립된 mapping으로 반환된다.
  • 실패·경계 조건: 빈 ID 입력은 {}를 반환하고 DB connection 및 schema/query 호출이 발생하지 않는다.
  • 검사 방법: tests/test_portfolio_ledger_aggregates.py에서 GROUP BY ledger.portfolio_id, portfolio ID 배열 parameter, 단일 execute, 빈 입력 no-call을 검사하고 tests/test_v1_portfolios_list.py에서 route가 summary batch를 한 번 요청하는지 확인한다.