liminfo

API Mock Generator

Service Worker 기반 브라우저 내 Mock REST API 도구

엔드포인트 정의

메서드경로상태지연 (ms)응답 본문

생성된 코드

const express = require('express');
const app = express();
app.use(express.json());

app.get('/api/users', (req, res) => {
  res.status(200).json([  {    "id": 1,    "name": "Alice"  },  {    "id": 2,    "name": "Bob"  }]);
});

app.post('/api/users', (req, res) => {
  setTimeout(() => {
    res.status(201).json({  "id": 3,  "name": "Charlie"});
  }, 100);
});

app.listen(3001, () => console.log('Mock server on :3001'));

API Mock Generator 소개

API Mock 서버 생성기는 REST API 엔드포인트를 정의하면 Express 또는 Fastify 기반의 즉시 실행 가능한 Node.js 서버 코드를 생성합니다. 각 엔드포인트에 HTTP 메서드(GET, POST, PUT, PATCH, DELETE), URL 경로, 응답 상태 코드, JSON 응답 본문, 그리고 네트워크 지연을 시뮬레이션하기 위한 밀리초 단위의 딜레이를 설정할 수 있습니다.

프론트엔드 개발자들은 실제 백엔드가 아직 준비되지 않은 상황에서 UI 개발을 진행하기 위해 이 도구를 사용합니다. QA 엔지니어는 항상 동일한 응답을 반환하는 결정론적 테스트 픽스처를 만드는 데 활용합니다. 생성된 코드는 선택한 프레임워크만 의존성으로 가지며 포트 3001에서 로컬 목 서버를 실행합니다.

도구는 프로젝트 파일에 그대로 붙여넣어 node server.js로 실행 가능한 깔끔한 Node.js 코드를 생성합니다. Express와 Fastify 출력 전환은 클릭 한 번이며, 엔드포인트를 추가하거나 삭제하면 생성 코드가 실시간으로 업데이트됩니다. 모든 코드 생성은 브라우저 내에서 이루어집니다.

주요 기능

  • 메서드, 경로, 상태 코드, 본문이 독립적인 여러 REST 엔드포인트 정의
  • Express(CommonJS) 또는 Fastify 서버 코드 원클릭 생성
  • 네트워크 지연 시뮬레이션을 위한 엔드포인트별 응답 딜레이 설정
  • GET, POST, PUT, PATCH, DELETE HTTP 메서드 지원
  • 엔드포인트별 JSON 응답 본문 편집기와 실시간 코드 미리보기
  • 완성된 서버 코드 원클릭 클립보드 복사
  • 엔드포인트 동적 추가/삭제 — 코드 즉시 업데이트
  • 100% 클라이언트 사이드 생성 — 서버 업로드 없음, 계정 불필요

자주 묻는 질문

API 목 서버란 무엇인가요?

API 목 서버는 특정 HTTP 요청에 대해 미리 정의된 응답을 반환하는 경량 서버로, 실제 백엔드 API를 시뮬레이션합니다. 프론트엔드 팀이 백엔드 서비스와 독립적으로 UI 컴포넌트를 개발하고 테스트할 수 있도록 제어된 예측 가능한 데이터를 제공합니다.

생성된 목 서버를 어떻게 실행하나요?

생성된 코드를 복사하여 파일(예: mock-server.js)에 붙여넣은 후, 터미널에서 npm install express(또는 fastify)를 실행하고 node mock-server.js를 입력하세요. 서버가 포트 3001에서 시작되어 정의한 엔드포인트에 응답합니다.

응답 딜레이 설정은 무엇을 위한 건가요?

딜레이 필드(밀리초)는 응답 주변에 setTimeout을 추가하여 네트워크 지연이나 느린 데이터베이스 쿼리를 시뮬레이션합니다. 프론트엔드 코드에서 로딩 상태, 스피너, 타임아웃 처리를 실제적인 타이밍으로 테스트할 수 있습니다.

200이 아닌 상태 코드를 반환하는 엔드포인트도 정의할 수 있나요?

네. 각 엔드포인트에는 독립적인 상태 코드 필드가 있습니다. POST 생성 응답에는 201, 찾을 수 없음 시나리오에는 404, 인증 오류 테스트에는 401, 서버 오류 테스트에는 500 등 유효한 HTTP 상태 코드를 자유롭게 설정할 수 있습니다.

Express와 Fastify 출력의 차이는 무엇인가요?

Express 출력은 app.get/post 등과 res.status().json()을 사용하는 전통적인 CommonJS require() 방식입니다. Fastify 출력은 reply.code().send() API와 async/await를 사용합니다. 두 서버 모두 포트 3001에서 실행됩니다. 프로젝트에서 이미 사용 중이거나 선호하는 프레임워크를 선택하세요.

Jest나 Cypress 같은 테스트 도구와 함께 사용할 수 있나요?

네. 테스트 스위트 실행 전에 생성된 목 서버를 시작하고, fetch/axios 호출을 http://localhost:3001로 지정하면 설정한 정확한 응답을 받을 수 있습니다. 네트워크 의존성 없이 결정론적인 통합 테스트가 가능합니다.

이 도구는 요청 본문 유효성 검사를 지원하나요?

생성된 목 서버는 요청 본문 내용에 관계없이 설정된 응답을 반환합니다. 완전한 계약 유효성 검사가 아닌 간단한 목킹을 위해 설계되었습니다. 스키마 유효성 검사가 필요하다면 생성된 코드에 Zod나 Joi 같은 라이브러리를 추가하세요.

생성된 코드를 프로덕션에 사용해도 되나요?

생성된 코드는 로컬 개발 및 테스트 목킹용으로 설계되었으며 프로덕션 배포에는 적합하지 않습니다. 인증, HTTPS, 레이트 리미팅, 오류 처리 미들웨어가 포함되어 있지 않습니다. 개발 보조 도구로 활용하고 프로덕션 전에 실제 백엔드로 교체하세요.