프론트엔드를 개발하거나, 클라이언트를 디버그하거나, 새로운 HTTP 라이브러리를 배울 때, 백엔드 서버를 구축하지 않고도 실제처럼 보이는 JSON을 반환하는 엔드포인트가 필요한 경우가 많습니다. 더미 API는 바로 그런 역할을 합니다. 지금 바로 호출할 수 있는 공개적이고, 무료이며, 항상 작동하는 서비스입니다. 이 가이드에서는 최고의 공개 더미 API들을 소개하고, 호출 방법을 보여주며, 다른 사람의 데이터를 빌려 쓰는 것을 멈추고 자신만의 가짜 REST API를 구축해야 할 때를 설명합니다. 공개 API 환경에 대해 더 깊이 이해하고 싶다면, 아래 내용과 함께 Fetch API 사용에 대한 MDN 가이드를 읽어보세요.
더미 API는 실제로 무엇인가요?
더미 API는 사용자, 게시물, 제품, 장바구니, 할 일 목록과 같은 일반적인 리소스 유형에 대해 미리 정의된(canned), 현실적인 JSON을 반환하는 호스팅된 서비스입니다. 가입할 필요도 없고, 직접 호스팅할 필요도 없으며, 프로덕션 데이터 손상에 대해 걱정할 필요도 없습니다. 대부분 GET, POST, PUT, PATCH, DELETE를 허용하지만, 쓰기 작업은 일반적으로 가짜입니다. 서버는 당신의 페이로드를 ID와 함께 그대로 반향(echo)하여 저장된 것처럼 가장하지만, 실제로는 아무것도 지속되지 않습니다.
이는 더미 API에 의존하기 전에 이해해야 할 핵심 특징입니다. 더미 API는 읽기 위주의 프로토타입 제작과 요청 코드가 작동하는지 증명하는 데 완벽합니다. 상태 유지 동작, 자신만의 데이터 형태, 또는 사용자 정의 오류 조건이 필요한 순간에는 적합하지 않습니다.
테스트에 사용할 최고의 무료 더미 및 가짜 API
다음은 알아둘 가치가 있는 공개 API들입니다. 모두 무료이며 당신 쪽에서 백엔드 설정이 필요 없습니다.
JSONPlaceholder
JSONPlaceholder는 고전적인 더미 API입니다. 100개의 게시물, 500개의 댓글, 100개의 앨범, 5,000개의 사진, 200개의 할 일, 10명의 사용자와 같은 여섯 가지 관련 리소스를 제공합니다. 관계가 실제와 같아서 게시물에는 댓글이 있고 앨범에는 사진이 있어 중첩된 가져오기(fetch)를 테스트하는 데 좋습니다.
curl https://jsonplaceholder.typicode.com/posts/1
단일 게시물 객체를 반환받습니다. 쓰기 요청은 허용되지만 저장되지 않으므로, POST /posts는 매번 가짜 id: 101을 반환합니다.
DummyJSON
DummyJSON은 더 넓은 범위를 다룹니다. 제품, 장바구니, 사용자, 게시물, 댓글, 인용문, 할 일 목록, 레시피는 물론 토큰을 제공하는 인증 흐름까지 제공합니다. 쇼핑 카트 UI나 로그인 화면을 테스트하는 경우 이 API를 선택하세요.
curl https://dummyjson.com/products/1
인증 엔드포인트를 사용하면 사용자 이름과 비밀번호를 POST하여 JWT를 받을 수 있으며, 이는 실제 ID 공급자를 연결하지 않고도 토큰 저장 및 인증된 요청을 연습하는 데 유용합니다.
reqres.in
reqres.in은 요청 및 응답 생명 주기에 초점을 맞춥니다: 사용자 목록, 단일 사용자, 등록, 로그인, 지연된 응답. 페이지네이션 및 인증 흐름 시연을 위해 만들어졌습니다. 알아둘 점: 현재 무료 티어는 API 키 헤더를 필요로 합니다. 요청에 x-api-key: reqres-free-v1을 보내지 않으면 401 오류가 발생합니다.
curl https://reqres.in/api/users/2 -H "x-api-key: reqres-free-v1"
각각의 적합성
| 더미 API | 가장 적합한 용도 | 인증 흐름 | 쓰기 지속성 |
|---|---|---|---|
| JSONPlaceholder | 중첩된 읽기, 블로그 스타일 데이터 | 없음 | 가짜, 저장되지 않음 |
| DummyJSON | 전자상거래, 장바구니, 로그인 | 있음 (토큰) | 가짜, 저장되지 않음 |
| reqres.in | 페이지네이션, 등록/로그인 데모 | API 키 헤더 | 가짜, 저장되지 않음 |
이 세 가지 외에 더 넓은 옵션 카탈로그를 원한다면, 테스트를 위한 공개 API 요약이 더 전문적인 선택 사항을 다루고 있으며, 개발자를 위한 무료 공개 API 목록은 날씨나 통화와 같은 특정 테마의 데이터가 필요할 때 유용합니다.
코드에서 더미 API를 호출하는 방법
더미 API를 호출하는 것은 다른 HTTP 엔드포인트를 호출하는 것과 같습니다. 다음은 사용자를 읽고 새 사용자를 게시하는 JavaScript의 일반적인 fetch 예제입니다.
// 읽기
const res = await fetch('https://dummyjson.com/users/1');
const user = await res.json();
console.log(user.firstName);
// 쓰기 (반향되지만, 지속되지 않음)
const created = await fetch('https://dummyjson.com/users/add', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ firstName: 'Ada', lastName: 'Lovelace' }),
});
console.log(await created.json()); // 가짜 id를 가진 객체를 반환합니다.
requests를 사용한 Python에서는 형태가 그만큼 간결합니다.
import requests
r = requests.get("https://jsonplaceholder.typicode.com/todos/1")
print(r.json())
이 코드 중 하나를 테스트 파일에 넣으면 어설션(단언)할 수 있는 작동하는 통합 기능이 생깁니다. 이러한 어설션을 위한 그럴듯한 값이 필요하다면, 현실적인 API 테스트 데이터 생성 가이드에서 test123 대신 프로덕션 트래픽처럼 보이는 이름, 이메일, 타임스탬프를 생성하는 방법을 보여줍니다.
공개 더미 API가 더 이상 충분하지 않을 때
공개 더미 API는 필요 사항이 구체화되기 전까지는 훌륭합니다. 다음과 같은 몇 가지 일반적인 상황에서 한계에 부딪힐 것입니다.
- 데이터 형태가 일치하지 않습니다. 당신의 앱은
subscription_tier필드와 중첩된billing객체를 예상합니다. JSONPlaceholder는posts와albums를 제공합니다. 그들의 스키마를 당신의 것으로 바꿀 수 없습니다. - 상태(state)가 필요합니다. 실제 장바구니는 항목을 추가할 때 업데이트됩니다. 더미 API는 POST가 반환되는 순간 당신의 POST를 잊어버립니다.
- 제어된 실패가 필요합니다. 공용 서비스가 항상 제대로 작동할 때 UI가 429, 느린 200, 또는 잘못된 본문을 어떻게 처리하는지 테스트하기는 어렵습니다.
- 백엔드가 존재하기 전에 개발하고 있습니다. 프론트엔드와 백엔드 팀은 종종 동시에 시작합니다. API가 출시될 때가 아니라 오늘 합의된 계약과 일치하는 엔드포인트가 필요합니다.
그 시점에는 빌려온 API가 필요하지 않습니다. 당신의 데이터 형태를 반환하고, 온디맨드로, 당신이 제어하는 응답을 제공하는 자신만의 가짜 API가 필요합니다. 그것이 테스트를 위해 구축된 목 API이며, Apidog가 여기에 적합합니다.
Apidog로 자신만의 가짜 API를 구축하는 방법
Apidog는 설계, 테스트, 디버깅, 목업을 한 곳에서 결합한 API 플랫폼입니다. Apidog의 목업은 스키마 기반이므로, 엔드포인트 구조를 읽고 내장된 Faker 규칙을 사용하여 사실적인 가짜 데이터를 자동으로 생성합니다. 당신은 한 번 형태를 정의하면, 모든 요청이 신선하고 그럴듯한 값을 반환합니다.

