JSONPlaceholder로 몇 분 만에 모의 REST API 만드는 방법

json-server를 사용하여 JSON 파일을 몇 초 만에 완전한 REST API로 만들고, 별도 설정 없이 JSONPlaceholder를 호출하며, 스키마 인식 목(mock)으로 전환할 시점을 알아보세요.

INEZA Felin-Michel

INEZA Felin-Michel

17 June 2026

JSONPlaceholder로 몇 분 만에 모의 REST API 만드는 방법

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

프론트엔드를 구축하고 있는데 백엔드가 아직 준비되지 않았습니다. 기다리는 대신 계속 코딩할 수 있도록 지금 당장 GET, POST, PUT, DELETE가 작동하는 현실적인 JSON을 반환하는 REST API가 필요합니다.

바로 이것이 json-server의 목적입니다. 단일 JSON 파일을 가리키면 몇 초 만에 전체 REST API를 제공하며, 백엔드 코드가 필요 없습니다. 그 형제 격인 JSONPlaceholder는 한 걸음 더 나아가, 아무것도 설치할 필요 없이 호출할 수 있는 호스팅된 가짜 API입니다. 이 가이드는 이 둘을 사용하는 방법, 한계점, 그리고 Apidog에서 스키마를 인식하는 목(mock)으로 전환해야 하는 시기를 보여줍니다.

버튼

엔드포인트를 가짜로 만드는 것에 대한 더 큰 그림은 목(mock) API란 무엇인지를 참조하세요. 여기서는 개발자들이 가장 먼저 사용하는 두 가지 도구에 중점을 둡니다.

json-server란 무엇인가요?

json-server는 일반 JSON 파일을 실제 REST API로 변환하는 오픈 소스 npm 도구입니다. 리소스를 설명하는 `db.json` 파일을 작성하고 하나의 명령을 실행하면 해당 파일에 의해 지원되는 표준 CRUD 라우트를 얻을 수 있습니다. 쓰기 요청은 실제로 파일을 수정하므로 세션 중 요청 간에 데이터가 유지됩니다.

데이터베이스를 설정하거나 서버 코드를 작성할 필요 없이 프로토타이핑, 프론트엔드 개발, 데모 및 테스트를 위한 작동하는 API를 얻는 가장 빠른 방법입니다. 이 프로젝트는 GitHub에 있으며 정확히 이 작업을 위해 널리 사용됩니다.

json-server 설치 및 실행

npm에서 설치하세요:

npm install json-server

프로젝트에 `db.json` 파일을 생성합니다. 최상위 배열 키는 컬렉션 라우트가 되고, 최상위 객체는 단일 리소스 라우트가 됩니다:

{
  "posts": [
    { "id": "1", "title": "First post", "views": 100 },
    { "id": "2", "title": "Second post", "views": 250 }
  ],
  "comments": [
    { "id": "1", "text": "Nice work", "postId": "1" }
  ],
  "profile": {
    "name": "apidog"
  }
}

서버를 시작합니다:

npx json-server db.json

기본적으로 `http://localhost:3000`에서 실행됩니다. 끝입니다. 이제 라이브 API를 갖게 되었습니다.

버전 참고: json-server v1에서는 이전 `--watch` 플래그가 사라졌으므로 `npx json-server db.json`이 현재 명령입니다. 구형 0.x 버전을 사용 중이라면 튜토리얼에서 여전히 `json-server --watch db.json`을 볼 수 있습니다.

기본으로 제공되는 라우트

위의 `db.json` 파일로부터 json-server는 완전한 REST 인터페이스를 생성합니다.

posts 배열의 경우:

GET    /posts
GET    /posts/:id
POST   /posts
PUT    /posts/:id
PATCH  /posts/:id
DELETE /posts/:id

profile 객체의 경우:

GET   /profile
PUT   /profile
PATCH /profile

쿼리 기능도 내장되어 있습니다. v1 문법은 조건에 콜론을 사용합니다:

GET /posts?views:gt=100       # 조회수가 100보다 큰 경우
GET /posts?views:lte=50       # 조회수가 50보다 작거나 같은 경우
GET /posts?_sort=-views       # 조회수 기준으로 내림차순 정렬
GET /posts?_page=1&_per_page=25   # 페이지네이션
GET /posts?_embed=comments    # 관련 댓글 포함

사용 가능한 연산자에는 `lt`, `lte`, `gt`, `gte`, `eq`, `ne`, `in`, `contains`, `startsWith`, `endsWith`가 있습니다. 단일 파일과 하나의 명령으로 이 정도의 API는 정말 대단합니다.

JSONPlaceholder: 설정이 필요 없는 가짜 API

때로는 도구를 설치하는 것조차 원치 않을 때가 있습니다. 동일한 저자가 만든 JSONPlaceholder는 jsonplaceholder.typicode.com에서 호스팅되는 무료 가짜 REST API입니다. 코드에서 직접 호출할 수 있습니다:

curl https://jsonplaceholder.typicode.com/posts/1
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident",
  "body": "quia et suscipit..."
}

여섯 가지 미리 준비된 리소스를 제공합니다:

