백엔드가 존재하기 전에 UI를 구축하고 있다면 렌더링할 데이터가 필요하며, DummyJSON은 이를 얻는 가장 빠른 방법 중 하나입니다. DummyJSON은 사실적인 제품, 사용자, 장바구니 등을 일반 HTTP를 통해 제공하는 무료 호스팅 가짜 REST API이며, 가입이 필요 없습니다. 이 가이드는 DummyJSON이 무엇을 제공하는지, 다른 공개 테스트 API와 어떻게 비교되는지, 그리고 고정된 플레이스홀더 데이터만으로는 부족할 때 어떻게 해야 하는지 설명합니다.
DummyJSON이란 무엇인가요?
DummyJSON은 무료 플레이스홀더 JSON API입니다. 공개 엔드포인트에 요청을 보내면 구조화되고 신뢰할 수 있는 샘플 데이터를 반환합니다. 데이터베이스를 설정하거나 키를 등록할 필요가 없습니다. 프런트엔드 개발자, 학생, 프로토타입을 만드는 모든 사람이 코드에 배열을 하드코딩하는 대신 실제 네트워크 엔드포인트를 사용할 수 있도록 존재합니다.

데이터는 가짜지만 일관성이 있습니다. 제품에는 제목, 가격, 평점, 재고 수량, 카테고리가 있습니다. 사용자에게는 이름, 이메일, 주소, 회사가 있습니다. 이러한 일관성 덕분에 DummyJSON은 실제와 같은 테이블, 카드, 페이지네이션 및 상세 페이지를 연결하는 데 유용합니다. 레코드는 프로덕션 데이터와 유사하게 중첩되고 유형이 지정되어 있으므로, 직접 고정 데이터를 만들 필요 없이 필터, 정렬 제어 및 상세 보기를 구축할 수 있습니다.
DummyJSON은 모든 것을 JSON 형식으로 HTTPS를 통해 제공하므로, 브라우저 fetch, 모바일 앱, curl 명령 또는 서버 측 스크립트에서 동일하게 작동합니다. 설치할 필요가 없습니다. URL에 요청을 보내면 데이터를 받게 되는데, 이는 실제 API가 아직 존재하지 않는 프로젝트 초기 단계에 정확히 필요한 것입니다.
이것은 학습 및 프로토타입 제작 도구이며, 그 역할을 잘 수행합니다. 튜토리얼이나 빠른 데모에서 데이터를 가져올 엔드포인트가 필요할 때 실제 시간을 절약해 줍니다.
DummyJSON 엔드포인트, 인증 및 제한
DummyJSON은 여러 리소스 컬렉션을 노출합니다. 일반적인 것들은 다음과 같습니다:
/products, 가격, 재고, 평점을 포함한 카탈로그 항목/users, 주소, 이메일, 회사 세부 정보를 가진 사람/carts, 사용자와 연결된 쇼핑 카트/posts및/comments, 블로그 스타일 콘텐츠/todos, 작업 항목/recipes및/quotes, 추가 콘텐츠 세트
각 컬렉션은 REST API에서 예상하는 패턴을 지원합니다. 모든 레코드를 가져오고, ID로 하나를 가져오고, 검색하고, 카테고리로 필터링하고, limit 및 skip을 사용하여 페이지네이션할 수 있습니다. select 매개변수는 응답을 특정 필드로 잘라내고, delay 매개변수(0에서 5000ms)는 느린 네트워크를 시뮬레이션하여 로딩 상태를 테스트할 수 있게 해줍니다.
다음은 기본적인 읽기입니다:
curl https://dummyjson.com/products?limit=5&skip=10
인증은 로그인 엔드포인트와 베어러 토큰을 사용합니다. /auth/login에 자격 증명을 게시하고, 토큰을 받은 다음, 보호된 요청에 해당 토큰을 보냅니다:
# 1. 토큰을 얻기 위해 로그인합니다
curl -X POST https://dummyjson.com/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"emilys","password":"emilyspass"}'
# 2. 인증된 요청에 토큰을 사용합니다
curl https://dummyjson.com/auth/me \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN_HERE'
쓰기 작업도 지원됩니다. POST, PUT, PATCH, DELETE 요청을 보낼 수 있으며, API는 변경이 발생한 것처럼 응답합니다. 단, 이러한 쓰기 작업은 시뮬레이션된 것입니다. DummyJSON은 업데이트되거나 생성된 것처럼 보이는 레코드를 다시 반환하지만, 아무것도 영구적으로 저장되지 않습니다. 새로 고침하면 "새" 제품은 사라집니다. 이는 공유 공개 서비스의 설계 의도이며, 이해해야 할 가장 중요한 단일 제한 사항입니다. 문서에 명확한 속도 제한은 게시되어 있지 않지만, 모든 무료 공유 엔드포인트를 조심스럽게 다루고 부하 테스트를 수행하지 마십시오.
DummyJSON 외에 어떤 것이 있는지 더 자세히 알아보려면, 개발자를 위한 무료 API 목록이 다양한 카테고리의 옵션을 다룹니다.
DummyJSON vs JSONPlaceholder vs Reqres
DummyJSON만이 유일한 무료 가짜 REST API는 아닙니다. 가장 많이 비교되는 두 가지는 JSONPlaceholder와 Reqres입니다. 이들은 서로 겹치지만, 각각 다른 특징을 가지고 있습니다.
| 도구 | 가장 적합한 용도 | 리소스 | 인증 흐름 | 쓰기 영속성? |
|---|---|---|---|---|
| DummyJSON | 실제 전자상거래 스타일 데모 | 제품, 사용자, 장바구니, 게시물, 레시피 등 | 로그인 엔드포인트 + 베어러 토큰 | 아니요 (시뮬레이션됨) |
| JSONPlaceholder | 빠른 CRUD 튜토리얼, 최소한의 설정 | 게시물, 댓글, 사용자, 할 일, 앨범, 사진 | 없음 | 아니요 (시뮬레이션됨) |
| Reqres | 인증 및 요청/응답 흐름 데모 | 사용자, 회원가입/로그인 목업 | 목업 회원가입/로그인 | 아니요 (시뮬레이션됨) |
세 가지 모두 동일한 패턴을 따릅니다. 고정된, 주로 읽기 전용 데이터를 얻고, 쓰기 작업은 가짜이며, 반환되는 데이터의 형태를 변경할 수 없습니다. JSONPlaceholder는 내부적으로 json-server 위에서 실행되며, 이것이 데이터 모델이 매우 일반적인 이유입니다. DummyJSON은 실제 상점과 유사한 데이터를 원할 때 유리합니다. Reqres는 특히 로그인 화면을 데모할 때 유용합니다.
공식 소스를 즐겨찾기에 추가해 둘 가치가 있습니다: JSONPlaceholder 및 직접 호스팅하거나 코드를 읽고 싶다면 DummyJSON GitHub 저장소.
고정된 플레이스홀더 데이터가 충분하지 않을 때
프로젝트가 구체화되면 호스팅된 가짜 API는 빠르게 한계에 부딪힙니다. 다음과 같은 경우에 이를 느끼게 될 것입니다:
- 앱에 DummyJSON에는 없는 필드가 필요한 경우.
subscription_tier또는feature_flags객체가 스키마에 없으며 추가할 수도 없습니다. - 영구적인 쓰기 작업이 필요한 경우. 장바구니 흐름이나 관리자 패널을 구축하는 것은 레코드를 생성하고 다시 읽는 것을 의미합니다. 시뮬레이션된 쓰기는 이러한 루프를 깨뜨립니다.
- 오류 경로를 테스트해야 하는 경우. 실제 앱은
429,500또는 잘못된 페이로드를 처리해야 합니다. 고정 성공 API는 이러한 것을 요청 시 생성하지 않습니다. - 프런트엔드와 백엔드가 실제 서버가 배포되기 전에 일치하도록 데이터가 자체 OpenAPI 계약과 일치해야 하는 경우.
이것이 다른 사람의 가짜 API를 빌려 쓰는 것을 멈추고 자신의 것을 생성하기 시작하는 지점입니다. 동일한 백엔드 없는 편리함을 원하지만, 자신의 스키마, 필드 이름, 그리고 제어할 수 있는 응답을 가진 것을 원합니다.
Apidog로 자신만의 맞춤형 가짜 REST API를 구축하는 방법
Apidog는 API를 한 곳에서 설계, 테스트, 문서화 및 목업하는 API 플랫폼입니다. Apidog의 목 서버는 고정된 데이터를 넘어설 때 호스팅된 가짜 API를 대체하는 부분입니다. DummyJSON이 반환하는 것을 받아들이는 대신, 엔드포인트와 데이터 형태를 정의하면 Apidog가 일치하는 실제와 같은 응답을 생성합니다. 따라 하려면 Apidog를 다운로드하고 무료 프로젝트를 만드세요.
흐름은 다음과 같습니다:
1. 엔드포인트 및 스키마 정의. GET /products와 같은 엔드포인트를 생성하고 응답 필드(id, title, price, stock, category)를 설명합니다. 이 작업은 수동으로 수행하거나 기존 OpenAPI/Swagger 파일을 가져와 목업이 실제 계약과 일치하도록 할 수 있습니다.
2. 스마트 목업으로 데이터 생성. Apidog는 필드 이름과 유형을 읽은 다음 자동으로 합리적인 값을 생성합니다. email이라는 필드는 이메일을 반환하고, price는 숫자를 반환하며, createdAt은 날짜를 반환합니다. 수동으로 고정 데이터를 작성할 필요가 없습니다. 이전에 Faker를 사용해 본 경험이 있다면, 이것은 플랫폼에 내장된 동일한 아이디어입니다. OpenAPI 스키마에서 목업 데이터 생성 가이드는 스키마 기반 측면을 자세히 설명합니다.
3. 값 및 예외 사례 사용자 정의. price에 대한 특정 범위, status에 대한 고정된 열거형, 또는 오류 처리를 테스트하기 위한 의도적인 500 응답이 필요하신가요? 필드별 및 응답별로 규칙을 설정할 수 있습니다. 이는 정의를 직접 소유하기 때문에 호스팅된 API가 할 수 없는 부분입니다.
4. 목 서버 실행 및 호출. Apidog는 라이브 URL을 제공합니다. 이제 모든 필드와 상태 코드가 당신의 것이라는 점을 제외하고, DummyJSON을 가리키는 것과 똑같이 프런트엔드를 이 URL로 향하게 하세요:
curl https://<your-mock-host>/products?limit=5
목업은 스키마에서 생성되므로, API 사양이 변경되면 목업도 함께 변경됩니다. 가짜 데이터와 실제 계약은 결코 어긋나지 않습니다. 더 현실적이고 다양한 데이터 세트를 원한다면, 현실적인 API 테스트 데이터 생성의 접근 방식이 목업 기반 개발과 잘 어울립니다.