다음은 워크플로우의 간략한 버전입니다.
- 엔드포인트를 생성하거나 가져옵니다. Apidog에서 새로운 API를 정의하거나, 기존 OpenAPI 또는 Swagger 파일을 가져옵니다. Apidog는 스키마를 직접 읽습니다.
- 스마트 목업이 데이터를 채웁니다.
email이라는 필드에는 Apidog가 이메일을 반환합니다.createdAt에는 타임스탬프를 반환합니다.price에는 숫자를 반환합니다. 이 규칙들은 필드별로 조정할 수 있어,country필드는 무작위 문자열 대신 실제 국가 이름을 반환하도록 할 수 있습니다. - 로컬 목 URL을 호출합니다. Apidog는 목 서버를 구동하고 각 엔드포인트에 대한 URL을 제공합니다. 프론트엔드, 테스트, 또는 curl에서 공개 더미 API처럼 정확하게 호출할 수 있으며, 응답은 당신의 계약과 일치합니다.
- 조건부 및 오류 응답을 추가합니다. 요청에 따라 500, 404 또는 지연된 응답을 반환하도록 목을 구성합니다. 이제 공개 서비스에서는 재현할 수 없었던 불행한 경로를 테스트할 수 있습니다.
목업은 스펙에서 생성되므로, 설계가 발전함에 따라 동기화 상태를 유지합니다. 필드를 변경하면 목업에도 반영됩니다. 스펙에서 직접 목업을 생성하는 방법에 대한 더 넓은 시야를 원한다면, OpenAPI 스키마에서 목 데이터 생성에 대한 자세한 안내를 참고하세요.
공개 더미 API 대 자신만의 Apidog 목업
| 필요 | 공개 더미 API | Apidog 목업 |
|---|---|---|
| 빠른 읽기 전용 데이터 | 뛰어남 | 뛰어남 |
| 정확한 데이터 형태 | 아니요 | 예 |
| 사용자 정의 오류 및 지연 응답 | 아니요 | 예 |
| OpenAPI 계약과 일치 | 아니요 | 예 |
| 설정 시간 | 제로 | 분 단위 |
어느 하나가 엄격히 더 낫다고 할 수는 없습니다. 공개 더미 API는 5초 안에 어떤 JSON이라도 필요할 때 유용합니다. 자신만의 Apidog 목업은 실제 계약에 대한 정확성이 중요해지는 순간에 유용합니다. 대부분의 팀은 둘 다 사용합니다. 일회성 실험에는 공개 API를, 출시되는 모든 것에는 프로젝트 목업을 사용합니다.
자주 묻는 질문
더미 API는 목 API와 동일한가요?
겹치지만 동일하지는 않습니다. 더미 API는 일반적으로 JSONPlaceholder처럼 고정된 샘플 데이터를 가진 공개 공유 서비스를 의미합니다. 목 API는 당신이 정의하고 제어하며, 자신만의 형태와 동작을 반환하는 API입니다. 더미 API는 다른 사람이 이미 호스팅하는 목업의 한 종류입니다. 차이점에 대해 자세히 알고 싶다면 목 API란 무엇인가에 대한 설명을 참조하세요.
무료 가짜 API는 실제 데이터와 함께 사용해도 안전한가요?
아니요. 실제 사용자 데이터, 비밀, 또는 토큰을 공개 더미 API에 절대 보내지 마세요. POST하는 모든 것이 기록되고 볼 수 있다고 생각하세요. 일회용 테스트 값으로만 사용하세요. 프라이버시나 지속성이 필요할 때는 직접 목업을 호스팅하세요.
더미 API는 제가 보낸 데이터를 저장하나요?
거의 저장하지 않습니다. JSONPlaceholder, DummyJSON, reqres.in 모두 쓰기 요청을 허용하고 생성된 ID와 함께 결과를 반향하지만, 아무것도 지속되지 않습니다. 새로고침하면 "생성된" 기록은 사라집니다. 지속되는 상태가 필요하다면, 상태를 유지하는 목업 또는 실제 백엔드가 필요합니다.
코드 작성 없이 가짜 API를 만들 수 있나요?
예. Apidog를 사용하면 엔드포인트 형태를 정의하고 스마트 목업이 데이터를 생성하도록 할 수 있습니다. 서버 코드는 필요하지 않습니다. 또한 OpenAPI 파일을 가져와서 몇 분 안에 작동하는 목 엔드포인트를 얻을 수 있습니다.
마무리
JSONPlaceholder, DummyJSON, reqres.in과 같은 공개 더미 API는 프로토타입 제작 및 학습을 위한 현실적인 JSON을 얻는 가장 빠른 방법입니다. 비용이 들지 않고 설정도 필요 없습니다. 자신만의 데이터 형태, 실제 상태, 또는 제어된 오류 응답이 필요한 순간에는 당신이 실제로 소유하는 가짜 API를 구축하세요.
Apidog는 바로 그 일을 할 수 있도록 해줍니다. 스펙을 가져오고, 스키마 기반 목 데이터를 얻고, 몇 분 안에 자신만의 엔드포인트를 호출할 수 있습니다. Apidog를 다운로드하여 한 줄의 백엔드 코드도 존재하기 전에 다음 API 계약을 작동하는 목업으로 바꿔보세요. Apidog에서 테스트 워크플로우에 어떻게 적합한지 확인하세요.
