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

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

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์ด๋ฒˆ์—” passport ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ํ–ˆ๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„์„œ ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ด๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๋„ค์š” ํŠนํžˆ๋‚˜ ์ž๋ฐ”๋ฅผ ํ˜„์—…์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์ €๋Š” ํ•จ์ˆ˜ ๋‚ด์— return ์—†์ด ๋ฏธ๋“ค์›จ์–ด ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ˜ธ์ถœ๋ถ€๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฒƒ ๊ฐ™์€ ๋ถ€๋ถ„์ด ์ดํ•ด๊ฐ€ ์•ˆ๋˜์–ด์„œ ๋งŽ์ด ํ˜ผ๋™์ด ์™”์Šต๋‹ˆ๋‹ค. passport pa...

๋…ธ๋“œ ํ•™์Šต 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...

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