Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] Faker를 활용하여 랜덤 데이터 사용해보기 본문

웹 풀스택

[Node.js] Faker를 활용하여 랜덤 데이터 사용해보기

kevinmj12 2025. 3. 26. 17:23

https://fakerjs.dev/

 

Faker

Faker Generate massive amounts of fake (but realistic) data for testing and development.

fakerjs.dev

다음 사이트는 가상의 랜덤한 데이터 API를 제공해주는 사이트이다.

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

 

https://mockaroo.com/

이외에도 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);
});