๊ฐœ๋ฐœ๊ตฌ๋ฆฌ๐Ÿธ

๋…ธ๋“œ ํ•™์Šต 17์ผ์ฐจ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์˜ค๋Š˜์€ ์‹œํ€„๋ผ์ด์ฆˆ ๋ชจ๋ธ ์ƒ์„ฑ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์ƒ์„ฑ ๋ชจ๋ธ์€ ์„ค์ •ํ•˜๊ธฐ ๋‚˜๋ฆ„์ด์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. const Sequelize = require('sequelize'); class {๋ชจ๋ธ๋ช…} extends Sequelize.Model { static initiate(sequelize){ {๋ชจ๋ธ๋ช…}....

๋…ธ๋“œ ํ•™์Šต 16์ผ์ฐจ

์˜ค๋Š˜์€ Node.js์— MongoDB๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์—ฐ๊ฒฐํ•ด๋ดค์Šต๋‹ˆ๋‹ค. MongoDB ํ˜„์žฌ NoSQL ์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ ์œ ์œจ์„ ์ฐจ์ง€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž…๋‹ˆ๋‹ค. NoSQL์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. SQL๊ณผ NoSQL ๋น„๊ต ย  SQL NoSQL ...

MongoDB ์„ค์น˜

๋ชฉ์ฐจ MongoDB ์„ค์น˜ MongoDB Shell ์„ค์น˜ MongoDB ์‹คํ–‰ MongoDB Shell ์‹คํ–‰ํ–‰ ๊ณ„์ • ์ƒ์„ฑ ๊ณ„์ • ๋กœ๊ทธ์ธ MongoDB ์„ค์น˜ https://www.mongodb.com/try/download/community ์œ„ ๋งํฌ์—์„œ OS์— ๋งž๋Š” ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ ํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๊ณผ์ • ์ค‘ MongoDB ...

๋…ธ๋“œ ํ•™์Šต 15์ผ์ฐจ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ๊ด€๊ณ„ ์ฟผ๋ฆฌ SQL์˜ JOIN์˜ ์—ญํ• ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‹œํ€„๋ผ์ด์ฆˆ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. include ์‹œํ€„๋ผ์ด์ฆˆ์˜ ์กฐํšŒ ๊ธฐ๋Šฅ์— include ๋ฅผ ํ†ตํ•ด JOIN ๊ณผ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. const user = await User.findOne({ include:[ { ...

๋…ธ๋“œ ํ•™์Šต 14์ผ์ฐจ

์‹œํ€„๋ผ์ด์ฆˆ ์ฟผ๋ฆฌ ํ•จ์ˆ˜ ์ •๋ฆฌ ์ƒ์„ฑ Model.create() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ. await ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€์ˆ˜๋กœ ์ €์žฅ ๊ฐ€๋Šฅ. ์˜ˆ์‹œ) const user = await User.create( { username: 'alice123', isAdmin: true, }, { fields: ['username'] }, )...

๋…ธ๋“œ ํ•™์Šต 13์ผ์ฐจ

๋ชฉ์ฐจ ์‹œํ€„๋ผ์ด์ฆˆ ์„ค์น˜๋ฐฉ๋ฒ• ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ • ๊ด€๊ณ„ ์ •์˜ ์‹œํ€„๋ผ์ด์ฆˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์œผ๋กœ DB ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ORM(Object-Relational Mapping) ์„ค์น˜ ๋ฐฉ๋ฒ• npm i sequelize sequelize-cli ์—ฌ๊ธฐ์„œ sequelize ๋Š” ์‹œํ€„๋ผ์ด์ฆˆ ๋ชจ๋“ˆ์˜ ๋ณธ์ฒด๊ณ  sequeliz...

๋…ธ๋“œ ํ•™์Šต 12์ผ์ฐจ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ํ…œํ”Œ๋ฆฟ ์—”์ง„ ๋„Œ์ ์Šค (nunjucks) ๋„Œ์ ์Šค ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ธํŒ… ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. npm i nun nunjucks ์„ค์น˜ํ•œ ๋„Œ์ ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด app.js ์—์„œ ๋ช…์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ... const express = require('express'); const nunjucks = require('...

Input ํŒŒ์ผ ํƒ€์ž… ์ œํ•œํ•˜๊ธฐ

ํŒŒ์ผ ์—…๋กœ๋“œ์˜ ํ™•์žฅ์ž๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ๋Š” HTML์—์„œ ๋ถ€ํ„ฐ ํ™•์žฅ์ž๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํŠน์ •ํ•œ ํ™•์žฅ์ž๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ๋•Œ๋กœ๋Š” ํŠน์ • ์œ ํ˜•์˜ ํƒ€์ž…์„ ๋ฐ›๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ™•์žฅ์ž ์ •๋ณด๋Š” IANA ์—์„œ ์ •ํ•œ MIME ํƒ€์ž…์„ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ : https://www.iana.o...

Burp Suite ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ๋ช‡ ๋‹ฌ ํ›„ ๋ณด์•ˆ ์ทจ์•ฝ์  ์—…๋ฌด์—์„œ ํ—ˆ๋•์ผ ์ €์™€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๋ถ„๋“ค์„ ์œ„ํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ ์„ค์น˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์‹œ์ž‘ ํ”„๋ก์‹œ ํ™˜๊ฒฝ ์„ค์ • ์ „์šฉ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉํ•˜๊ธฐ ์œˆ๋„์šฐ ํ”„๋ก์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ํฌ๋กฌ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉํ•˜๊ธฐ(์ถ”์ฒœ) ...

์ธ๊ธฐ ํƒœ๊ทธ