한 매체가 닷새 동안 매일 다른 이유로 실패했다. 원인은 하나였다
VentureBeat 피드가 나흘은 429, 닷샛날은 SSL 타임아웃으로 죽었다. 증상은 매일 달랐지만 원인은 하나였다. 사이트 전체가 봇 검문(자바스크립트 챌린지) 뒤로 들어갔고, 피드 파서로는 뚫을 수 없었다. 증상을 쫓았으면 헛다리를 짚었을 것이다.
무엇이 어떻게 틀렸고 어떻게 고쳤나
이 사이트는 매일 아침 08:00에 사람 없이 돕니다. 그 파이프라인을 만들다 보면 틀린 것이 나옵니다. 그중 남길 만한 것을 무엇이 어떻게 틀렸고, 수치가 얼마였고, 어떻게 고쳤는지까지 코드째로 적습니다. 뉴스 요약이 아니라 이 사이트 자신에 대한 기록입니다.
VentureBeat 피드가 나흘은 429, 닷샛날은 SSL 타임아웃으로 죽었다. 증상은 매일 달랐지만 원인은 하나였다. 사이트 전체가 봇 검문(자바스크립트 챌린지) 뒤로 들어갔고, 피드 파서로는 뚫을 수 없었다. 증상을 쫓았으면 헛다리를 짚었을 것이다.
도구 업데이트는 날짜 대신 '전에 실은 적 없는 제목인가'로 신규를 가린다. 그런데 그록과 퍼플렉시티는 항목에 날짜가 없고 월 제목만 있다. 그래서 9월 3일, 1월과 3월 그록 항목이 "새로 추가"로 올라왔다. 처음 본다는 이유만으로 오래된 것을 최신처럼 실은 것이다.
403이라 요청 한도인 줄 알고 열흘간 GitHub 토큰만 고쳤다. 응답 본문을 기록에 남기고 나서야, 막은 것이 GitHub이 아니라 파이프라인이 도는 클라우드 실행 환경이라는 걸 알았다.
매일 뭘 걸렀는지 독자가 직접 세어보라고 /data에 숫자를 둔다. 그런데 그 페이지가 "98건에서 2건을 빼면 후보 59건"이라고 적고 있었다. 98에서 2를 빼면 96이다. 국내 뉴스 풀이 화면 계산에서 통째로 빠져 있었다.
이미 실은 항목인지를 제목으로 판정하는데, 견주는 두 제목을 서로 다른 코드가 만든다. 한쪽은 자르고 한쪽은 되살려서, 안 맞는 항목은 한 번도 안 걸러졌는데 걸러낸 수는 매일 늘고 있었다.
실패한 피드의 이름은 남겼는데 이유를 안 남겼다. 이유를 남긴 첫날 아침에 원인이 나왔고, 그중 하나는 성공 계열 응답 코드로 오고 있었다.
한 매체가 너무 많이 실리지 않게, 같은 사건이 두 번 실리지 않게, 뉴스가 아닌 글이 섞이지 않게. 규칙 셋이 지난 한 달 동안 차례로 반대가 됐습니다. 고장이 아니라 적힌 대로 동작한 결과였고, 그 순간 아무 소리도 나지 않았습니다.
한 매체가 하루 10건 중 3건까지만 실리도록 상한을 뒀습니다. 그런데 그 상한은 자리를 비워두느니 통째로 풀리도록 쓰여 있습니다. 28일 중 네 번 그렇게 됐고, 뉴스가 실제로 적었던 날은 그중 둘뿐이었습니다. 하나는 제 설정 실수였고 하나는 아직 원인을 모릅니다.
교차보도 점수를 매기는 키워드 추출기가 대문자 ASCII 토큰만 뽑는다. 한국어 제목은 하나도 만들지 못해 점수 상한이 3.0인데, 평일 채택 컷은 5점대다. 그런데 일요일과 월요일에는 실린다. 실력이 아니라 영어권 피드가 조용해진 덕분이다.