기능 추가/수정
설명
링크 검사 결과에서 사용자가 최종 URL 페이지의 시각적 스냅샷을 확인할 수 있도록 스냅샷 생성/저장/응답 기능을 추가한다.
현재 파이프라인은 normalize -> unchain -> threat_db/domain_heuristic -> content_analysis 흐름이며, 가능한 경우 스냅샷 생성은 기존 검사 흐름과 병렬로 실행한다. 단, 스냅샷 생성을 병렬로 붙였을 때도 사용자 응답 시간이 1초 이상 증가한다면 동기 응답 경로에 포함하지 않고 비동기 후처리 또는 스킵 처리로 전환한다.
수용 기준:
- 최종 URL 기준으로 페이지 스냅샷을 생성한다.
- 응답에는 스냅샷 상태를 표현하는 필드를 추가한다.
- 예:
available, skipped, timeout, failed
- 스냅샷 URL 또는 storage key는 성공 시에만 포함한다.
- threat DB 매치 등으로 이미 위험 판정이 확정되어 콘텐츠 분석을 건너뛰는 경우, 실제 페이지를 열지 않고 스냅샷도 생성하지 않는다.
- SSRF 방어, private IP 차단, 타임아웃 정책은 기존 콘텐츠 분석/렌더링 정책과 일관되게 적용한다.
- 스냅샷 실패/타임아웃은 링크 검사 verdict, score, summary를 실패시키지 않는다.
- 병렬 실행 기준으로
timings.total_seconds 또는 실제 wall-clock 증가분이 p95에서 1초 이상이면 동기 응답 경로에서 제외한다.
- 스냅샷 생성 소요 시간과 실패 사유를 로그 또는 응답 메타데이터로 관측할 수 있어야 한다.
테스트 요구사항
- 정상 HTML 페이지에서 스냅샷 성공 상태가 응답에 포함되는지 검증한다.
- threat DB 매치로 조기 종료되는 경우 스냅샷 생성을 호출하지 않는지 검증한다.
- 페이지 unavailable, timeout, blocked_host 상황에서 스냅샷 실패가 파이프라인 실패로 전파되지 않는지 검증한다.
- 스냅샷 task가 예외를 내도 기존
PipelineSuccess/PipelineFailure 의미가 바뀌지 않는지 검증한다.
- 스냅샷 생성 지연이 최종 응답 시간을 1초 이상 늘리는 경우
timeout, skipped, 또는 비동기 후처리 경로로 처리되는지 검증한다.
- 외부 네트워크나 실제 브라우저에 강하게 의존하지 않도록 mock/fake 기반 단위 테스트를 포함한다.
🗒 체크리스트
기능 추가/수정
설명
링크 검사 결과에서 사용자가 최종 URL 페이지의 시각적 스냅샷을 확인할 수 있도록 스냅샷 생성/저장/응답 기능을 추가한다.
현재 파이프라인은
normalize -> unchain -> threat_db/domain_heuristic -> content_analysis흐름이며, 가능한 경우 스냅샷 생성은 기존 검사 흐름과 병렬로 실행한다. 단, 스냅샷 생성을 병렬로 붙였을 때도 사용자 응답 시간이 1초 이상 증가한다면 동기 응답 경로에 포함하지 않고 비동기 후처리 또는 스킵 처리로 전환한다.수용 기준:
available,skipped,timeout,failedtimings.total_seconds또는 실제 wall-clock 증가분이 p95에서 1초 이상이면 동기 응답 경로에서 제외한다.테스트 요구사항
PipelineSuccess/PipelineFailure의미가 바뀌지 않는지 검증한다.timeout,skipped, 또는 비동기 후처리 경로로 처리되는지 검증한다.🗒 체크리스트