1.1 KiB
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를 한 번 요청하는지 확인한다.