๐คทโ๏ธ ๋ณธ๋ก ์ ์์
ํ์ฌ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์์ ๊ฐ๋งน์ ํต๊ณ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ faker-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
300๋ช ์ด์์ ์ ์ ๋ฐ์ดํฐ์ ๋ง ๊ฑด ์ด์์ ๊ฒฐ์ ๊ธฐ๋ก๋ฐ์ดํฐ๊ฐ ํ์ํ๊ธฐ์ ์ง์ ์ฟผ๋ฆฌ, ์ฝ๋๋ก ์ค๋ณต๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ๋ค๋ ๊ฑฐ๋ ์์ฐ์ฑ๋ ๋จ์ด์ง๊ณ ํจ์จ์ ์ด์ง ์๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํด์ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ค faker-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ๊ฐ์ง ๋ฐ์ดํฐ ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค.
๐คทโ๏ธ faker-js๋?
faker-js ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ์์ฑํ ์ ์๊ฒ ๋์์ฃผ๋ javascript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๊ฐ๋ฐ, ํ ์คํธ, ๋ฒ ํ ํ ์คํธ ๊ณผ์ ์์ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ faker-js๋ฅผ ํ์ฉํด์ ๋๋์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
- ๋จ์ ํ ์คํธ
- ์ฑ๋ฅ ํ ์คํธ
- ๋ฐ๋ชจ ๊ตฌ์ถ
- ๊ฐ์ง ๋ฐ์ดํฐ ์๋ฒ ๊ตฌ์ถ
faker-js ํ๊ฒฝ ์ธํ
๋ธ๋ผ์ฐ์ or Node.js์์ faker-js๋ฅผ ์คํํ ์ ์๊ณ faker-js v8.0์๋ Node.js ๋ฒ์ 14 ์ด์์ด ํ์ํฉ๋๋ค.
faker-js ์ค์น
npm
npm install @faker-js/faker --save-dev
pnpm
pnpm add @faker-js/faker --save-dev
yarn
yarn add @faker-js/faker --dev
NPM ๊ณต์ ๋ฌธ์
https://www.npmjs.com/package/@faker-js/faker
๐คทโ๏ธ Node.js ์๋ฒ๋ฅผ ํ์ฉํ faker-js ์๋ฒ ๊ตฌ์ถ
Node.js, Faker.js๋ฅผ ํ์ฉํ ๋ฐ๋ชจ ์๋ฒ ๊ตฌ์ถ ์ ์ฒด ์ฝ๋
https://github.com/yoogukhyeon/node_faker_server
git ํ๋ก์ ํ๊ณ ์๋ก์ ์ง์์ ๊ณต์ ํด์^^
https://github.com/yoogukhyeon
ํ๋ก์ ํธ ํด๋ ์์ฑ ๋ฐ Node.js ์ธํ
mkdir faker-server
cd faker-server
npm init -y
ํ์ํ ํจํค์ง ์ค์น
npm install express @faker-js/faker nodemon
express ์๋ฒ ๊ตฌ์ถ ๋ฐ ์ฝ๋์์ฑ
const express = require('express');
const { faker } = require('@faker-js/faker');
const app = express();
const PORT = 3000;
app.get('/api/users', (req, res) => {
const users = Array.from({ length: 10 }).map(() => ({
id: faker.datatype.uuid(),
name: faker.name.fullName(),
email: faker.internet.email(),
address: faker.address.streetAddress(),
phone: faker.phone.number('###-###-####'),
avatar: faker.image.avatar()
}));
res.json(users);
});
app.listen(PORT, () => {
console.log(`Server is running on <http://localhost>:${PORT}`);
});
์๋ฒ ์คํ
node server.js
์๋ฒ ์คํ ํ์ ๋ธ๋ผ์ฐ์ , POSTMAN ๋๊ตฌ๋ก ๋ก์ปฌ ์๋ฒ์ธ http://localhost:3000/api/user๋ก faker-js ํ์ฉํด์ ๋ง๋ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ JSON ํ์์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
์ ์ฒด ์ฝ๋๋ ์์ git ์ ์ฅ์๋ก ํ์ธํด ์ฃผ์ธ์.
๋ค๊ตญ์ด ์ง์
const { faker, fakerKO } = require('@faker-js/faker');
fakerKO.string.uuid()
fakerKO.person.fullName()
๋ค๊ตญ์ด๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์์ด๊ฐ ์๋ ๋ค๋ฅธ ์ธ์ด๋ก ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋๋ faker.locale์ ์ํ๋ ์ธ์ด์ ๊ฐ์ ์ค์ ํด ์ฃผ๋ฉด ๋ฉ๋๋ค
faker-js ๊ณต์๋ฌธ์์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ปค์คํ ํด์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
https://fakerjs.dev/guide/usage.html
๐คทโ๏ธ ๋ง์ง๋ง์ผ๋ก
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๋ณด๋ฉด ๊ฐ์ง ๋ฐ์ดํฐ๊ฐ ํ์์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ค์ํ ๋ฐฉ๋ฒ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ง๋ง faker-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ๊ธฐ๋ณธ์ ์ธ ์๋ฒ๋ฅผ ์ ํ ํด๋๋ฉด ๊ฐ์ง ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋ ์กฐ๊ธ์ฉ ์ปค์คํ ํด์ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ค๊ณ ์๊ฐ์ด ๋ค์ด์ Node.js ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ์ด๋ฌํ ๊ฒฝํ์ ๊ณต์ ๋๋ฆฝ๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244
'Node.js & TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ ์คํฌ๋ฆฝํธ] typescript keyof ํน์ ๊ฐ์ฒด ์ ๋์จ ํ์ ๊ธฐ๋ฒ (40) | 2024.07.22 |
---|---|
[ํ์ ์คํฌ๋ฆฝํธ] ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ ๊ณผ ์ค๋ฌด์ ์ ์ฉํ Type Narrowing ๊ธฐ๋ฒ (49) | 2024.07.11 |
๊ฐ๋ฐ์๋ผ๋ฉด ์์์ผํ NVM ๊ฐ๋ & ์ค์น & ์ฌ์ฉ๋ฒ (1) | 2024.04.15 |
GraphQL Express Apollo-Server Mysql ์๋ฒ ๊ตฌ์ถ (12) | 2023.03.29 |
TypeScript type๊ณผ interface์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ (3) | 2022.11.18 |