03·실습·12분

dontcode SDK

SDK는 런타임 의존성이 없는 패키지 하나입니다. fetch가 있는 곳이면 어디서든 실행됩니다. Node 18 이상, 엣지 런타임, 브라우저(다만 키 자체는 서버에 둡니다).

설치

pnpm add dontcode

설정

키를 만들면 표시 패널이 환경 변수 두 개를 줍니다. 서버 환경에 추가하세요.

DONTCODE_API_URL=https://backend.dontcode.co
DONTCODE_API_KEY=dc_...

클라이언트는 기본적으로 둘을 읽으므로 인자가 필요 없습니다.

import { dontcode } from 'dontcode'

const client = dontcode()

첫 호출

모든 메서드는 게이트웨이 경로 하나에 대응합니다. 데이터가 없어도 되는 count가 좋은 첫 호출입니다.

const total = await client.db.profiles.count()

테이블이 아직 없으면 응답은 오류지만, 그래도 키가 작동한다는 증거입니다. 인증되지 않은 요청은 거기까지 가지 못합니다. 키가 없으면 게이트웨이는 401 Missing API key로 답합니다.

오류와 타임아웃

2xx가 아닌 응답은 status, 안정적인 code, 전체 body를 담은 DontCodeError를 던집니다. 모든 요청에는 타임아웃이 있어(기본 10초, timeoutMs로 변경) 느린 게이트웨이가 서버를 멈추게 하지 않고 빨리 실패합니다.

속도 제한은 프로젝트별, 네임스페이스별입니다. 응답의 RateLimit-Remaining과 RateLimit-Scope를 읽어 속도를 조절하세요. 429에는 Retry-After가 실립니다.

DontCode에서는

키 페이지는 각 키가 마지막으로 사용된 시각을 보여주며, 이 레슨의 확인은 그것으로 호출이 도착했음을 압니다. 같은 페이지에서 키가 유출되는 순간 취소할 수 있습니다.

이해도 확인

  1. 1.환경 변수 없이 dontcode()를 호출했습니다. 첫 요청에서 무슨 일이 일어날까요?

  2. 2.SDK 요청은 기본적으로 얼마나 기다린 뒤 포기할까요?

과제

백엔드 프로젝트

SDK를 설치하고 서버에 DONTCODE_API_URL과 DONTCODE_API_KEY를 설정한 뒤 클라이언트로 아무 호출이나 하세요. 게이트웨이가 키 사용을 기록하면 확인이 통과됩니다.