Skip to content

추출 실패 경로의 WARN 소음과 홈 리다이렉트 판별 정리 - #86

Merged
m-a-king merged 4 commits into
mainfrom
fix/82-extraction-warn-noise-and-home-redirect
Sep 28, 2026
Merged

m-a-king merged 4 commits into
mainfrom
fix/82-extraction-warn-noise-and-home-redirect

Conversation

@m-a-king

@m-a-king m-a-king commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Situation

첫날 실수신에서 드러난 것

Task

WARN 소음 정리와 홈 리다이렉트 판별

Action

사이트 루트 착지를 일시 실패로 분류

경로 판정 지점 동작
정적 fetch redirect Location 이 루트인 순간 홈 본문을 받지 않고 끊음
헤드리스 홉 후보 단계, 구조화 추출보다 앞 루트 홉은 구조화 데이터·LLM 후보 모두 제외. 루트뿐이면 같은 실패
  • 조건: 등록 링크 자체가 루트면 판정하지 않음
  • 루트는 path 가 비었거나 / 이고 query·fragment 가 없는 URL
    • 원인: /?goodsNo=1·/#/goods/1 처럼 루트 URL 로 상품을 싣는 몰이 있음
    • 대안: 추적 파라미터(utm_*·fbclid)만 있는 query 는 루트로 인정
      • 기각: 코드에 없던 파라미터 목록 정책이 새로 생김. 놓친 경우는 이전 동작(홈 본문을 LLM 에 넘김)으로 돌아갈 뿐
  • 루트 홉에서도 challenge 신호는 계속 모음
    • 원인: 차단 판정이 루트 착지보다 먼저라 최종 실패 code 가 이전과 같게 유지됨
  • 구현: ProductLink.isSiteRoot, HttpPageFetcher.landsOnSiteRoot, HeadlessProductLinkExtractor, PageFetchException.redirectedToSiteRoot
선택지 장점 비용
UPSTREAM_ERROR 재사용 (채택) 계약 변경 없음 시도마다 정적 fetch 실패 뒤 렌더 1회. 건당으로는 재시도 횟수만큼
전용 code 신설 관측에서 구분 가능 infra 카탈로그·proto·core 매핑 3 repo 선행 변경

로그 레벨 조정

로그 이전 이후 원인
HttpClient ResponseProcessCookies WARN ERROR 미만 차단 cafe24 몰의 잘못된 Set-Cookie domain, 추출 결과 무관
fetch 4xx WARN INFO 없는 상품·비공개 페이지의 정상 실패. 5xx 는 WARN 유지
헤드리스 escalate 실패 WARN INFO 예외로 전파돼 파싱 실패 알림이 되므로 알림 2건

Result

검증

  • 루트 redirect 시 홈으로의 두 번째 요청이 나가지 않음을 MockRestServiceServer 의 미기대 요청 실패로 고정
  • 헤드리스 루트 착지 시 LLM 호출 0회를 stub 호출 수로 고정
  • 루트+query 2건·루트 홉 JSON-LD 1건 테스트 추가
    • 결과: 수정 전 코드에서 새 테스트 3건 모두 실패 확인
  • 로그 레벨 조정으로 사라지는 알림 없음
    • 원인: core 범용 로그 알림은 error·critical 만 봄. extractor 로그 문구를 매칭하는 룰 0개

위험

후속

  • 몰 쪽 일시 상태는 호출자 recover 재시도가 흡수

연관 이슈

- 정적 fetch: redirect Location 이 사이트 루트면 본문을 받기 전에 끊음
  - 원인: 홈 본문을 LLM 에 넘기면 NOT_PRODUCT_PAGE 확정 실패로 닫힘
  - 이전: (core item 2219, packnfold) 몰이 302 로 홈을 돌려줘 Gemini 2회 호출 뒤 확정 실패
  - 조건: 등록 링크 자체가 루트면 판정하지 않음
- 헤드리스: 루트에 착지한 홉을 LLM 후보에서 제외
  - 앞 홉의 구조화 데이터는 그대로 사용
  - 루트 홉뿐이면 같은 일시 실패
- 예외는 UPSTREAM_ERROR 재사용
  - 대안: 전용 code 신설
    - 기각: infra 카탈로그·proto·core 매핑 3 repo 선행 변경 필요
  - 비용: escalatable=true 라 정적 fetch 실패 뒤 렌더 1회 낭비
- ProductLink.isSiteRoot 로 판정을 한 곳에 둠
- HttpClient ResponseProcessCookies 로거를 ERROR 로
  - 원인: cafe24 몰의 잘못된 Set-Cookie domain 을 거부할 때마다 WARN
  - 추출 결과와 무관
- 4xx fetch 실패를 INFO 로
  - 원인: 없는 상품·비공개 페이지 등록의 정상 실패
  - 5xx 는 WARN 유지
- 헤드리스 escalate 실패를 INFO 로
  - 원인: 예외로 전파돼 호출자의 파싱 실패 알림이 됨
  - 결과: 같은 실패의 알림 2건 해소
- 참조: 전 서비스 WARN 알림 첫날 실수신 3종 (core#1105)
@m-a-king m-a-king added the fix 외부 가시적 결함 수정 label Sep 21, 2026
@m-a-king m-a-king self-assigned this Sep 21, 2026
@coderabbitai

coderabbitai Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 44eec5c6-fe50-4a80-b95a-8f795a9969b0


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Discord 스레드 연동용 메타데이터입니다. discord-pr-bot 워크플로가 자동 생성하며, 수정·삭제하면 PR 과 Discord 알림 연동이 끊깁니다.

- 사이트 루트 판정에 query 없음·fragment 없음 조건 추가
  - 원인: path 만 보는 판정이 /?goodsNo=1·/#/goods/1 같은 상품 URL 을 홈 착지로 오판
  - 결과: 단축링크가 루트+query 상품 URL 로 보내면 재시도를 다 쓴 뒤 실패. 이 PR 이전에는 성공하던 경로
  - 대안: 추적 파라미터(utm_*·fbclid)만 있는 query 는 루트로 인정
    - 기각: 코드에 없던 파라미터 목록 정책이 새로 생김. 놓친 경우는 이전 동작(홈 본문을 LLM 에 넘김)으로 돌아갈 뿐
- 루트+query redirect 를 끝까지 따라가는 테스트 추가
- 헤드리스 후보 순회에서 루트 착지 검사를 구조화 추출 앞으로 옮김
  - 원인: 홈의 대표 상품 Product JSON-LD 가 등록 상품으로 저장됨
  - 결과: 정적 경로가 홈 본문을 받지 않게 된 뒤 루트 redirect 는 전부 이 경로를 탐
- 루트 홉에서도 challenge 신호는 계속 모음
  - 원인: 차단 판정이 루트 착지보다 먼저라 최종 실패 code 가 이전과 같게 유지됨
- 테스트 2건 추가: 루트 홉 JSON-LD 채택 없음·루트+query 홉은 정상 후보
  - 결과: 수정 전 코드에서 새 테스트 3건 모두 실패 확인
@m-a-king
m-a-king merged commit eca1b1f into main Sep 28, 2026
4 checks passed
@m-a-king
m-a-king deleted the fix/82-extraction-warn-noise-and-home-redirect branch September 28, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix 외부 가시적 결함 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

추출 실패 경로의 WARN 소음과 홈 리다이렉트 판별 정리

1 participant