콘텐츠로 이동

추론하지 않는 것과 보장하지 않는 것

Chizumulu API는 공개 게시물을 조심스럽게 읽는 도구이지, 정답을 알려주는 신탁이 아닙니다. 이 페이지는 API가 의도적으로 하지 않는 것을 정리합니다.

  • 추측하지 않습니다. 게시물이 밝히지 않은 스코어, 팀, 분, 상태, 날짜, 대회는 그럴듯한 값이 아니라 null입니다.
  • 고치지 않습니다. 게시물 속 철자 오류, 틀린 날짜, 서로 모순되는 숫자도 적힌 그대로 반환됩니다.
  • 정규화하지 않습니다. 날짜는 텍스트(dateText)로, 분은 텍스트(minuteText)로 남고, 이름은 원본의 대소문자와 문장부호를 유지합니다.
  • structured는 게시물을 서로 연결하지 않습니다. matches[].index는 observation 하나 안에서만 쓰는 참조이므로, 같은 경기에 대한 두 게시물은 서로 다른 두 구조화 결과입니다. 연결은 별도의 파생 계층이 맡습니다: 파생 경기는 같은 경기를 분명히 가리키는 observation들을 API가 부여한 matchId로 보수적으로 묶으므로, 실제 경기 하나가 가끔 둘로 보일 수 있습니다.
  • 계산하지 않습니다. 결과로 순위표를 만들거나, 시즌 통계를 내거나, 가장 최근 골 게시물로 “현재 스코어”를 계산하지 않습니다.
  • 이미지를 일반적으로 읽지는 않습니다. 보관된 이미지는 제공되지 않습니다. 보관된 이미지에서 읽는 것은 리그 순위표 한 가지뿐이며, 그 밖의 이미지 내용(경기 일정·결과 그래픽, 라인업, 사진)은 해석하지 않으므로 거기에만 있는 사실은 없습니다. 이미지에서 읽은 사실을 참고하세요. 이미지만 있는 게시물은 텍스트도 구조화 결과도 없지만(method: "none"), 이미지에서 읽은 순위표는 attachmentFacts로 따로 제공됩니다.
  • 해시태그를 이름으로 풀어 쓰지 않습니다. 대회 텍스트 vs 코드를 참고하세요.
  • 완전성과 시점. API는 수집기가 관찰한 것과 그 시점을 반영합니다. 게시물은 원본에서 빠지거나, 늦거나, 중복되거나, 수정될 수 있습니다. 조용한 피드는 정상입니다(상태 참고).
  • 가용성. 가동률 목표를 약속하지 않습니다. 수집에 문제가 있어도 이미 저장된 데이터는 계속 읽을 수 있습니다.
  • 호출 제한. 문서화된 제한은 없고, 있다거나 없다고 보장하지도 않습니다. 배려해 주세요. 가능하면 캐시하고 /v1/feed는 적당한 간격으로 폴링하세요.
  • 파생 데이터의 정확도. 구조화 데이터와 한국어 번역은 규칙 기반 파서와, 필요할 때 언어 모델이 만들며, 추출된 모든 문자열과 숫자가 원문에 실제로 있는지 검사합니다. 그래도 불완전하거나 틀릴 수 있습니다. 검증할 수 있도록 원문이 항상 함께 반환됩니다.
  • 자유 텍스트의 안정성. processing.error, korean.text, error 메시지의 정확한 문구는 안정적인 계약이 아닙니다. 필드 이름, enum 값, OpenAPI 문서의 응답 모양이 계약입니다. 모르는 필드는 무시하세요.
  • 동영상 경로. /v1/videos/v1/videos/latest는 공개 YouTube 채널 피드 하나(NRFA가 아닌 팬 채널)를 그대로 전달합니다. 최근 15개 업로드만 있고, YouTube가 약 15분마다 갱신하며 여기서 약 10분 캐시하고, 오래된 목록으로의 대체는 최선 노력입니다. 파생·저장·이력 추적은 전혀 없습니다.
  • 원본 형식. NRFA는 게시물 작성 방식을 언제든 바꿀 수 있습니다. API는 그에 대비해 만들어졌지만(모르면 null), 새로운 형식은 처음에 덜 완전하게 읽힐 수 있습니다.
  • 게시물이 팀 이름 없이 결과만 알리거나, 경기장 없이 시각만 알릴 수 있습니다. 있는 그대로만 받고 나머지는 null입니다.
  • 게시물 하나에 경기가 여러 개일 수도, 하나도 없을 수도 있습니다. 둘 다 정상입니다.
  • 같은 메시지가 수정될 수 있습니다. 수집기가 관찰한 모든 버전은 history에서 볼 수 있습니다.
  • sourceTimestamp는 원본이 말한 값을 UTC로 정규화한 것입니다. 그럴듯하거나 순서대로라는 보장이 없으며, 그래서 정렬은 이 값만 믿지 않습니다.
  • CORS: 읽기 전용으로 개방. /v1/*의 공개 GET 응답과 /openapi.json, /llms.txtAccess-Control-Allow-Origin: *를 보내므로 어떤 출처의 웹 페이지에서도 읽을 수 있습니다. 공개 읽기 경로의 OPTIONS 사전 요청(preflight)에는 Access-Control-Allow-Methods: GET, OPTIONS로 응답합니다(그 밖의 메서드와 사용자 정의 요청 헤더는 허용되지 않고, 자격 증명은 절대 허용되지 않습니다). 내부 쓰기 경로와 사이트 페이지는 CORS 헤더를 보내지 않습니다.
  • 오류. 오류는 JSON 객체 {"error":"..."}이며 상태 코드는 400(잘못된 cursor, since, after, rawUpdateId), 404(알 수 없는 경로나 메시지, 또는 /v1/latest에서 저장된 것이 아직 없음), 500(internal error)입니다.
  • 읽기 전용. 공개 경로에는 GET만 정의되어 있습니다.