솔직한 장단점: DummyJSON은 구성할 것이 없으므로 일회성 데모에는 속도 면에서 우수합니다. Apidog는 자체 스키마, 영구적인 쓰기 작업, 제어 가능한 오류, 또는 출시할 실제 API와 동기화되는 목업이 필요할 때 강점을 발휘합니다.
자주 묻는 질문
DummyJSON은 무료로 사용할 수 있나요?
네. DummyJSON은 무료이며 API 키가 필요 없습니다. 브라우저, curl 또는 앱에서 직접 공개 엔드포인트를 호출할 수 있습니다. 다른 공유 무료 서비스와 마찬가지로, 프로토타입 제작 및 학습용이며, 프로덕션 트래픽이나 부하 테스트용이 아닙니다.
DummyJSON은 제가 생성하거나 업데이트한 데이터를 저장하나요?
아니요. POST, PUT, PATCH, DELETE 요청은 성공적으로 보이는 응답을 반환하지만, 서버에 아무것도 영구적으로 저장되지 않습니다. 다음 읽기에서는 원본 데이터가 반환됩니다. 실제로 유지되는 쓰기가 필요한 경우 자신만의 목업을 구축하세요. 목업 API 가이드는 시뮬레이션된 목업과 상태 저장 목업의 차이점을 설명합니다.
DummyJSON과 목 서버의 차이점은 무엇인가요?
DummyJSON은 모두가 공유하는 고정된 호스팅 데이터 세트입니다. Apidog의 목 서버와 같은 목 서버는 자신의 스키마에 대해 실행되며 정의한 데이터와 상태 코드를 반환합니다. 일반적인 데모에는 DummyJSON을 사용하고, 데이터가 자신의 API와 일치해야 할 때는 목 서버를 사용하세요.
눈에 띄는 플레이스홀더 대신 현실적인 데이터를 얻을 수 있나요?
네, 스키마에서 생성하면 가능합니다. 스키마 기반 도구는 필드 이름과 유형을 읽고 자동으로 신뢰할 수 있는 값을 생성하므로, email 필드는 이메일처럼 보이고 price는 가격처럼 보입니다. 이것이 팀이 고정된 가짜 API에서 자신만의 목업으로 전환하는 주된 이유입니다.
결론
DummyJSON은 훌륭하고 무료인 가짜 REST API입니다. 백엔드 코드를 한 줄도 작성하지 않고 실제와 같은 제품, 사용자, 장바구니에 대해 UI를 렌더링하는 가장 빠른 방법이며, 튜토리얼이나 빠른 프로토타입에는 비할 데 없이 좋습니다. 하지만 자체 필드, 영구적인 쓰기, 제어 가능한 오류 또는 API 계약을 추적하는 데이터가 필요할 때 한계가 드러납니다.
그 시점에 도달하면, 고정된 것을 빌려 쓰는 대신 자신만의 맞춤형 가짜 REST API를 생성하세요. Apidog는 스키마를 정의하고, 스키마에서 실제와 같은 데이터를 자동으로 목업하며, 출시할 API와 목업을 동기화 상태로 유지할 수 있게 해줍니다. 무료로 사용해보고 몇 분 만에 사양을 작동하는 목업으로 바꿔보세요.
