From b06607abacadb53dc923dad6d2fedf8baa609e68 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Fri, 17 Nov 2023 02:11:55 +0900 Subject: [PATCH 01/10] =?UTF-8?q?ADD=20:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 30 ++++++++++ src/controllers/allowanceController.js | 83 ++++++++++++++++++++++++++ src/models/allowanceDao.js | 82 +++++++++++++++++++++++++ src/models/userDao.js | 43 +++++++++++++ src/models/usersFamilyDao.js | 32 ++++++++++ src/routes/allowanceRouter.js | 12 ++++ src/routes/index.js | 8 +++ src/services/allowanceService.js | 34 +++++++++++ src/services/usersFamilyService.js | 32 ++++++++++ src/utils/auth.js | 28 +++++++++ src/utils/dataSource.js | 24 ++++++++ src/utils/error.js | 9 +++ 12 files changed, 417 insertions(+) create mode 100644 app.js create mode 100644 src/controllers/allowanceController.js create mode 100644 src/models/allowanceDao.js create mode 100644 src/models/userDao.js create mode 100644 src/models/usersFamilyDao.js create mode 100644 src/routes/allowanceRouter.js create mode 100644 src/routes/index.js create mode 100644 src/services/allowanceService.js create mode 100644 src/services/usersFamilyService.js create mode 100644 src/utils/auth.js create mode 100644 src/utils/dataSource.js create mode 100644 src/utils/error.js diff --git a/app.js b/app.js new file mode 100644 index 0000000..c09f281 --- /dev/null +++ b/app.js @@ -0,0 +1,30 @@ +const http = require('http'); +const express = require('express'); +const cors = require('cors'); +const dotenv = require('dotenv'); +const routes = require('./src/routes'); +const app = express() + +dotenv.config() +app.use(cors()) +app.use(express.json()) +app.use(routes) + +app.get('/ping',(req,res) => { + res.status(200).json({ + message: 'pong' + }) +}) + +const server = http.createServer(app) + +const start = async () => { + try { + server.listen(process.env.TYPEORM_SERVER_PORT, () => console.log( + `Server is listening on ${process.env.TYPEORM_SERVER_PORT}`)) + } catch (err) { + console.error(err) + } +} + +start() \ No newline at end of file diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js new file mode 100644 index 0000000..c4c83a2 --- /dev/null +++ b/src/controllers/allowanceController.js @@ -0,0 +1,83 @@ +const allowanceService = require('../services/allowanceService'); +const usersFamilyService = require('../services/usersFamilyService'); +const error = require('../utils/error'); + +const postAllowance = async (req, res) => { // 관리자만 가능 + try { + const { familyId, roleId } = req.userData; + if (!familyId || !roleId) { + error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); + } + const { userName, amount, year, month } = req.body; + if (!userName ||!amount || !year || !month) { + error.throwErr(400, 'KEY_ERROR'); + } + const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); + await allowanceService.postAllowance(userId, amount, year, month); + return res.status(200).json({message: 'POST_SUCCESS'}); + } catch (err) { + console.error(err); + return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); + } +} + +const getAllowances = async (req, res) => { // 일반 유저도 가능 + try { + const { familyId } = req.userData; + if (!familyId) { + error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY'); + } + const familyUsersIds = await usersFamilyService.getFamilyUsersIds(familyId); + const allowances = await allowanceService.getAllowances(familyUsersIds); + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); + } catch(err) { + console.error(err); + return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); + } +} + +const updateAllowance = async (req, res) => { // 관리자만 가능 + try { + const { familyId, roleId } = req.userData; + if (!familyId || !roleId) { + error.throwErr(401, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); + } + const { userName, amount, year, month } = req.body; + if (!userName ||!amount || !year || !month) { + error.throwErr(400, 'KEY_ERROR'); + } + const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); // 삭제 대상 userName을 가진 users.id입니다 + await allowanceService.updateAllowance(userId, amount, year, month); + return res.status(200).json({message: 'PUT_SUCCESS'}); + } catch (err) { + console.error(err); + return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); + } +} + +const deleteAllowance = async (req, res) => { // 관리자만 가능 + try { + const { familyId, roleId } = req.userData; + if (!familyId || !roleId) { + error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); + } + const { userName, year, month } = req.body; + console.log(userName, year, month); + if (!userName || !year || !month) { + error.throwErr(400, 'KEY_ERROR'); + } + const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); + await allowanceService.deleteAllowance(userId, year, month); + return res.status(200).json({message: 'DELETE_SUCCESS'}); + } catch (err) { + console.error(err); + return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); + } +} + +module.exports = { + postAllowance, + getAllowances, + updateAllowance, + deleteAllowance +} \ No newline at end of file diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js new file mode 100644 index 0000000..8708c8f --- /dev/null +++ b/src/models/allowanceDao.js @@ -0,0 +1,82 @@ +const { appDataSource } = require('../utils/dataSource'); +const error = require('../utils/error'); + +const postAllowance = async (userId, amount, year, month) => { + const result = await appDataSource.query( + ` + INSERT IGNORE INTO allowances(user_id, amount, year, month) + VALUES(?,?,?,?) + `, + [userId, amount, year, month] + ) + if (result.affectedRows === 0) { + error.throwErr(500, 'ALLOWANCE_ALREADY_EXISTS'); + } + return result; +} + +const getAllowance = async (userId) => { // 최신 순 + return await appDataSource.query( + ` + SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + FROM allowances + JOIN users + ON allowances.user_id = users.id + WHERE user_id = ? + ORDER BY year DESC, month DESC + `, + [userId] + ) +} + + +const updateAllowances = async (userId, amount, year, month) => { + return await appDataSource.query( + ` + UPDATE allowances + SET amount = ? + WHERE user_id = ? + AND year = ? + AND month = ? + `, + [amount, userId, year, month] + ) +} + +const getAllowanceByYearMonth = async (userId, year, month) => { + return await appDataSource.query( + ` + SELECT id, user_id, amount, year, month + FROM allowances + WHERE user_id = ? + AND year = ? + AND month = ? + `, + [userId, year, month] + ) +} + +const deleteAllowance = async (userId, year, month) => { + console.log(userId, year, month) + const result = await appDataSource.query( + ` + DELETE FROM allowances + WHERE user_id = ? + AND year = ? + AND month = ? + `, + [userId, year, month] + ) + if (result.affectedRows === 0) { + error.throwErr(500, 'NOT_EXISTING_OR_DELETED_ALLOWANCE'); + } + return result; +} + +module.exports = { + postAllowance, + getAllowance, + updateAllowances, + getAllowanceByYearMonth, + deleteAllowance +} \ No newline at end of file diff --git a/src/models/userDao.js b/src/models/userDao.js new file mode 100644 index 0000000..dc7c6f7 --- /dev/null +++ b/src/models/userDao.js @@ -0,0 +1,43 @@ +const { appDataSource } = require('../utils/dataSource'); +const getUserByEmail = async(email) => { + return await appDataSource.query( + ` + SELECT * + FROM users + WHERE email = ? + `, + [email] + ) +}; + +const getUserInformationById = async( userId ) => { + const [ result ] = await appDataSource.query( + ` + SELECT + id AS userId + FROM users + WHERE id = ? + `, + [ userId ]) + const [ result1 ] = await appDataSource.query( + ` + SELECT + u.id AS userId, + uf.family_id AS familyId, + role_id AS roleId + FROM users u + JOIN users_families uf ON u.id = uf.user_id + WHERE u.id = ? + `, + [ userId ]) + if (!result1) { + return result; + } else { + return result1; + } +} + +module.exports = { + getUserByEmail, + getUserInformationById +} \ No newline at end of file diff --git a/src/models/usersFamilyDao.js b/src/models/usersFamilyDao.js new file mode 100644 index 0000000..e248e05 --- /dev/null +++ b/src/models/usersFamilyDao.js @@ -0,0 +1,32 @@ +const { appDataSource } = require('../utils/dataSource'); +const error = require('../utils/error'); + +const getFamilyId = async (userId) => { + const result = await appDataSource.query( + ` + SELECT family_id as familyId + FROM users_families + WHERE user_id = ? + `, + [userId] + ) + return result[0]['familyId']; +} + +const getUsersByFamilyId = async (familyId) => { // JOIN 사용해서 users 에도 접근합니다. + return await appDataSource.query( + ` + SELECT users_families.user_id as 'id', users.name as 'option' + FROM users_families + JOIN USERS + ON users_families.user_id = users.id + WHERE users_families.family_id = ? + `, + [familyId] + ) +} + +module.exports = { + getFamilyId, + getUsersByFamilyId +} \ No newline at end of file diff --git a/src/routes/allowanceRouter.js b/src/routes/allowanceRouter.js new file mode 100644 index 0000000..47a961c --- /dev/null +++ b/src/routes/allowanceRouter.js @@ -0,0 +1,12 @@ +const express = require('express'); +const router = express.Router(); + +const { loginRequired } = require('../utils/auth'); +const allowanceController = require("../controllers/allowanceController"); + +router.get('/', loginRequired, allowanceController.getAllowances); +router.post('/', loginRequired, allowanceController.postAllowance); +router.put('/', loginRequired, allowanceController.updateAllowance); +router.delete('/', loginRequired, allowanceController.deleteAllowance); + +module.exports.router = router; \ No newline at end of file diff --git a/src/routes/index.js b/src/routes/index.js new file mode 100644 index 0000000..bcd58a4 --- /dev/null +++ b/src/routes/index.js @@ -0,0 +1,8 @@ +const express = require("express"); +const router = express.Router(); + +const allowanceRouter = require("./allowanceRouter"); + +router.use('/allowance', allowanceRouter.router) + +module.exports = router; \ No newline at end of file diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js new file mode 100644 index 0000000..df41855 --- /dev/null +++ b/src/services/allowanceService.js @@ -0,0 +1,34 @@ +const allowanceDao = require('../models/allowanceDao'); + +const postAllowance = async (userId, amount, year, month) => { + return await allowanceDao.postAllowance(userId, amount, year, month); +} + +const getAllowances = async (familyUserIds) => { + let result = []; + for (let familyUserId in familyUserIds) { + let allowances = await allowanceDao.getAllowance(familyUserId); + result = result.concat(allowances); + } + return result; +} + +const updateAllowance = async (userId, amount, year, month) => { + return await allowanceDao.updateAllowances(userId, amount, year, month); +} + +const getAllowancesByYearMonth = async (userId, year, month) => { // Dao 재탕으로 인해 쓰임이 없어졌는데 연월별 용돈 검색 떄 활용할 수 있을 것 같아 두겠습니다. + return await allowanceDao.getAllowanceByYearMonth(userId, year, month); +} + +const deleteAllowance = async (userId, year, month) => { + return await allowanceDao.deleteAllowance(userId, year, month); +} + + +module.exports = { + postAllowance, + getAllowances, + updateAllowance, + getAllowancesByYearMonth, + deleteAllowance } \ No newline at end of file diff --git a/src/services/usersFamilyService.js b/src/services/usersFamilyService.js new file mode 100644 index 0000000..884836f --- /dev/null +++ b/src/services/usersFamilyService.js @@ -0,0 +1,32 @@ +const usersFamilyDao = require('../models/usersFamilyDao'); + +const getUserIdByFamilyId = async (familyId) => { + return await usersFamilyDao.getUsersByFamilyId(familyId); +} + +const getAuthenticUserId = async (familyId, userName) => { + const familyUsers = await usersFamilyDao.getUsersByFamilyId(familyId); + let userId = 0; + for (let i in familyUsers) { // 가족 구성원 중 용돈을 주고자 하는 이름을 이용해서 users.id를 찾습니다. + if (await familyUsers[i]['option'] === userName) { + userId += familyUsers[i].id; + return userId; + } + } + +} + +const getFamilyUsersIds = async (familyId) => { + const familyUsers = await usersFamilyDao.getUsersByFamilyId(familyId); + let userIds = []; + for (let i in await familyUsers) { + userIds.push(await familyUsers[i].id); + } + return userIds; +} + +module.exports = { + getUserIdByFamilyId, + getAuthenticUserId, + getFamilyUsersIds +} \ No newline at end of file diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 0000000..341ae08 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,28 @@ +const jwt = require('jsonwebtoken'); +const userDao = require('../models/userDao'); +const error = require('./error'); +const secretKey = process.env.SECRET_KEY + +const loginRequired = async (req, res, next) => { + try { + const accessToken = req.headers.authorization.substr(7); + if (!accessToken) { + error.throwErr(401, 'NEEDED_ACCESS_TOKEN'); + } + const payload = jwt.verify(accessToken, secretKey); + const [ user ] = await userDao.getUserByEmail(payload.email); + if (!user) { + error.throwErr(404, 'USER_DOES_NOT_EXIST'); + } + req.user = user; + const userInfo = await userDao.getUserInformationById( user.id ); + req.userData = userInfo; + next(); + } catch(err) { + res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}) + } +} + +module.exports = { + loginRequired +} \ No newline at end of file diff --git a/src/utils/dataSource.js b/src/utils/dataSource.js new file mode 100644 index 0000000..e3b0944 --- /dev/null +++ b/src/utils/dataSource.js @@ -0,0 +1,24 @@ +const { DataSource } = require('typeorm'); +const dotenv = require('dotenv'); +dotenv.config(); + +const appDataSource = new DataSource({ + type : process.env.TYPEORM_CONNECTION, + host: process.env.TYPEORM_HOST, + port: process.env.TYPEORM_PORT, + username: process.env.TYPEORM_USERNAME, + password: process.env.TYPEORM_PASSWORD, + database: process.env.TYPEORM_DATABASE +}) + +appDataSource.initialize() + .then(() => { + console.log('Data Source has been initialized!'); + }) + .catch((err) => { + console.error('Error occured during Data Source initialization', err); + }) + +module.exports = { + appDataSource +} \ No newline at end of file diff --git a/src/utils/error.js b/src/utils/error.js new file mode 100644 index 0000000..d797f9e --- /dev/null +++ b/src/utils/error.js @@ -0,0 +1,9 @@ +const throwErr = (code, message) => { + const error = new Error(message); + error.status = code; + throw error; +}; + +module.exports = { + throwErr +} \ No newline at end of file From c707288cca197f59b8bdc9ad7ac48875457348be Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Fri, 17 Nov 2023 18:53:26 +0900 Subject: [PATCH 02/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EB=93=B1=EB=A1=9D=20=EC=88=98=EC=A0=95=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=20id=EB=A5=BC=20=EC=88=98=EC=A0=95,=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EB=8C=80=EC=83=81=EC=9D=98=20=EC=A7=80=ED=91=9C?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95=20=EC=82=AD=EC=A0=9C=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=ED=95=A8=EC=88=98=20M.C,=20service=20layer=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20controller=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=20=EC=A3=BC=EC=84=9D=20=EC=B2=98=EB=A6=AC,=20amoun?= =?UTF-8?q?t=20=3D>=20allowance=EB=A1=9C=20key=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 51 ++++++++++++++++++++++---- src/models/allowanceDao.js | 43 ++++++++++++++++++---- src/services/allowanceService.js | 20 +++++++--- 3 files changed, 94 insertions(+), 20 deletions(-) diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index c4c83a2..68e2453 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -8,12 +8,12 @@ const postAllowance = async (req, res) => { // 관리자만 가능 if (!familyId || !roleId) { error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); } - const { userName, amount, year, month } = req.body; - if (!userName ||!amount || !year || !month) { + const { userName, allowance, year, month } = req.body; + if (!userName || !allowance || !year || !month) { error.throwErr(400, 'KEY_ERROR'); } const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); - await allowanceService.postAllowance(userId, amount, year, month); + await allowanceService.postAllowance(userId, allowance, year, month); return res.status(200).json({message: 'POST_SUCCESS'}); } catch (err) { console.error(err); @@ -40,14 +40,14 @@ const updateAllowance = async (req, res) => { // 관리자만 가능 try { const { familyId, roleId } = req.userData; if (!familyId || !roleId) { - error.throwErr(401, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); + error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); } - const { userName, amount, year, month } = req.body; - if (!userName ||!amount || !year || !month) { + const { userName, allowance, year, month } = req.body; + if (!userName || !allowance || !year || !month) { error.throwErr(400, 'KEY_ERROR'); } const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); // 삭제 대상 userName을 가진 users.id입니다 - await allowanceService.updateAllowance(userId, amount, year, month); + await allowanceService.updateAllowance(userId, allowance, year, month); return res.status(200).json({message: 'PUT_SUCCESS'}); } catch (err) { console.error(err); @@ -55,6 +55,24 @@ const updateAllowance = async (req, res) => { // 관리자만 가능 } } +// const updateAllowance = async (req, res) => { // 관리자만 가능 +// try { +// const { familyId, roleId } = req.userData; +// if (!familyId || !roleId) { +// error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); +// } +// const { id, allowance, year, month } = req.body; +// if (!id || !allowance || !year || !month) { +// error.throwErr(400, 'KEY_ERROR'); +// } +// await allowanceService.updateAllowanceById(id, allowance, year, month); +// return res.status(200).json({message: 'PUT_SUCCESS'}); +// } catch (err) { +// console.error(err); +// return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); +// } +// } + const deleteAllowance = async (req, res) => { // 관리자만 가능 try { const { familyId, roleId } = req.userData; @@ -62,7 +80,6 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); } const { userName, year, month } = req.body; - console.log(userName, year, month); if (!userName || !year || !month) { error.throwErr(400, 'KEY_ERROR'); } @@ -75,6 +92,24 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 } } +// const deleteAllowance = async (req, res) => { // 관리자만 가능 +// try { +// const { familyId, roleId } = req.userData; +// if (!familyId || !roleId) { +// error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); +// } +// const { id } = req.body; +// if (!id) { +// error.throwErr(400, 'KEY_ERROR'); +// } +// await allowanceService.deleteAllowanceById(id); +// return res.status(200).json({message: 'DELETE_SUCCESS'}); +// } catch (err) { +// console.error(err); +// return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); +// } +// } + module.exports = { postAllowance, getAllowances, diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js index 8708c8f..4549000 100644 --- a/src/models/allowanceDao.js +++ b/src/models/allowanceDao.js @@ -10,7 +10,7 @@ const postAllowance = async (userId, amount, year, month) => { [userId, amount, year, month] ) if (result.affectedRows === 0) { - error.throwErr(500, 'ALLOWANCE_ALREADY_EXISTS'); + error.throwErr(409, 'ALREADY_EXISTS'); } return result; } @@ -29,8 +29,7 @@ const getAllowance = async (userId) => { // 최신 순 ) } - -const updateAllowances = async (userId, amount, year, month) => { +const updateAllowance = async (userId, amount, year, month) => { return await appDataSource.query( ` UPDATE allowances @@ -43,6 +42,21 @@ const updateAllowances = async (userId, amount, year, month) => { ) } +const updateAllowanceById = async (allowanceId, amount, year, month) => { + const result = await appDataSource.query( + ` + UPDATE allowances + SET amount = ?, year = ?, month = ? + WHERE id = ? + `, + [amount, year, month, allowanceId] + ) + if (result.affectedRows === 0) { + error.throwErr(409, 'ALREADY_EXISTS'); + } + return result; +} + const getAllowanceByYearMonth = async (userId, year, month) => { return await appDataSource.query( ` @@ -57,7 +71,6 @@ const getAllowanceByYearMonth = async (userId, year, month) => { } const deleteAllowance = async (userId, year, month) => { - console.log(userId, year, month) const result = await appDataSource.query( ` DELETE FROM allowances @@ -68,7 +81,21 @@ const deleteAllowance = async (userId, year, month) => { [userId, year, month] ) if (result.affectedRows === 0) { - error.throwErr(500, 'NOT_EXISTING_OR_DELETED_ALLOWANCE'); + error.throwErr(404, 'NOT_EXISTING_OR_DELETED_ALLOWANCE'); + } + return result; +} + +const deleteAllowanceById = async (allowanceId) => { + const result = await appDataSource.query( + ` + DELETE FROM allowances + WHERE id = ? + `, + [allowanceId] + ) + if (result.affectedRows === 0) { + error.throwErr(404, 'NOT_EXISTING_OR_DELETED_ALLOWANCE'); } return result; } @@ -76,7 +103,9 @@ const deleteAllowance = async (userId, year, month) => { module.exports = { postAllowance, getAllowance, - updateAllowances, + updateAllowance, + updateAllowanceById, getAllowanceByYearMonth, - deleteAllowance + deleteAllowance, + deleteAllowanceById } \ No newline at end of file diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js index df41855..1dc8bcb 100644 --- a/src/services/allowanceService.js +++ b/src/services/allowanceService.js @@ -1,7 +1,7 @@ const allowanceDao = require('../models/allowanceDao'); -const postAllowance = async (userId, amount, year, month) => { - return await allowanceDao.postAllowance(userId, amount, year, month); +const postAllowance = async (userId, allowance, year, month) => { + return await allowanceDao.postAllowance(userId, allowance, year, month); } const getAllowances = async (familyUserIds) => { @@ -13,8 +13,12 @@ const getAllowances = async (familyUserIds) => { return result; } -const updateAllowance = async (userId, amount, year, month) => { - return await allowanceDao.updateAllowances(userId, amount, year, month); +const updateAllowance = async (userId, allowance, year, month) => { // userName, year, month(수정 전)가 수정 전의 지표인 함수 + return await allowanceDao.updateAllowance(userId, allowance, year, month); +} + +const updateAllowanceById = async (allowanceId, allowance, year, month) => { // id가 수정 전의 지표인 버전 + return await allowanceDao.updateAllowanceById(allowanceId, allowance, year, month); } const getAllowancesByYearMonth = async (userId, year, month) => { // Dao 재탕으로 인해 쓰임이 없어졌는데 연월별 용돈 검색 떄 활용할 수 있을 것 같아 두겠습니다. @@ -25,10 +29,16 @@ const deleteAllowance = async (userId, year, month) => { return await allowanceDao.deleteAllowance(userId, year, month); } +const deleteAllowanceById = async (allowanceId) => { + return await allowanceDao.deleteAllowanceById(allowanceId); +} module.exports = { postAllowance, getAllowances, updateAllowance, + updateAllowanceById, getAllowancesByYearMonth, - deleteAllowance } \ No newline at end of file + deleteAllowance, + deleteAllowanceById +} \ No newline at end of file From b0dd760b1e43d8f5dae0c4690bd4c6e7ea8fecbc Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Sun, 19 Nov 2023 15:22:39 +0900 Subject: [PATCH 03/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EC=9A=A9=EB=8F=88=20=EC=A1=B0=ED=9A=8C=20=ED=95=84=ED=84=B0?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80(=EA=B0=80=EC=A1=B1=20=EA=B5=AC=EC=84=B1?= =?UTF-8?q?=EC=9B=90=20=EB=AA=A8=EB=91=90=EC=9D=98=20=EC=97=B0/=EC=97=B0,?= =?UTF-8?q?=20=EC=9B=94/=EB=AA=A8=EB=93=A0=20=EC=9A=A9=EB=8F=88,=20=3D>=20?= =?UTF-8?q?+=20=ED=8A=B9=EC=A0=95=20=EA=B0=80=EC=A1=B1=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1=EC=9B=90=20=EC=9C=A0=EC=A0=80=EC=9D=98=20=EC=9A=A9?= =?UTF-8?q?=EB=8F=88=20=EC=A1=B0=ED=9A=8C=20=EC=97=B0/=EC=97=B0,=20?= =?UTF-8?q?=EC=9B=94/=EB=AA=A8=EB=93=A0=20=EC=9A=A9=EB=8F=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 36 +++++++++++++++-- src/models/allowanceDao.js | 48 ++++++++++++++++------- src/routes/allowanceRouter.js | 2 +- src/services/allowanceService.js | 54 ++++++++++++++++++++------ 4 files changed, 108 insertions(+), 32 deletions(-) diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index 68e2453..8adf8ab 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -21,15 +21,43 @@ const postAllowance = async (req, res) => { // 관리자만 가능 } } -const getAllowances = async (req, res) => { // 일반 유저도 가능 +const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가능 try { const { familyId } = req.userData; if (!familyId) { error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY'); } const familyUsersIds = await usersFamilyService.getFamilyUsersIds(familyId); - const allowances = await allowanceService.getAllowances(familyUsersIds); - return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); + const { year, month, userName } = req.query; + if (!year && month) { // 달만 있고 연도가 없는 경우 => 연도를 입력해 주세요 + error.throwErr(400, 'KEY_ERROR_CHOOSE_YEAR'); + } + else if (userName) { // 특정 유저의 용돈을 찾으려는 경우 + const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); // familyId 정보와 유저의 이름으로 유저 id를 찾습니다. + if (!year && !month) { // 연도, 월의 조건이 없는 경우 => 해당 유저의 용돈을 모두 찾습니다. + const allowances = await allowanceService.getAllowancesByUserId(userId); + return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + } + else if (year && !month) { // 연도 조건만 있고, 월 조건은 없는 경우 => 해당 유저의 해당 연도의 모든 용돈을 찾습니다.. + const allowances = await allowanceService.getAllowancesByUserIdByYear(userId, year); + return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + } + const allowance = await allowanceService.getAllowanceByUserIdByYearMonth(userId); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowance}); + } + else { + if (!year && !month) { // 연도, 월의 조건이 없는 경우 => 가족 구성원의 용돈을 모두 찾습니다. + const allowances = await allowanceService.getAllowances(familyUsersIds); + return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + } + else if (year && !month) { // 연도 조건만 있고, 월 조건은 없는 경우 => 가족 구성원의 해당 연도의 모든 용돈을 찾습니다. + const allowances = await allowanceService.getAllowancesByYear(familyUsersIds, year); + return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + } + const allowances = await allowanceService.getAllowances(familyUsersIds); // 가족 구성원의 해당 연, 월의 용돈을 찾습니다. + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); + } + } catch(err) { console.error(err); return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); @@ -112,7 +140,7 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 module.exports = { postAllowance, - getAllowances, + getAllowancesByCondition, updateAllowance, deleteAllowance } \ No newline at end of file diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js index 4549000..dc2e6a1 100644 --- a/src/models/allowanceDao.js +++ b/src/models/allowanceDao.js @@ -23,12 +23,42 @@ const getAllowance = async (userId) => { // 최신 순 JOIN users ON allowances.user_id = users.id WHERE user_id = ? - ORDER BY year DESC, month DESC + ORDER BY allowances.year DESC, allowances.month DESC `, [userId] ) } +const getAllowanceByYear = async (userId, year) => { // 최신 순 + return await appDataSource.query( + ` + SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + FROM allowances + JOIN users + ON allowances.user_id = users.id + WHERE user_id = ? + AND allowances.year = ? + ORDER BY allowances.month DESC + `, + [userId, year] + ) +} + +const getAllowanceByYearMonth = async (userId, year, month) => { // 최신 순 + return await appDataSource.query( + ` + SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + FROM allowances + JOIN users + ON allowances.user_id = users.id + WHERE user_id = ? + AND allowances.year = ? + AND allowances.month = ? + `, + [userId, year, month] + ) +} + const updateAllowance = async (userId, amount, year, month) => { return await appDataSource.query( ` @@ -57,19 +87,6 @@ const updateAllowanceById = async (allowanceId, amount, year, month) => { return result; } -const getAllowanceByYearMonth = async (userId, year, month) => { - return await appDataSource.query( - ` - SELECT id, user_id, amount, year, month - FROM allowances - WHERE user_id = ? - AND year = ? - AND month = ? - `, - [userId, year, month] - ) -} - const deleteAllowance = async (userId, year, month) => { const result = await appDataSource.query( ` @@ -103,9 +120,10 @@ const deleteAllowanceById = async (allowanceId) => { module.exports = { postAllowance, getAllowance, + getAllowanceByYear, + getAllowanceByYearMonth, updateAllowance, updateAllowanceById, - getAllowanceByYearMonth, deleteAllowance, deleteAllowanceById } \ No newline at end of file diff --git a/src/routes/allowanceRouter.js b/src/routes/allowanceRouter.js index 47a961c..4ff7940 100644 --- a/src/routes/allowanceRouter.js +++ b/src/routes/allowanceRouter.js @@ -4,7 +4,7 @@ const router = express.Router(); const { loginRequired } = require('../utils/auth'); const allowanceController = require("../controllers/allowanceController"); -router.get('/', loginRequired, allowanceController.getAllowances); +router.get('/', loginRequired, allowanceController.getAllowancesByCondition); router.post('/', loginRequired, allowanceController.postAllowance); router.put('/', loginRequired, allowanceController.updateAllowance); router.delete('/', loginRequired, allowanceController.deleteAllowance); diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js index 1dc8bcb..cd08ee1 100644 --- a/src/services/allowanceService.js +++ b/src/services/allowanceService.js @@ -4,13 +4,43 @@ const postAllowance = async (userId, allowance, year, month) => { return await allowanceDao.postAllowance(userId, allowance, year, month); } -const getAllowances = async (familyUserIds) => { - let result = []; - for (let familyUserId in familyUserIds) { - let allowances = await allowanceDao.getAllowance(familyUserId); - result = result.concat(allowances); - } - return result; +const getAllowances = async (familyUserIds) => { // 모든 가족 구성원의 모든 용돈을 찾습니다. + const result = await Promise.all( + familyUserIds.map(async (familyUserId) => { + return await allowanceDao.getAllowance(familyUserId); + }) + ) + return result.flat(); +} + +const getAllowancesByYear = async (familyUserIds, year) => { // 모든 가족 구성원의 특정 연도의 용돈을 모두 찾습니다. + const result = await Promise.all( + familyUserIds.map(async (familyUserId) => { + return await allowanceDao.getAllowanceByYear(familyUserId, year); + }) + ) + return result.flat(); +} + +const getAllowancesByYearMonth = async (familyUserIds, year, month) => { // 모든 가족 구성원의 특정 연, 월의 용돈을 모두 찾습니다. + const result = await Promise.all( + familyUserIds.map(async (familyUserId) => { + return await allowanceDao.getAllowanceByYearMonth(familyUserId, year, month); + }) + ) + return result.flat(); +} + +const getAllowancesByUserId = async (userId) => { // 단일 userId로 해당 user의 모든 용돈을 찾습니다. + return await allowanceDao.getAllowance(userId); +} + +const getAllowancesByUserIdByYear = async (userId, year) => { // 단일 userId로 해당 user 의 특정 연도의 모든 용돈을 찾습니다(내림차순) + return await allowanceDao.getAllowanceByYear(userId, year); +} + +const getAllowanceByUserIdByYearMonth = async (userId, year, month) => { // 단일 userId로 해당 user 의 특정 연, 월의 모든 용돈을 찾습니다(내림차순) + return await allowanceDao.getAllowanceByYearMonth(userId, year, month); } const updateAllowance = async (userId, allowance, year, month) => { // userName, year, month(수정 전)가 수정 전의 지표인 함수 @@ -21,10 +51,6 @@ const updateAllowanceById = async (allowanceId, allowance, year, month) => { // return await allowanceDao.updateAllowanceById(allowanceId, allowance, year, month); } -const getAllowancesByYearMonth = async (userId, year, month) => { // Dao 재탕으로 인해 쓰임이 없어졌는데 연월별 용돈 검색 떄 활용할 수 있을 것 같아 두겠습니다. - return await allowanceDao.getAllowanceByYearMonth(userId, year, month); -} - const deleteAllowance = async (userId, year, month) => { return await allowanceDao.deleteAllowance(userId, year, month); } @@ -36,9 +62,13 @@ const deleteAllowanceById = async (allowanceId) => { module.exports = { postAllowance, getAllowances, + getAllowancesByYear, + getAllowancesByYearMonth, + getAllowancesByUserId, + getAllowancesByUserIdByYear, + getAllowanceByUserIdByYearMonth, updateAllowance, updateAllowanceById, - getAllowancesByYearMonth, deleteAllowance, deleteAllowanceById } \ No newline at end of file From 28b8c6d9c4745ab4492b5b00f09f805435b680d7 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Sun, 19 Nov 2023 18:03:45 +0900 Subject: [PATCH 04/10] =?UTF-8?q?ADD:=20=EA=B0=9C=EC=9D=B8=20=EC=9B=94?= =?UTF-8?q?=EB=B3=84=20=EC=9E=94=EC=97=AC=20=EC=9A=A9=EB=8F=88=20=EA=B8=88?= =?UTF-8?q?=EC=95=A1=20=EC=A1=B0=ED=9A=8C=20api=20(=EC=9A=A9=EB=8F=88=20-?= =?UTF-8?q?=20=EA=B0=9C=EC=9D=B8=20=EA=B7=B8=20=EB=8B=AC=EC=9D=98=20?= =?UTF-8?q?=EC=A7=80=EC=B6=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 27 ++++++++++++++++++++++++-- src/models/allowanceDao.js | 2 +- src/models/moneyFlowDao.js | 21 ++++++++++++++++++++ src/routes/allowanceRouter.js | 3 ++- src/services/allowanceService.js | 8 ++++++++ src/services/moneyFlowService.js | 13 +++++++++++++ src/services/usersFamilyService.js | 26 ++++++++++++++----------- 7 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 src/models/moneyFlowDao.js create mode 100644 src/services/moneyFlowService.js diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index 8adf8ab..bff2a42 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -1,5 +1,6 @@ const allowanceService = require('../services/allowanceService'); const usersFamilyService = require('../services/usersFamilyService'); +const moneyFlowService = require('../services/moneyFlowService'); const error = require('../utils/error'); const postAllowance = async (req, res) => { // 관리자만 가능 @@ -42,7 +43,7 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 const allowances = await allowanceService.getAllowancesByUserIdByYear(userId, year); return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); } - const allowance = await allowanceService.getAllowanceByUserIdByYearMonth(userId); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. + const allowance = await allowanceService.getAllowanceByUserIdByYearMonth(userId, year, month); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. return res.status(200).json({message: 'GET_SUCCESS', allowances: allowance}); } else { @@ -54,7 +55,7 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 const allowances = await allowanceService.getAllowancesByYear(familyUsersIds, year); return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); } - const allowances = await allowanceService.getAllowances(familyUsersIds); // 가족 구성원의 해당 연, 월의 용돈을 찾습니다. + const allowances = await allowanceService.getAllowanceByUserIdByYearMonth(familyUsersIds, year, month); // 가족 구성원의 해당 연, 월의 용돈을 찾습니다. return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } @@ -64,6 +65,27 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 } } +const getRestAllowance = async (req, res) => { + try { + const { familyId } = req.userData; + if (!familyId) { + error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY'); + } + const { userName, year, month } = req.query; + if (!userName || !year || !month) { + error.throwErr(400, 'KEY_ERROR'); + } + const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); + const allowance = await allowanceService.getAllowanceByUserIdByYearMonthAndGetAmount(userId, year, month); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. + const sumOfUsage = await moneyFlowService.getUsedMoneyFlowsByYearMonthAndGetSum(userId, year, month); + const restAllowance = allowance - sumOfUsage + return res.status(200).json({message: 'GET_SUCCESS', restAllowance: restAllowance}); + } catch (err) { + console.error(err); + return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); + } +} + const updateAllowance = async (req, res) => { // 관리자만 가능 try { const { familyId, roleId } = req.userData; @@ -141,6 +163,7 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 module.exports = { postAllowance, getAllowancesByCondition, + getRestAllowance, updateAllowance, deleteAllowance } \ No newline at end of file diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js index dc2e6a1..23e5330 100644 --- a/src/models/allowanceDao.js +++ b/src/models/allowanceDao.js @@ -44,7 +44,7 @@ const getAllowanceByYear = async (userId, year) => { // 최신 순 ) } -const getAllowanceByYearMonth = async (userId, year, month) => { // 최신 순 +const getAllowanceByYearMonth = async (userId, year, month) => { return await appDataSource.query( ` SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month diff --git a/src/models/moneyFlowDao.js b/src/models/moneyFlowDao.js new file mode 100644 index 0000000..0d42fe1 --- /dev/null +++ b/src/models/moneyFlowDao.js @@ -0,0 +1,21 @@ +const { appDataSource } = require('../utils/dataSource'); +const error = require('../utils/error'); + +const getUsedOrGotMoneyFlowsByUserIdByYearMonth = async (userId, flowTypeId, year, month) => { + return await appDataSource.query( + ` + SELECT id, user_id, flow_type_id, category_id, memo, amount, year, month, date + FROM money_flows + WHERE user_id = ? + AND flow_type_id = ? + AND year = ? + AND month = ? + ORDER BY date desc, category_id, amount desc + `, + [userId, flowTypeId, year, month] + ) +} + +module.exports = { + getUsedOrGotMoneyFlowsByUserIdByYearMonth +} \ No newline at end of file diff --git a/src/routes/allowanceRouter.js b/src/routes/allowanceRouter.js index 4ff7940..f7f4498 100644 --- a/src/routes/allowanceRouter.js +++ b/src/routes/allowanceRouter.js @@ -2,9 +2,10 @@ const express = require('express'); const router = express.Router(); const { loginRequired } = require('../utils/auth'); -const allowanceController = require("../controllers/allowanceController"); +const allowanceController = require('../controllers/allowanceController'); router.get('/', loginRequired, allowanceController.getAllowancesByCondition); +router.get('/rest', loginRequired, allowanceController.getRestAllowance); router.post('/', loginRequired, allowanceController.postAllowance); router.put('/', loginRequired, allowanceController.updateAllowance); router.delete('/', loginRequired, allowanceController.deleteAllowance); diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js index cd08ee1..cd1fd60 100644 --- a/src/services/allowanceService.js +++ b/src/services/allowanceService.js @@ -1,4 +1,5 @@ const allowanceDao = require('../models/allowanceDao'); +const moneyFlowDao = require('../models/moneyFlowDao'); const postAllowance = async (userId, allowance, year, month) => { return await allowanceDao.postAllowance(userId, allowance, year, month); @@ -43,6 +44,12 @@ const getAllowanceByUserIdByYearMonth = async (userId, year, month) => { // 단 return await allowanceDao.getAllowanceByYearMonth(userId, year, month); } +const getAllowanceByUserIdByYearMonthAndGetAmount = async (userId, year, month) => { + const allowance = await allowanceDao.getAllowanceByYearMonth(userId, year, month); + return await allowance.reduce((acc, allowance) => acc + allowance.amount, 0); +} + + const updateAllowance = async (userId, allowance, year, month) => { // userName, year, month(수정 전)가 수정 전의 지표인 함수 return await allowanceDao.updateAllowance(userId, allowance, year, month); } @@ -67,6 +74,7 @@ module.exports = { getAllowancesByUserId, getAllowancesByUserIdByYear, getAllowanceByUserIdByYearMonth, + getAllowanceByUserIdByYearMonthAndGetAmount, updateAllowance, updateAllowanceById, deleteAllowance, diff --git a/src/services/moneyFlowService.js b/src/services/moneyFlowService.js new file mode 100644 index 0000000..763b29e --- /dev/null +++ b/src/services/moneyFlowService.js @@ -0,0 +1,13 @@ +const moneyFlowDao = require('../models/moneyFlowDao'); +const error = require('../utils/error'); + + +const getUsedMoneyFlowsByYearMonthAndGetSum = async (userId, year, month) => { + let flowTypeId = 2; + const flows = await moneyFlowDao.getUsedOrGotMoneyFlowsByUserIdByYearMonth(userId, flowTypeId, year, month); + return await flows.reduce((acc, flow) => acc + flow.amount, 0); +} + +module.exports = { + getUsedMoneyFlowsByYearMonthAndGetSum +} \ No newline at end of file diff --git a/src/services/usersFamilyService.js b/src/services/usersFamilyService.js index 884836f..b9bc2a8 100644 --- a/src/services/usersFamilyService.js +++ b/src/services/usersFamilyService.js @@ -1,4 +1,5 @@ const usersFamilyDao = require('../models/usersFamilyDao'); +const error = require('../utils/error'); const getUserIdByFamilyId = async (familyId) => { return await usersFamilyDao.getUsersByFamilyId(familyId); @@ -6,24 +7,27 @@ const getUserIdByFamilyId = async (familyId) => { const getAuthenticUserId = async (familyId, userName) => { const familyUsers = await usersFamilyDao.getUsersByFamilyId(familyId); - let userId = 0; - for (let i in familyUsers) { // 가족 구성원 중 용돈을 주고자 하는 이름을 이용해서 users.id를 찾습니다. - if (await familyUsers[i]['option'] === userName) { - userId += familyUsers[i].id; - return userId; + const userIds = await Promise.all(familyUsers.map(async (user) => { + if (await user['option'] === userName) { + return user.id; } - } + return null; + })); + const userId = userIds.find(id => id !== null); + if (!userId) { // undefined 이면 가족이 용돈이 조회되고 삭제하려던 사이에 가족에서 탈퇴한 것 또는 이름을 바꾼 것입니다. + error.throwErr(404, 'NOT_EXISTING_OR_INVALID_USER'); + } + return userId; } const getFamilyUsersIds = async (familyId) => { const familyUsers = await usersFamilyDao.getUsersByFamilyId(familyId); - let userIds = []; - for (let i in await familyUsers) { - userIds.push(await familyUsers[i].id); - } + const userIds = await Promise.all(familyUsers.map(async (user) => { + return user.id; + })); return userIds; -} +}; module.exports = { getUserIdByFamilyId, From a9b845a148caee1c259da8867b243e64e35e20a8 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Mon, 20 Nov 2023 15:13:59 +0900 Subject: [PATCH 05/10] =?UTF-8?q?ADD=20:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EB=B6=88=ED=95=84=EC=9A=94=20=EC=A3=BC=EC=84=9D=20=EB=B0=8F?= =?UTF-8?q?=20=EC=A4=84=EB=B0=94=EA=BF=88=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 36 -------------------------- src/services/allowanceService.js | 1 - src/services/moneyFlowService.js | 1 - 3 files changed, 38 deletions(-) diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index bff2a42..de782e7 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -105,24 +105,6 @@ const updateAllowance = async (req, res) => { // 관리자만 가능 } } -// const updateAllowance = async (req, res) => { // 관리자만 가능 -// try { -// const { familyId, roleId } = req.userData; -// if (!familyId || !roleId) { -// error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); -// } -// const { id, allowance, year, month } = req.body; -// if (!id || !allowance || !year || !month) { -// error.throwErr(400, 'KEY_ERROR'); -// } -// await allowanceService.updateAllowanceById(id, allowance, year, month); -// return res.status(200).json({message: 'PUT_SUCCESS'}); -// } catch (err) { -// console.error(err); -// return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); -// } -// } - const deleteAllowance = async (req, res) => { // 관리자만 가능 try { const { familyId, roleId } = req.userData; @@ -142,24 +124,6 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 } } -// const deleteAllowance = async (req, res) => { // 관리자만 가능 -// try { -// const { familyId, roleId } = req.userData; -// if (!familyId || !roleId) { -// error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); -// } -// const { id } = req.body; -// if (!id) { -// error.throwErr(400, 'KEY_ERROR'); -// } -// await allowanceService.deleteAllowanceById(id); -// return res.status(200).json({message: 'DELETE_SUCCESS'}); -// } catch (err) { -// console.error(err); -// return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); -// } -// } - module.exports = { postAllowance, getAllowancesByCondition, diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js index cd1fd60..e577c44 100644 --- a/src/services/allowanceService.js +++ b/src/services/allowanceService.js @@ -49,7 +49,6 @@ const getAllowanceByUserIdByYearMonthAndGetAmount = async (userId, year, month) return await allowance.reduce((acc, allowance) => acc + allowance.amount, 0); } - const updateAllowance = async (userId, allowance, year, month) => { // userName, year, month(수정 전)가 수정 전의 지표인 함수 return await allowanceDao.updateAllowance(userId, allowance, year, month); } diff --git a/src/services/moneyFlowService.js b/src/services/moneyFlowService.js index 763b29e..11c325b 100644 --- a/src/services/moneyFlowService.js +++ b/src/services/moneyFlowService.js @@ -1,7 +1,6 @@ const moneyFlowDao = require('../models/moneyFlowDao'); const error = require('../utils/error'); - const getUsedMoneyFlowsByYearMonthAndGetSum = async (userId, year, month) => { let flowTypeId = 2; const flows = await moneyFlowDao.getUsedOrGotMoneyFlowsByUserIdByYearMonth(userId, flowTypeId, year, month); From d53ad8a1e3555a66e767a8c1eca4bef71a63d164 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Tue, 21 Nov 2023 19:25:00 +0900 Subject: [PATCH 06/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20amount=20=3D>=20allowance=EB=A1=9C=20get=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20res.body=20key=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20d?= =?UTF-8?q?elete=20method=20target=20req.body=EC=97=90=EC=84=9C=20req.quer?= =?UTF-8?q?y=20=EC=88=98=EC=8B=A0=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20=EB=B0=8F=20testcode=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 38 +- server.js | 27 + src/controllers/allowanceController.js | 13 +- src/models/allowanceDao.js | 6 +- src/services/allowanceService.js | 2 +- src/utils/dataSource.js | 16 +- src/utils/error.js | 2 +- test/flow.test.js | 423 +++++++++ test/testSupplies.js | 1199 ++++++++++++++++++++++++ 9 files changed, 1681 insertions(+), 45 deletions(-) create mode 100644 server.js create mode 100644 test/flow.test.js create mode 100644 test/testSupplies.js diff --git a/app.js b/app.js index c09f281..c02c888 100644 --- a/app.js +++ b/app.js @@ -1,30 +1,24 @@ -const http = require('http'); const express = require('express'); const cors = require('cors'); -const dotenv = require('dotenv'); +const morgan = require('morgan') const routes = require('./src/routes'); -const app = express() -dotenv.config() -app.use(cors()) -app.use(express.json()) -app.use(routes) +const createApp = () => { + const app = express(); -app.get('/ping',(req,res) => { - res.status(200).json({ - message: 'pong' - }) -}) - -const server = http.createServer(app) + app.use(cors()) + app.use(express.json()) + app.use(morgan('combined')) + app.use(routes) -const start = async () => { - try { - server.listen(process.env.TYPEORM_SERVER_PORT, () => console.log( - `Server is listening on ${process.env.TYPEORM_SERVER_PORT}`)) - } catch (err) { - console.error(err) - } + app.get('/ping',(req,res) => { + res.status(200).json({ + message: 'pong' + }) + }) + return app } -start() \ No newline at end of file +module.exports = { + createApp +} \ No newline at end of file diff --git a/server.js b/server.js new file mode 100644 index 0000000..e2f1c5e --- /dev/null +++ b/server.js @@ -0,0 +1,27 @@ +const http = require('http'); +const dotenv = require('dotenv'); + +dotenv.config() + +const { createApp } = require('./app'); +const { appDataSource } = require('./src/utils/dataSource'); + +const startServer = async () => { + const app = createApp(); + appDataSource.initialize() + .then(()=> { + console.log('Data Source has been initialized!') + }) + .catch((err) => { + console.error('Error occured during Data Source initialization', err) + }) + + const server = http.createServer(app) + const PORT = process.env.TYPEORM_SERVER_PORT; + + server.listen(PORT, () => { + console.log(`Server is listening on Port ${PORT}`) + }) +}; + +startServer(); \ No newline at end of file diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index de782e7..23785a5 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -37,11 +37,11 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); // familyId 정보와 유저의 이름으로 유저 id를 찾습니다. if (!year && !month) { // 연도, 월의 조건이 없는 경우 => 해당 유저의 용돈을 모두 찾습니다. const allowances = await allowanceService.getAllowancesByUserId(userId); - return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } else if (year && !month) { // 연도 조건만 있고, 월 조건은 없는 경우 => 해당 유저의 해당 연도의 모든 용돈을 찾습니다.. const allowances = await allowanceService.getAllowancesByUserIdByYear(userId, year); - return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } const allowance = await allowanceService.getAllowanceByUserIdByYearMonth(userId, year, month); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. return res.status(200).json({message: 'GET_SUCCESS', allowances: allowance}); @@ -49,11 +49,11 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 else { if (!year && !month) { // 연도, 월의 조건이 없는 경우 => 가족 구성원의 용돈을 모두 찾습니다. const allowances = await allowanceService.getAllowances(familyUsersIds); - return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } else if (year && !month) { // 연도 조건만 있고, 월 조건은 없는 경우 => 가족 구성원의 해당 연도의 모든 용돈을 찾습니다. const allowances = await allowanceService.getAllowancesByYear(familyUsersIds, year); - return res.status(200).json({message: 'GET_SUCCESS', 'budget': allowances}); + return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } const allowances = await allowanceService.getAllowanceByUserIdByYearMonth(familyUsersIds, year, month); // 가족 구성원의 해당 연, 월의 용돈을 찾습니다. return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); @@ -77,7 +77,9 @@ const getRestAllowance = async (req, res) => { } const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); const allowance = await allowanceService.getAllowanceByUserIdByYearMonthAndGetAmount(userId, year, month); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. + console.log('>>>>>>>>', allowance) const sumOfUsage = await moneyFlowService.getUsedMoneyFlowsByYearMonthAndGetSum(userId, year, month); + console.log(sumOfUsage) const restAllowance = allowance - sumOfUsage return res.status(200).json({message: 'GET_SUCCESS', restAllowance: restAllowance}); } catch (err) { @@ -93,6 +95,7 @@ const updateAllowance = async (req, res) => { // 관리자만 가능 error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); } const { userName, allowance, year, month } = req.body; + console.log(userName, allowance, year, month) if (!userName || !allowance || !year || !month) { error.throwErr(400, 'KEY_ERROR'); } @@ -111,7 +114,7 @@ const deleteAllowance = async (req, res) => { // 관리자만 가능 if (!familyId || !roleId) { error.throwErr(400, 'NOT_INCLUDED_IN_FAMILY_OR_NOT_AN_ADMIN'); } - const { userName, year, month } = req.body; + const { userName, year, month } = req.query; if (!userName || !year || !month) { error.throwErr(400, 'KEY_ERROR'); } diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js index 23e5330..aa9de53 100644 --- a/src/models/allowanceDao.js +++ b/src/models/allowanceDao.js @@ -18,7 +18,7 @@ const postAllowance = async (userId, amount, year, month) => { const getAllowance = async (userId) => { // 최신 순 return await appDataSource.query( ` - SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + SELECT allowances.id, users.name as userName, allowances.amount as allowance as allowance, allowances.year, allowances.month FROM allowances JOIN users ON allowances.user_id = users.id @@ -32,7 +32,7 @@ const getAllowance = async (userId) => { // 최신 순 const getAllowanceByYear = async (userId, year) => { // 최신 순 return await appDataSource.query( ` - SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + SELECT allowances.id, users.name as userName, allowances.amount as allowance, allowances.year, allowances.month FROM allowances JOIN users ON allowances.user_id = users.id @@ -47,7 +47,7 @@ const getAllowanceByYear = async (userId, year) => { // 최신 순 const getAllowanceByYearMonth = async (userId, year, month) => { return await appDataSource.query( ` - SELECT allowances.id, users.name as userName, allowances.amount, allowances.year, allowances.month + SELECT allowances.id, users.name as userName, allowances.amount as allowance, allowances.year, allowances.month FROM allowances JOIN users ON allowances.user_id = users.id diff --git a/src/services/allowanceService.js b/src/services/allowanceService.js index e577c44..78b50e0 100644 --- a/src/services/allowanceService.js +++ b/src/services/allowanceService.js @@ -46,7 +46,7 @@ const getAllowanceByUserIdByYearMonth = async (userId, year, month) => { // 단 const getAllowanceByUserIdByYearMonthAndGetAmount = async (userId, year, month) => { const allowance = await allowanceDao.getAllowanceByYearMonth(userId, year, month); - return await allowance.reduce((acc, allowance) => acc + allowance.amount, 0); + return await allowance.reduce((acc, allowance) => acc + allowance.allowance, 0); } const updateAllowance = async (userId, allowance, year, month) => { // userName, year, month(수정 전)가 수정 전의 지표인 함수 diff --git a/src/utils/dataSource.js b/src/utils/dataSource.js index e3b0944..0af66dc 100644 --- a/src/utils/dataSource.js +++ b/src/utils/dataSource.js @@ -1,4 +1,4 @@ -const { DataSource } = require('typeorm'); +const {DataSource} = require('typeorm'); const dotenv = require('dotenv'); dotenv.config(); @@ -9,16 +9,6 @@ const appDataSource = new DataSource({ username: process.env.TYPEORM_USERNAME, password: process.env.TYPEORM_PASSWORD, database: process.env.TYPEORM_DATABASE -}) +}); -appDataSource.initialize() - .then(() => { - console.log('Data Source has been initialized!'); - }) - .catch((err) => { - console.error('Error occured during Data Source initialization', err); - }) - -module.exports = { - appDataSource -} \ No newline at end of file +module.exports = { appDataSource } \ No newline at end of file diff --git a/src/utils/error.js b/src/utils/error.js index d797f9e..e63384c 100644 --- a/src/utils/error.js +++ b/src/utils/error.js @@ -1,6 +1,6 @@ const throwErr = (code, message) => { const error = new Error(message); - error.status = code; + error.statusCode = code; throw error; }; diff --git a/test/flow.test.js b/test/flow.test.js new file mode 100644 index 0000000..4874897 --- /dev/null +++ b/test/flow.test.js @@ -0,0 +1,423 @@ +const request = require('supertest'); +const { createApp } = require('../app'); +const { appDataSource } = require('../src/utils/dataSource'); +const supplies = require('./testSupplies.js'); + +describe('get ping', () => { + let app; + + beforeAll(async() => { + app = createApp(); + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const res = await request(app) + .get('/ping'); + + expect(res.status).toBe(200); + expect(res.body).toEqual({ + message : 'pong' + }); + }); +}); + +// 용돈 등록 성공 (관리자만) +describe('post Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestBody = { + userName: "김지훈", + allowance : 3000000, + year: 2030, + month: 1 + } + const res = await request(app) + .post('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .send(requestBody); + + expect(res.status).toBe(200) + expect(res.body) + .toEqual({ + message: 'POST_SUCCESS', + }); + }); +}); + +// 용돈 등록 실패 (중복 등록으로 인한 실패) +describe('post Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestBody = { + userName: "이아영", + allowance : 3000000, + year: 2023, + month: 1 + } + const res = await request(app) + .post('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .send(requestBody); + + expect(res.status).toBe(409) + expect(res.body) + .toEqual({ + message: 'ALREADY_EXISTS', + }); + }); +}); + +// 용돈 조회 성공 (특정 가족 유저의 특정 연, 월) +describe('get Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + year: 2023, + month: 1 + } + const res = await request(app) + .get('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(200) + expect(res.body) + .toEqual({ + message: "GET_SUCCESS", + allowances: [ + { + id: 1, + userName: "김지훈", + allowance: 500000, + year: 2023, + month: 1 + }] + }); + }); +}); + +// 용돈 조회 실패 (특정 가족 유저의 특정 연, 월) +describe('get Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + month: 1 + } + const res = await request(app) + .get('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(400) + expect(res.body) + .toEqual({ + message: "KEY_ERROR_CHOOSE_YEAR" + }); + }); +}); + +// 잔여 용돈 조회 성공 (특정 가족 유저의 특정 연, 월의 잔여 용돈) +describe('get RestAllowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + year: 2023, + month: 1 + } + const res = await request(app) + .get('/allowance/rest') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(200) + expect(res.body) + .toEqual({ + message: "GET_SUCCESS", + restAllowance: 462500 + }); + }); +}); + +// 잔여 용돈 조회 실패 (query 부족으로 인한 key error) +describe('get RestAllowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + month: 1 + } + const res = await request(app) + .get('/allowance/rest') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(400) + expect(res.body) + .toEqual({ + message: "KEY_ERROR" + }); + }); +}); + +// 용돈 수정 성공 (관리자만) +describe('put Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestBody = { + userName: "김지훈", + allowance : 700000, + year: 2023, + month: 1 + } + const res = await request(app) + .put('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .send(requestBody); + + expect(res.status).toBe(200) + expect(res.body) + .toEqual({ + message: "PUT_SUCCESS" + }); + }); +}); + +// 용돈 수정 실패 (req.query 의 key/value 부족으로 인한 key error) +describe('put Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestBody = { + userName: "김지훈", + allowance : 700000, + month: 1 + } + const res = await request(app) + .put('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .send(requestBody); + + expect(res.status).toBe(400) + expect(res.body) + .toEqual({ + message: "KEY_ERROR" + }); + }); +}); + +// 용돈 삭제 성공 (관리자만) +describe('delete Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + year: 2023, + month: 1 + } + const res = await request(app) + .delete('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(200) + expect(res.body) + .toEqual({ + message: "DELETE_SUCCESS" + }); + }); +}); + +// 용돈 삭제 실패 (존재하지 않거나 삭제된 용돈을 삭제하려 하는 경우 404 error) +describe('delete Allowance', () => { + let app; + + beforeAll(async() => { + app = createApp() + await appDataSource.initialize(); + for (let i=0; i { + for (let i=0; i { + const requestQuery = { + userName: "김지훈", + year: 1200, + month: 1 + } + const res = await request(app) + .delete('/allowance') + .set('Authorization', `Bearer ${supplies.token}`) + .query(requestQuery); + + expect(res.status).toBe(404) + expect(res.body) + .toEqual({ + message: "NOT_EXISTING_OR_DELETED_ALLOWANCE" + }); + }); +}); \ No newline at end of file diff --git a/test/testSupplies.js b/test/testSupplies.js new file mode 100644 index 0000000..754bf4f --- /dev/null +++ b/test/testSupplies.js @@ -0,0 +1,1199 @@ +const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Imp3azIzNDVAbmF2ZXIuY29tIiwiaWQiOjEsImlhdCI6MTcwMDIwMjIwM30.ZHLV5b0pDYzaMbdlQtIVqTT63hy02eOi1pZNuE4_qx4' + +const startQuery = [ + `SET foreign_key_checks = 0`, + `TRUNCATE users`, + `TRUNCATE families`, + `TRUNCATE users_families`, + `TRUNCATE budget`, + `TRUNCATE roles`, + `TRUNCATE flow_type`, + `TRUNCATE categories`, + `TRUNCATE allowances`, + `TRUNCATE money_flows`, + `TRUNCATE fixed_money_flows`, + `TRUNCATE fixed_money_flows_group`, + `TRUNCATE middle_fixed_money_flows`, + `SET foreign_key_checks = 1`, + `INSERT INTO roles(name) VALUES("일반")`, + `INSERT INTO roles(name) VALUES("관리자")`, + `UPDATE roles SET id = 0 WHERE id = 1`, + `UPDATE roles SET id = 1 WHERE id = 2`, + `INSERT INTO flow_type(status) VALUES("수입")`, + `INSERT INTO flow_type(status) VALUES("지출")`, + `INSERT INTO categories(category) VALUES("생활비")`, + `INSERT INTO categories(category) VALUES("공과금")`, + `INSERT INTO categories(category) VALUES("기타")`, + `INSERT INTO categories(category) VALUES("기타사항")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김지훈", "jwk2345@naver.com", "1980-1-09", "010-6666-6666")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("이아영", "threesl@gmail.com", "1985-12-09", "010-3333-3333")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김지영", "fivesl@gmail.com", "2000-3-09", "010-5555-5555")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김민기", "foursl@gmail.com", "2005-4-19", "010-4444-4444")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김민수", "minsu@gmail.com", "1990-5-25", "010-7777-7777")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("이희진", "lemontreel@gmail.com", "1985-12-09", "010-3333-3333")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김하늘", "haneul@gmail.com", "1995-8-12", "010-8888-8888")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김하루", "haru@gmail.com", "2010-2-14", "010-9999-9999")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("이승호", "seungho@gmail.com", "1988-7-30", "010-1111-1111")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("김이서", "orangetree@gmail.com", "1985-12-09", "010-3333-3333")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("이수진", "soojin@gmail.com", "1992-10-18", "010-2222-2222")`, + `INSERT INTO USERS(name, email, birthdate, phone_number) VALUES("이다은", "daeun@gmail.com", "2015-6-5", "010-1234-5678")`, + `INSERT INTO families(auth_code) VALUES("alkj23as")`, + `INSERT INTO families(auth_code) VALUES("ldkdslk3")`, + `INSERT INTO families(auth_code) VALUES("ghjjdlf3")`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(1, 1, 1)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(2, 1, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(3, 1, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(4, 1, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(5, 2, 1)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(6, 2, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(7, 2, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(8, 2, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(9, 3, 1)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(10, 3, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(11, 3, 0)`, + `INSERT INTO users_families(user_id, family_id, role_id) VALUES(12, 3, 0)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 3000000, 2023, 1)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 3500000, 2023, 2)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 3000000, 2023, 3)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 3000000, 2023, 4)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 5)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 6)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 7)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 8)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 9)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 10)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 5000000, 2023, 11)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(1, 4500000, 2023, 12)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3000000, 2023, 1)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3500000, 2023, 2)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3200000, 2023, 3)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 4200000, 2023, 4)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3700000, 2023, 5)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 2400000, 2023, 6)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 2600000, 2023, 7)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 2600000, 2023, 8)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 2900000, 2023, 9)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3300000, 2023, 10)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 3500000, 2023, 11)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(2, 4200000, 2023, 12)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 1)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 2)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4900000, 2023, 3)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 4)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 5)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 6)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 7)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 8)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 9)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 10)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 11)`, + `INSERT INTO budget(family_id, budget, year, month) VALUES(3, 4200000, 2023, 12)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 1, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 2, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 3, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 4, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 5, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 6, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 7, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 8, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 9, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 10, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 11, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 398000, 1, 2023, 12, 11)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 1, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 2, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 3, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 4, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 5, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 6, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 7, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 8, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 9, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 10, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 11, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 89000, 1, 2023, 12, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 1, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 2, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 3, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 4, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 5, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 6, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 7, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 8, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 9, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 10, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 11, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 210000, 5, 2023, 12, 27)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 1, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 2, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 3, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 4, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 5, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 6, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 7, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 8, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 9, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 10, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 11, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 69000, 5, 2023, 12, 3)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 1, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 2, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 3, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 4, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 5, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 6, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 7, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 8, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 9, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 10, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 11, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '보험료', 340000, 9, 2023, 12, 16)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 1, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 2, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 3, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 4, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 5, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 6, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 7, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 8, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 9, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 10, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 11, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '인터넷 이용료', 57000, 9, 2023, 12, 18)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 1, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 2, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 3, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 4, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 5, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 6, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 7, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 8, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 9, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 10, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 11, 28)`, + `INSERT INTO fixed_money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '월세', 900000, 9, 2023, 12, 28)`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO fixed_money_flows_group() VALUES()`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(1,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(2,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(3,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(4,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(5,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(6,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(7,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(8,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(9,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(10,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(11,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(12,1)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(13,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(14,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(15,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(16,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(17,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(18,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(19,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(20,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(21,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(22,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(23,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(24,2)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(25,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(26,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(27,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(28,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(29,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(30,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(31,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(32,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(33,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(34,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(35,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(36,3)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(37,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(38,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(39,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(40,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(41,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(42,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(43,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(44,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(45,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(46,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(47,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(48,4)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(49,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(50,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(51,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(52,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(53,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(54,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(55,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(56,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(57,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(58,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(59,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(60,5)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(61,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(62,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(63,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(64,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(65,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(66,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(67,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(68,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(69,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(70,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(71,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(72,6)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(73,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(74,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(75,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(76,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(77,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(78,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(79,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(80,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(81,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(82,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(83,7)`, + `INSERT INTO middle_fixed_money_flows(fixed_money_flow_id, fixed_money_flow_group_id) VALUES(84,7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 1, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 1, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 1, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 1, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 2, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 2, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 3, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 3, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 3, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 3, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 4, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 4, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 4, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 4, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 5, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 5, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 5, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 5, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 6, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 6, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 6, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 6, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 7, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 7, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 7, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 8, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 8, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 8, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 8, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 9, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 9, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 9, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 9, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 10, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 10, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 10, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 10, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 11, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 2, 2023, 11, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 1, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 2, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 3, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 5, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 7, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 9, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 10, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 1, 2023, 11, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 1, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 1, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 2, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 2, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 3, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 3, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 4, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 5, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 6, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 6, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 7, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 7, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 8, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 8, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 9, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 9, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 10, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 3, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 1, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 1, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 1, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 1, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 2, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 2, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 3, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 3, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 3, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 3, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 4, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 4, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 4, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 4, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 5, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 5, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 5, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 5, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 6, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 6, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 6, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 6, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 7, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 7, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 7, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 8, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 8, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 8, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 8, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 9, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 9, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 9, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 9, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 10, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 10, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 10, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 10, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 11, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '식재료', 120000, 6, 2023, 11, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 1, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 2, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 3, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 5, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 7, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 9, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 10, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 5, 2023, 11, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 1, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 1, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 2, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 2, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 3, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 3, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 4, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 5, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 6, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 6, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 7, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 7, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 8, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 8, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 9, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 9, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 10, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 7, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 1, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 2, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 3, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 5, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 7, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 9, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 10, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(3, 2, '실내낚시', 6000, 9, 2023, 11, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 1, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 1, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 2, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 2, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 3, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 3, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 4, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 5, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 6, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 6, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 7, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 7, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 8, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 8, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 9, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 9, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 10, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '탕후루', 8000, 12, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 1, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 2, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 3, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 4, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 5, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 6, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 7, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 8, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 9, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 10, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 11, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 1, 2023, 12, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 1, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 3, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 5, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 7, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 8, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 9, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 10, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 11, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 5, 2023, 12, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 1, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 2, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 3, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 4, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 5, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 7, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 8, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 9, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 10, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 11, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '담배', 4500, 9, 2023, 12, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 1, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 2, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 3, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 4, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 5, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 7, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 8, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 9, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 11, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 2, 2023, 12, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 1, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 2, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 3, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 4, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 5, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 2)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 6, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 15)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 7, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 8, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 9, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 10, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 3)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 11, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 28)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 6, 2023, 12, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 31)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 1, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 2, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 3, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 4, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 5)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 5, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 9)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 13)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 6, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 18)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 7, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 7)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 26)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 10)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 8, 19)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 29)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 8)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 23)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 9, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 30)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 4)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 6)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 10, 16)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 25)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 1)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 12)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 21)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 24)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 11, 14)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 11)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 20)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 27)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 22)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 17)`, + `INSERT INTO money_flows(category_id, flow_type_id, memo, amount, user_id, year, month, date) VALUES(1, 2, '커피와 디저트', 12500, 10, 2023, 12, 9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,500000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(1,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(2,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(3,100000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(4,80000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(5,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,200000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(6,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(7,100000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(8,80000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(9,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(10,600000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(11,100000,2023,12)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,1)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,2)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,3)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,4)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,5)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,6)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,7)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,8)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,9)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,10)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,11)`, + `INSERT INTO ALLOWANCES(user_id, amount, year, month) VALUES(12,80000,2023,12)` +] + +const truncate = [ + `SET foreign_key_checks = 0`, + `TRUNCATE users`, + `TRUNCATE families`, + `TRUNCATE users_families`, + `TRUNCATE budget`, + `TRUNCATE roles`, + `TRUNCATE flow_type`, + `TRUNCATE categories`, + `TRUNCATE allowances`, + `TRUNCATE money_flows`, + `TRUNCATE fixed_money_flows`, + `TRUNCATE fixed_money_flows_group`, + `TRUNCATE middle_fixed_money_flows`, + `SET foreign_key_checks = 1` +] + + +module.exports = { + token, + truncate, + startQuery, +} \ No newline at end of file From a110b32685a7dfec9394db71537735f777fa8a84 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Tue, 21 Nov 2023 19:26:23 +0900 Subject: [PATCH 07/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20controller=20console.log()=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index 23785a5..aaade51 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -77,9 +77,7 @@ const getRestAllowance = async (req, res) => { } const userId = await usersFamilyService.getAuthenticUserId(familyId, userName); const allowance = await allowanceService.getAllowanceByUserIdByYearMonthAndGetAmount(userId, year, month); // 해당 유저의 해당 연, 월의 용돈을 찾습니다. - console.log('>>>>>>>>', allowance) const sumOfUsage = await moneyFlowService.getUsedMoneyFlowsByYearMonthAndGetSum(userId, year, month); - console.log(sumOfUsage) const restAllowance = allowance - sumOfUsage return res.status(200).json({message: 'GET_SUCCESS', restAllowance: restAllowance}); } catch (err) { From e5ef2df2d8730103372ea91d1be2b9478e2fa132 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Tue, 21 Nov 2023 19:27:35 +0900 Subject: [PATCH 08/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EB=B6=88=ED=95=84=EC=9A=94=20=EC=A4=84=EB=B0=94=EA=BF=88=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/allowanceController.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controllers/allowanceController.js b/src/controllers/allowanceController.js index aaade51..398adc0 100644 --- a/src/controllers/allowanceController.js +++ b/src/controllers/allowanceController.js @@ -58,7 +58,6 @@ const getAllowancesByCondition = async (req, res) => { // 일반 유저도 가 const allowances = await allowanceService.getAllowanceByUserIdByYearMonth(familyUsersIds, year, month); // 가족 구성원의 해당 연, 월의 용돈을 찾습니다. return res.status(200).json({message: 'GET_SUCCESS', allowances: allowances}); } - } catch(err) { console.error(err); return res.status(err.statusCode || 500).json({message: err.message || 'INTERNAL_SERVER_ERROR'}); From 79eda85146eb5e9e4e901c8d4ec884ed0c8cd64a Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Wed, 22 Nov 2023 02:40:06 +0900 Subject: [PATCH 09/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20.env.test=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20.test.js=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20allowance.test.js=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.test | 8 ++++++++ test/{flow.test.js => allowance.test.js} | 0 2 files changed, 8 insertions(+) create mode 100644 .env.test rename test/{flow.test.js => allowance.test.js} (100%) diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..3d5c268 --- /dev/null +++ b/.env.test @@ -0,0 +1,8 @@ +TYPEORM_CONNECTION=mysql +TYPEORM_HOST=127.0.0.1 +TYPEORM_USERNAME=root +TYPEORM_PASSWORD=1234 +TYPEORM_DATABASE=testwonbook +TYPEORM_PORT=3306 +TYPEORM_SERVER_PORT=8000 +SECRET_KEY=FINPONG \ No newline at end of file diff --git a/test/flow.test.js b/test/allowance.test.js similarity index 100% rename from test/flow.test.js rename to test/allowance.test.js From ebee9ed991df749d790b06e5b8485f77cb3d8a63 Mon Sep 17 00:00:00 2001 From: ChoiHs Date: Wed, 22 Nov 2023 06:08:24 +0900 Subject: [PATCH 10/10] =?UTF-8?q?ADD:=20=EC=9A=A9=EB=8F=88=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20allowanceDao=20select=20as=20=EC=98=A4=ED=83=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/allowanceDao.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/models/allowanceDao.js b/src/models/allowanceDao.js index aa9de53..80186ca 100644 --- a/src/models/allowanceDao.js +++ b/src/models/allowanceDao.js @@ -18,7 +18,7 @@ const postAllowance = async (userId, amount, year, month) => { const getAllowance = async (userId) => { // 최신 순 return await appDataSource.query( ` - SELECT allowances.id, users.name as userName, allowances.amount as allowance as allowance, allowances.year, allowances.month + SELECT allowances.id, users.name as userName, allowances.amount as allowance, allowances.year, allowances.month FROM allowances JOIN users ON allowances.user_id = users.id