시간 기반 검색의 기본 원리와 한계 이해하기
Reddit Posts API는 공식 Reddit과 제휴하지 않은 과거 아카이브에 대한 읽기 접근입니다. 라이브 업데이트, Reddit OAuth, 게시, 투표와 비공개 메시지는 제공하지 않습니다. 과거 기록이라는 사실이 고정된 스냅샷이나 변하지 않는 내용이라는 뜻은 아닙니다. 필요한 표본과 기간을 먼저 정하고, 실제로 받은 응답을 저장해 자신의 처리 과정을 검토하세요. 미래에 같은 요청이 같은 기록과 순서를 줄 것이라는 전제로 연구를 설계하지 마세요.
from과 to는 UTC 달력 날짜를 YYYY-MM-DD로 지정하며 to 날짜도 포함합니다. from=2020-05-01&to=2020-05-31은 날짜 형식을 설명하는 예일 뿐 그 시기에 기록이 있다는 주장이 아닙니다. 다음 구간을 2020-06-01로 시작하면 경계일을 중복 사용하지 않습니다. 날짜 필터는 선택 사항이며 시간이나 분 단위의 창을 정하는 기능은 아닙니다. 로컬 시간대가 분석 기준이라면 UTC 날짜로 어떻게 옮겼는지 기록하세요.
시작 예시는 https://api.redditpostsapi.com/v1/posts?subreddit=photography&min_score=10&limit=3입니다. 커뮤니티와 점수 하한, 최대 3개를 지정하며 장비 관련 글만 선택하지는 않습니다. 받은 텍스트를 읽어 관련 글을 로컬에서 분류하고, 빠진 텍스트나 제외된 행의 이유를 기록하세요. 점수가 의견의 정확성이나 제품 품질을 의미한다고 단정하지 마세요. API가 장비 평가나 감정 분석을 만들어 주는 것은 아니므로 실제로 수행한 분석과 요청 예시를 구별해야 합니다.
결과 정렬 방식과 한계 및 실제 적용 전략
API는 min_score와 같은 파라미터를 제공하지만, 이는 점수를 기준으로 결과를 정렬하는 것이 아니라 오직 필터링 역할만 수행합니다. 즉, min_score 값 이상의 점수를 가진 게시물만 반환할 뿐, 그 중에서도 높은 점수 순으로 나열하지는 않습니다. 이러한 미묘한 차이 때문에 데이터의 순서와 가중치를 신중하게 해석해야 합니다.
결과는 아카이브 문서 순서이며 시간순, 관련도순 또는 점수순이 아닙니다. 저장한 시각의 순서라고 추정할 근거도 없습니다. 요청당 최대 100개 레코드, 쿼리당 최대 100페이지를 반복해도 전체 일치 기록을 보장하지 않습니다. 총수 관계 eq는 정확한 기록 수, gte는 하한, unknown은 알 수 없음을 뜻하고 총수가 null일 수 있습니다. 총 페이지 수와 혼동하지 말고 원본 응답과 함께 관계를 남기세요.
정확한 총수도 모든 기록을 받았다는 증거는 아닙니다. 응답을 저장한 다음 로컬 진행 상태를 갱신하세요. 페이지 번호는 원격 데이터의 고정 위치가 아니므로 재개 시 누락이나 중복이 없다는 보장은 없습니다. 날짜 구간을 나누어도 완전한 수집을 입증하지는 못합니다. 사용할 식별자가 있다면 중복 처리 규칙을 정하고, 날짜 필드가 있으면 샘플을 로컬에서 정렬하세요. 이 정렬은 받은 기록에만 적용되며 빠진 자료를 복구하지 않습니다.
한도 준수와 에러 처리를 통한 안정적인 데이터 확보
각 요청은 최대 100개까지의 레코드만 반환할 수 있습니다. 따라서 방대한 데이터를 분석하려면 여러 번의 요청을 보내야 합니다. 이때 페이지네이션 파라미터를 적절히 사용하여 결과를 단계별로 수집하되, 각 요청이 독립적으로 처리됨을 염두에 두어야 합니다. API는 전체 데이터의 완전한 정렬 상태를 제공하지 않으므로, 클라이언트에서 결과를 결합하고 재정렬해야 합니다.
HTTP 400이면 조건을 수정하고 401이면 키를 확인하며 402이면 멈추거나 잔액을 충전하고 429이면 기다리세요. 잘못된 요청과 키 오류는 차감하지 않고 상위 소스 실패는 예약분을 반환합니다. 클라이언트 연결이 끊겨도 서버에서 유료 성공이 있었을 수 있어 성공한 재시도는 추가 과금됩니다. Authorization: Bearer YOUR_API_KEY 또는 X-API-Key: YOUR_API_KEY가 유효하며 실제 키는 비공개 설정에 보관하세요. 가격 페이지에서 빈 결과와 재시도까지 예산에 넣으세요.
응답은 평면 레코드입니다. parent_id나 link_id가 있으면 로컬로 관계를 묶을 수 있지만 이는 요청 필터가 아니고 부모 기록이나 전체 맥락도 보장하지 않습니다. 빈 응답을 보고 기록이 과거에 없었다고 결론 내리지 마세요. /v1/status는 무료 정적 안내와 HTTP 응답일 뿐 검색의 가용성을 검사하지 않습니다. 문서에서 조건을 확인하고 키 교체는 키 페이지의 패널을 사용하세요. 분석 결과는 실제로 저장한 표본과 적용한 로컬 규칙의 범위로 한정합니다.