POST, PUT, PATCH, DELETE도 허용하지만, 여기서 주의할 점은 쓰기 작업이 가짜라는 것입니다. API는 변경이 발생한 것처럼 실제와 같은 응답을 반환하지만, 아무것도 저장되지 않습니다. 새로고침하면 "새로운" 게시물은 사라집니다. 이는 예측 가능한 데이터를 사용하여 UI 코드를 연결하는 데는 좋지만, 실제 백엔드는 아닙니다.

json-server vs JSONPlaceholder

json-server JSONPlaceholder
설정 npm 패키지 설치, db.json 작성 없음, URL 호출만
실행 위치 로컬, 내 컴퓨터 호스팅, 공개
사용자 정의 데이터 예, 사용자 정의 리소스 아니요, 고정된 리소스
쓰기 유지 예, db.json에 저장 아니요, 가짜 (mocked)
가장 적합한 용도 자신만의 형태로 프로토타이핑 빠른 데모 및 학습

당장 데이터가 필요하고 어떤 데이터인지는 상관없다면 JSONPlaceholder를 사용하세요. 자신만의 리소스와 영구적인 쓰기 작업이 필요하다면 json-server를 사용하세요.

이 도구들이 한계에 부딪히는 지점

json-server와 JSONPlaceholder는 한 가지 면에서 탁월합니다: JSON을 빠르게 제공하는 것입니다. 하지만 프로젝트가 단독 프로토타입 단계를 넘어서 성장하기 시작하면 문제가 발생합니다.

단일 파일 방식에서 벗어났다면, REST 엔드포인트 목업 도구무료 및 저렴한 API 목 서버에 대한 저희의 요약 기사가 다음 단계의 도구들을 다루고 있으며, 온라인 API 목업 도구 비교는 호스팅된 옵션들을 나란히 비교합니다.

실제 목 서버로 전환해야 할 때

스키마를 인식하는 목(mock)은 위의 모든 제한 사항을 해결합니다. 바로 여기서 Apidog가 json-server의 역할을 이어받습니다.

Apidog에서 동일한 API를 목(mock)하기

  1. Apidog를 다운로드하고 프로젝트를 생성하거나 엽니다.
  2. 예를 들어 `GET /posts`와 같은 엔드포인트를 추가하고 응답 스키마를 정의합니다 (또는 기존 OpenAPI 파일을 가져옵니다).
  3. Apidog는 목(mock) URL을 생성하고 즉시 모든 필드에 대해 스마트하고 실제와 같은 데이터를 반환하기 시작합니다.
  4. 특정 값이 필요하세요? 필드별 목(mock) 규칙을 추가하여 출력을 고정하세요.
  5. 목(mock) URL을 팀과 공유하거나 테스트 스위트 및 CI에 넣으세요.

json-server의 "몇 분 안에 API" 속도를 유지하면서 유효성 검사, 동적 데이터, 그리고 모두가 접근할 수 있는 URL을 얻을 수 있습니다.

자주 묻는 질문

json-server는 무료인가요? 네, 오픈 소스이며 무료로 사용할 수 있습니다. JSONPlaceholder도 무료입니다.

json-server는 데이터를 유지하나요? 네. POST, PUT, PATCH, DELETE는 `db.json` 파일에 다시 쓰기 때문에 서버가 실행되는 동안 요청 간에 변경 사항이 유지됩니다. JSONPlaceholder는 쓰기 작업을 가짜로 처리하며 아무것도 저장하지 않습니다.

json-server를 프로덕션에서 사용할 수 있나요? 아니요. 프로토타이핑 및 테스트용으로 제작되었습니다. 실제 유효성 검사, 인증 또는 확장성 기능이 없습니다.

json-server와 Apidog 같은 목 서버의 차이점은 무엇인가요? json-server는 정적 파일을 API로 제공합니다. Apidog는 API 스키마로부터 목(mock)을 생성하고, 동적이고 실제와 같은 데이터를 반환하며, 공유 가능한 클라우드 URL을 노출합니다. 맥락 이해를 위해 목(mock) API란 무엇인지REST 목업 도구 요약을 참조하세요.

정적 행 대신 실제와 같은 가짜 데이터를 얻으려면 어떻게 해야 하나요? 생성기를 사용하세요. 테스트 데이터 생성기는 다양하고 실제와 같은 레코드를 생성하며, Apidog의 목(mock)은 스키마로부터 이를 자동으로 수행합니다.

요약

json-server는 JSON 파일을 하나의 명령으로 작동하는 REST API로 변환하며, JSONPlaceholder는 설정 없이 호스팅된 가짜 API를 제공합니다. 둘 다 막힌 부분을 빠르게 해결하는 데 완벽합니다. 스키마 유효성 검사, 동적 데이터, 영구적인 상태, 그리고 팀이 실제로 접근할 수 있는 URL이 필요해지면 단일 파일로는 충분하지 않습니다. 바로 이 지점에서 Apidog의 목(mock) 서버가 역할을 이어받습니다. Apidog를 다운로드하고 사양을 가져오면 첫 번째 요청부터 목(mock)이 실제 계약과 일치합니다.

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요