사고쳤어요
[Node.js] Faker를 활용하여 랜덤 데이터 사용해보기 본문
Faker
Faker Generate massive amounts of fake (but realistic) data for testing and development.
fakerjs.dev
다음 사이트는 가상의 랜덤한 데이터 API를 제공해주는 사이트이다.

사이트에 접속하면 다음과 같이 다양한 종류의 랜덤 데이터가 있는 것을 볼 수 있다.

이외에도 mockaroo와 같은 사이트에서도 랜덤 데이터를 제공해준다.
fakerjs 모듈 설치하기
https://www.npmjs.com/package/@faker-js/faker
@faker-js/faker
Generate massive amounts of fake contextual data. Latest version: 9.6.0, last published: 19 days ago. Start using @faker-js/faker in your project by running `npm i @faker-js/faker`. There are 1609 other projects in the npm registry using @faker-js/faker.
www.npmjs.com
친절하게도 fakerjs는 라이브러리를 통해 편리하게 사용할 수 있도록 기능을 제공해준다.
아래 명령어를 통해 설치를 할 수 있다.
npm install --save-dev @faker-js/faker
그리고 예제 코드는 다음과 같다.
// ESM
// import { faker } from '@faker-js/faker';
// CJS
const { faker } = require('@faker-js/faker');
export function createRandomUser() {
return {
userId: faker.string.uuid(),
username: faker.internet.username(), // before version 9.1.0, use userName()
email: faker.internet.email(),
avatar: faker.image.avatar(),
password: faker.internet.password(),
birthdate: faker.date.birthdate(),
registeredAt: faker.date.past(),
};
}
export const users = faker.helpers.multiple(createRandomUser, {
count: 5,
});
그리고 users를 출력하면 다음과 같이 랜덤 데이터가 잘 생성되는 것을 볼 수 있다.

랜덤 데이터 제공 API 만들기
const { faker } = require("@faker-js/faker");
const express = require("express");
const app = express();
app.get("/fake/users", (req, res) => {
res.status(200).json({
email: faker.internet.email(),
password: faker.internet.password(),
fullName: faker.person.fullName(),
contact: faker.phone.number(),
});
});
app.listen(3000);

app.get("/fake/users/:userCount", (req, res) => {
let { userCount } = req.params;
userCount = parseInt(userCount);
let rtnArr = [];
while (userCount--) {
let user = {
email: faker.internet.email(),
password: faker.internet.password(),
fullName: faker.person.fullName(),
contact: faker.phone.number(),
};
rtnArr.push(user);
}
res.status(200).json(rtnArr);
});

'웹 풀스택' 카테고리의 다른 글
| 타입스크립트의 특징과 타입 명시 (0) | 2025.04.04 |
|---|---|
| JavaScript의 함수와 일급객체 (0) | 2025.03.27 |
| [Node.js] try-catch로 JWT 에러 예외 처리하기 (0) | 2025.03.24 |
| [도서 쇼핑몰] Node.j JWT 적용하기 (0) | 2025.03.24 |
| [Node.js] Promise와 비동기 처리 (0) | 2025.03.19 |