첫 화면이 답할 질문을 정하세요
댓글 미리 보기는 작은 질문에서 시작할 수 있습니다. 받은 기록 가운데 우리 애플리케이션이 실제로 무엇을 보여 줄 수 있는지 정하는 것입니다. Reddit Fetch는 JavaScript 개발자가 독립적인 과거 Reddit 아카이브를 조회할 수 있게 합니다. 먼저 커뮤니티 하나를 고르고 본문이 없을 때 표시할 설명을 준비하세요. 더 많은 자료를 모으기 전에 화면에 필요한 정보와 빠진 값을 다루는 방식을 구체적으로 정할 수 있습니다.
예제는 GET https://api.redditfetch.com/v1/comments?subreddit=javascript&limit=3 요청을 사용합니다. subreddit=javascript는 커뮤니티를 선택하고 limit=3은 댓글을 최대 세 개 요청합니다. 세 개라는 값은 상한이며 채워진 카드 세 장을 보장하지 않습니다. 기록이 더 적거나 성공한 응답이 비어 있을 수 있습니다. 댓글들이 같은 대화에 속한다는 뜻도 아닙니다. 목록에서 이웃한다고 서로 답글 관계라고 판단하지 말고 각 기록을 별도로 살펴보세요.
요청은 자체 서버 프로세스에서 실행하세요
Node.js 서비스에서 fetch를 실행하고 비공개 서버 설정에서 REDDIT_FETCH_API_KEY를 읽으세요. 아카이브를 호출하기 전에 값이 있는지 확인합니다. Authorization: Bearer <key>와 X-API-Key: <key> 헤더를 모두 사용할 수 있습니다. 예제의 자리표시자는 저장한 비밀 키를 뜻합니다. 방문자의 브라우저가 내려받는 JavaScript에 넣는 값이 아닙니다. 서버는 인증을 위해 키가 필요하지만 사용자는 미리 보기를 읽기 위해 그 키를 알 필요가 없습니다.
첫 시도에서는 요청 목적지를 고정하세요. 서버는 응답을 확인한 뒤 화면에 필요한 작은 표현만 브라우저에 보낼 수 있습니다. 방문자가 입력한 임의의 URL을 키가 포함된 요청의 목적지로 사용하거나 키 자체를 전달하지 마세요. 자체 경로에서 누가 새로 고침을 실행할 수 있는지도 정합니다. 키를 숨겼다는 사실만으로 공개된 경로를 통해 유료 요청이 반복해서 발생하는 상황까지 막아 주지는 않습니다.
빈 결과와 실패에 다른 의미를 부여하세요
fetch의 Promise가 이행되어도 HTTP 성공이 확인된 것은 아닙니다. 본문을 댓글 자료로 해석하기 전에 response.ok를 검사하고 다음으로 JSON과 필요한 필드를 확인하세요. 네트워크 예외는 다른 결과이며 응답이 도착한 뒤 JSON 해석이 실패할 수도 있습니다. 이 단계를 모두 댓글 없음이라는 메시지로 바꾸면 원인이 가려집니다. 사용자가 보는 안내와 개발자가 남기는 진단에서 각 상황을 따로 다루는 편이 좋습니다.
댓글은 평평한 기록 조각으로 반환됩니다. 사용 가능한 본문을 확인하고 누락된 값에 대한 자체 안내를 정한 뒤 내용을 텍스트로 표시하세요. 로딩 중, 준비됨, 비어 있음, 실패는 애플리케이션이 정하는 상태입니다. 아카이브의 빈 표본은 커뮤니티에 댓글이 없다는 증거가 아닙니다. 세 조각도 완전한 대화 트리를 만들지 않습니다. 화면에서 연결되지 않은 기록을 전체 토론처럼 배치하지 말고 실제로 받은 범위만 설명하세요.
다음 새로 고침이 필요한지 판단하세요
성공한 조회는 비어 있어도 크레딧 하나를 사용합니다. 요금은 성공한 요청 1000건당 $1이며 최소 $50 충전으로 유료 크레딧 50000개를 구매합니다. 체험 크레딧은 자격 조건에 따라 달라집니다. 저장된 응답을 로컬에서 다시 쓰면 새 조회가 필요하지 않습니다. 하지만 새로 고침이 성공하면 화면의 문구가 그대로여도 크레딧 하나가 더 듭니다. 화면을 열 때마다 다시 조회해야 하는지는 별도로 결정할 수 있습니다.
이 아카이브는 Reddit과 공식 제휴 관계가 없으며 실시간 댓글 스트림도 아닙니다. 완전한 수집 범위, 영구적인 가용성, 응답의 불변성을 보장하지 않습니다. 미리 보기에 과거 기록임을 표시하고 아카이브 순서를 최신순으로 설명하지 마세요. 키 페이지에서는 서버 설정을, 가이드에서는 실패 처리 과정을, 문서에서는 응답 형식을 확인할 수 있습니다. 다음 단계는 미리 보기를 만들면서 아직 해결하지 못한 질문에 맞추어 선택하면 됩니다.