- HackerNewsRemovals는 Hacker News Front Page에서 사라진 스토리를 기록해, 외부에서 관찰 가능한 메인 페이지 조정의 유형과 규모를 파악하려는 프로젝트임
- 서비스는 공식 HN API로 매분 Top Stories 90개를 가져오고, 직전 1분의 상위 30개와 비교해 빠진 스토리를 로그에 남김
- 핵심 가정은 스토리가 1분 만에 상위 30위에서 90위 밖으로 밀려나기는 어렵고, 그런 경우 명시적으로 제거됐을 가능성이 있다는 것임
- 중복 스토리 여부는 자동 판별하지 못하며, 중복은 제거의 합리적 이유가 될 수 있으므로 목록을 볼 때 항상 확인해야 함
- 로그는 최대 1분 지연으로 갱신되고, 스토리가 다시 Front Page에 나타나면 목록에서 제거되며, second-chance pool에 있는 스토리는 제외됨
프로젝트 목적과 문제의식
- HackerNewsRemovals는 Hacker News Front Page 조정이 어떤 규모와 형태로 일어나는지 이해하기 위한 프로젝트임
- 외부에서 관찰 가능한 Front Page 조정은 크게 두 가지로 나뉜다고 봄
- 스토리 제목 수정: 순위 상승에 자발적 또는 비자발적으로 영향을 줄 수 있음
- Front Page에서 직접 제거
- 제목 변경 추적은 이미 hackernewstitles.netlify.app에서 제공되므로, 이 프로젝트는 제거된 스토리에 초점을 맞춤
- 원래는 개인용으로 만든 작은 애플리케이션이었지만, 같은 유형의 정보를 제공하는 도구나 웹사이트를 찾지 못해 공개 저장소로 공개함
- 비슷한 도구나 웹사이트가 있다면 저장소를 아카이브하거나 비공개로 돌릴 수 있다고 밝힘
2024년 2월 업데이트와 주의점
- 2024년 2월 4일 업데이트에서 이 프로젝트에 대한 Hacker News 토론 링크를 추가함
- 토론: HN discussion
- 핵심 가정에 대한 @dang의 댓글: @dang comment
- 2024년 2월 3일 토요일에 제거된 스토리 수는 서비스가 기록한 것 중 가장 낮았고, 여기에는 중복 스토리 2개가 포함됨
- 목록을 볼 때 스토리가 중복인지 항상 확인해야 함
- 중복은 제거의 합리적 이유가 될 수 있음
- 서비스는 중복 여부를 자동으로 판별할 방법이 없음
작동 방식
- 서비스는 공식 HN API를 사용해 매분 Top Stories 90개를 가져옴
- 직전 1분에 가져온 상위 30개, 즉 Front Page와 현재 데이터를 비교함
- 직전 Front Page에 있던 스토리가 현재 Top Stories 90개 안에서 빠졌다면 로그에 기록함
- 이 방식은 스토리가 1분 만에 상위 30위에서 90위 밖으로 자연스럽게 이동할 수 없다는 가정에 기반함
- 스토리가 다시 Front Page에 나타나면 해당 항목은 로그에서 제거됨
- second-chance pool에 있는 스토리는 로그에서 제외됨
기록되는 데이터
- 제목과 URL은 스토리가 처음 상위 30개에 등장했을 때의 값을 사용함
- 점수, 댓글 수, 순위는 스토리가 Front Page에서 제거된 시점의 값을 사용함
- 각 스토리 ID는 news.social-protocols.org 페이지로 연결됨
- 해당 페이지는 시간에 따른 Front Page 순위 그래프를 제공함
- 목록은 실시간 갱신되며 최대 지연은 1분임
공개 목록의 형태
- README에는 날짜별로 제거된 스토리 목록이 이어짐
- 각 항목은 HN ID, 제거 당시 순위, 점수, 댓글 수, 스토리 제목과 원문 링크를 포함할 수 있음
- 예시로 2026년 6월 22일부터 27일까지의 항목들이 날짜별로 나열되어 있음
- 일부 항목은 점수나 댓글 수가 표시되지 않고, 순위와 제목만 나타남
- 목록을 해석할 때 중복 여부를 확인해야 하며, 서비스 자체는 중복 판별을 자동화하지 않음
프로젝트를 만들게 된 계기
- OnnxStream 관련 스토리 두 건이 Hacker News에 올라간 뒤 Front Page에서 다른 방식으로 영향을 받았던 사례가 계기였음
- 첫 번째 스토리는 “Stable Diffusion Turbo on a Raspberry Pi Zero 2 generates an image in 29 minutes”에서 “OnnxStream: Stable Diffusion XL 1.0 Base on a Raspberry Pi Zero 2”로 제목이 바뀌었고, 새 제목이 스토리의 취지를 반영하지 않는다는 사용자 지적이 있었음
- 두 번째 스토리는 제출 후 1시간도 안 돼 Front Page 3위에 있었지만 이후 Front Page에서 제거됨
- @dang은 해당 스토리가 명시적으로 flag 표시가 없더라도 사용자들에 의해 플래그됐고, 플래그 원인은 추정만 가능하다고 답함
- 이 경험을 바탕으로 현상이 얼마나 자주 발생하는지 확인하려고 작은 콘솔 애플리케이션을 만들었고, 이후 같은 현상을 모니터링하는 공개 도구를 찾지 못해 공개함