이전에 프로젝트를 진행하면서, 직접 테스트 데이터를 넣는 것에 시간을 꽤쓰는 걸 느껴서 랜덤으로 테스트 데이터를 넣어주는 외부 API에 대해 공부해보려고합니다.
랜덤 데이터 생성 API
개발을 하다 보면 사용자 목록, 게시글 데이터 등이 필요할 때가 많습니다. 이때 일일이 "테스트1", "테스트2"라고 직접 치는 대신, 라이브러리를 통해 실제 사람 이름이나 존재하는 듯한 주소를 자동으로 생성하는 도구입니다.
- 현실적인 테스트: "asdf" 같은 데이터가 아니라 실제 이름과 이메일 형식을 사용하므로 UI 레이아웃이 깨지는지(글자 수 등)를 정확히 확인 가능합니다.
- 생산성 향상: 수백 명의 사용자 데이터를 수초 만에 만들 수 있습니다.
- 개인정보 보호: 실제 사용자 데이터를 로컬 환경으로 가져올 필요가 없어 보안 사고를 예방합니다.
어떨 때 쓰는가?
- 백엔드 API 미완성 시: 프론트엔드에서 API 응답 형태를 미리 흉내 내어 개발할 때.
- 데이터베이스 시딩(Seeding): DB를 구축한 뒤 초기 테스트용 데이터를 채워 넣을 때.
- 성능 테스트: 데이터가 1,000개, 10,000개일 때 리스트 렌더링 성능을 확인하고 싶을 때.
종류
- faker ✔️ https://fakerjs.dev/api/
- makaroo https://www.mockaroo.com/
| 구분 | Mockaroo (GUI 방식) | Faker.js (Code 방식) |
| 주요 사용처 | 초기 DB 구축용 CSV/SQL 생성 | 프론트엔드 목업, 단위 테스트, 동적 더미 생성 |
| 장점 | 코딩 없이 클릭만으로 대량 생성 가능 | 프로젝트 코드 내에서 즉시 실행 및 커스터마이징 가능 |
| 단점 | 데이터가 바뀔 때마다 다시 다운로드 필요 | 초기 설정 코드를 작성해야 함 |
여기서 저는 npm으로 쉽게 설치가 가능한 faker로 실습해보겠습니다.
왜 Faker.js를 선택했는가?
- API 명세서 기반 개발: 백엔드와 API 구조(JSON 형식)만 맞춘 뒤, Faker.js로 똑같은 모양의 데이터를 만들면 백엔드가 완성되지 않아도 프론트엔드는 멈추지 않고 개발을 진행할 수 있습니다.
- Git 협업의 편의성: Mockaroo로 만든 거대한 CSV 파일을 공유하는 것보다, Faker.js를 이용한 작은 JS 함수 하나를 공유하는 것이 코드 관리(Git) 측면에서 훨씬 가볍고 깔끔합니다.
- 다양한 상태 테스트: "플레이리스트가 0개일 때", "100개일 때" 등을 코드의 숫자 하나만 바꿔서 바로 테스트할 수 있습니다.

https://fakerjs.dev/api/ << 에서 사용할 수 있는 모듈 확인 가능
🚀 Fakerjs 실습
npm 설치
https://www.npmjs.com/package/@faker-js/faker
npm install --save-dev @faker-js/faker
--save-dev: 개발의존성 - 개발할 때에만 사용할 것!
- 기본 모듈 console로 확인해보기
const { faker } = require('@faker-js/faker');
console.log(faker.internet.email());
console.log(faker.internet.password());
console.log(faker.person.fullName());
console.log(faker.phone.number());

- query로 들어오는 num만큼 fake user 만들어 보내기
const express = require('express');
const app = express();
const { faker } = require('@faker-js/faker');
//localhost:5555/fake/users?num=10
app.get('/fake/users/', function(req, res){
const {num} =req.query;
let users = [];
let index = 1;
while (index <= num){
users.push({
email : faker.internet.email(),
password : faker.internet.password(),
fullName : faker.person.fullName(),
contact : faker.phone.number()
});
index++;
}
res.status(200).json(users);
})
//
app.listen(5555);

- 한국어 설정
Faker.js는 다국어를 지원합니다. 한국어 데이터를 원한다면 다음과 같이 설정할 수 있습니다.
const {fakerKO: faker} = require('@faker-js/faker');

'BE > Node.js' 카테고리의 다른 글
| [Swagger] Swagger 알아보고 기존 프로젝트에 적용해보자. (0) | 2026.02.17 |
|---|---|
| [Node.js] express-generator로 Express 구조 해부해보기 (0) | 2026.01.23 |