[BE-37] 점핏·서핏 slice 페이지네이션 · 상세 요청 예산

작업 내용 (설계 의도)

변경 사항

점핏과 서핏 adapter를 slice contract로 전환한다. 목록 cursor와 누적 상세 요청 수를 전달해 목록·상세 예산 둘 다 넘지 않게 하고, company 식별에 실패한 개별 posting은 기존 정책대로 skip/count한다. detail cap으로 인해 회사명이 없는 결과가 cycle 전체 실패나 마감 판정으로 번지지 않게 한다.

의존

  • BE-33

다이어그램

처리 흐름

sequenceDiagram
    participant A as Adapter
    participant L as List API
    participant D as Detail API
    A->>L: one bounded page
    loop remaining detail budget
        A->>D: posting detail
    end
    A-->>A: return next cursor

클래스 의존

flowchart LR
    JumpitAdapter --> JumpitPositionClient
    SurfitAdapter --> SurfitJobClient
    JumpitAdapter --> CollectionBudget
    SurfitAdapter --> CollectionBudget

테스트 케이스

  • 점핏은 slice detail cap 이후 상세 HTTP를 더 호출하지 않고 continuation을 반환한다.
  • 서핏은 목록 page cap에서 다음 cursor를 반환한다.
  • 상세 한 건 실패는 detailFailureCount만 증가시키며 다음 source/page를 막지 않는다.
  • 일일 detail budget이 이미 소진된 descriptor는 외부 상세 요청 없이 budget-exhausted 후보 결과를 만든다.