Reddit App API
KO

Reddit App API · 03 / 08

이용자에게 필요한 것은 검색창이지 아카이브 키가 아닙니다

하이킹 앱의 인증 정보 경계를 서버 쪽에 설계하고, 계정 세션과 조회 헤더를 구분하며 API 키 교체를 계획합니다.

화면을 만들기 전에 경계를 그리세요

가상의 하이킹 앱에서 사용자가 offline maps를 입력하고 검색을 누릅니다. 기기는 그 의도를 앱 백엔드에 보내야 하며, 아카이브 조회 비용을 지불하는 인증 정보를 받아서는 안 됩니다. 브라우저 배포 코드는 검사할 수 있고, 배포된 모바일 앱에서도 내장 문자열이나 송신 헤더가 드러날 수 있습니다. 빌드에 노출된 값을 환경 변수라고 부른다고 비공개가 되지는 않습니다.

키를 백엔드에 보관하면 배포된 클라이언트가 알아야 할 내용이 달라집니다. 클라이언트에는 검색 문구, 허용된 커뮤니티 등 앱의 요청 명세가 필요하고, 서버가 아카이브 인증 헤더를 제공합니다. 이 구조에도 접근 제어와 신중한 운영은 필요합니다. 비밀 값을 옮기는 것만으로 전체 앱이 자동으로 안전해지는 것은 아닙니다.

앱에서 작은 요청만 받으세요

첫 버전에서는 백엔드가 검색 문구와 페이지 번호만 받고 subreddit=hiking과 limit=3은 직접 지정할 수 있습니다. 길이와 범위를 검증하고 앱이 실제로 지원하는 선택지만 허용하세요. 클라이언트가 지정한 아카이브 호스트, 임의의 쿼리 DSL, 전달할 임의의 인증 헤더를 받아서는 안 됩니다. 이는 제안하는 앱 경계이지 Reddit App API에 구현된 추가 엔드포인트가 아닙니다.

백엔드가 아카이브를 호출할 때 X-API-Key 또는 Authorization: Bearer를 사용하세요. 조회 예약 전에 거부된 잘못된 매개변수는 크레딧을 사용하지 않지만, 정상적인 빈 결과는 사용합니다. 검증은 사용자의 실수 수정을 돕고 연동을 예측 가능하게 만듭니다. 그러나 요청한 날짜가 수록되어 있거나 유효한 검색에 유용한 결과가 나온다는 증거는 아닙니다.

계정 로그인을 별도로 다루세요

서비스 웹사이트의 Secure HttpOnly 세션 쿠키로 계정 운영자가 계정과 청구서를 관리합니다. API 키는 백엔드의 조회를 인증합니다. 하이킹 앱에 사용자 로그인을 구현한다면 그 관계도 별개입니다. 서비스 계정 쿠키를 이용자에게 보내거나, 서비스 키의 401을 앱 세션이 만료되었다는 증거로 해석하지 마세요.

API 키와 계정 잔액은 테넌트 전용이므로 도메인 네트워크 전체에서 공유되지 않습니다. redditapp.com 인증 정보에 해당 도메인을 명확히 표시하여 저장하세요. 다른 브랜드의 키는 목적지 URL을 바꿔도 유효해지지 않습니다. 네트워크 전체에서 체험 자격을 확인한다고 해서 분리된 계정 잔액이 공유 잔액으로 바뀌지는 않습니다.

로그도 비밀 정보 경계에 포함하세요

API 키를 백엔드로 옮길 때는 기록 방식도 주의해야 합니다. 요청 추적, 예외 보고, 모니터링 연동에 인증 헤더가 복사되는지 검토하세요. 작업과 상태를 진단하는 데 필요한 기록은 남기되, 원문 키, 계정 비밀번호, 요청의 비밀 정보 전체는 기록하지 않습니다.

이용자가 대응할 수 있는 메시지를 반환하세요. 서비스 키 오류는 운영자가 살펴야 하고, 잔액 부족은 계정 차원의 결정이 필요하며, 요청 속도 제한에는 요청을 줄여야 합니다. 401이나 402를 반복해도 원인은 해결되지 않습니다. 응답을 잃은 요청은 무료 실패나 확정된 성공이라고 가정하지 말고 불확실한 결과로 기록하세요.

배포 환경을 파악하고 키를 교체하세요

가입할 때 결제 전에 전체 키가 한 번 표시됩니다. 이후 계정 화면에서는 접두부만 보이며 복원 가능한 사본은 제공되지 않습니다. 로그인한 운영자가 계정 비밀번호를 확인하고 키를 재생성하면 이전 키는 즉시 무효가 됩니다. 교체가 필요한 백엔드 환경 목록을 준비한 다음 계획적으로 갱신하세요. 비밀 저장소 하나를 바꾸면 모든 실행 중 프로세스가 자동 갱신된다는 보장은 없습니다.

비밀번호를 안전하게 보관하세요. 현재 서비스는 비밀번호 재설정이나 Google 로그인을 제공하지 않습니다. 교체 후에는 의도한 요청으로 바꾼 배포 환경을 확인하되, 정상 조회는 과금된다는 점을 기억하세요. 교체 중에도 앱의 로딩과 오류 메시지가 실제 상황을 설명하게 하세요. 관련 상태 설계와 예산 노트는 /ko/#field-notes에서 확인할 수 있습니다.