์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ํฌ๋กค๋ง
- heapq
- ๊ฐ๋ฐ
- javascript
- ๊ตญ๋น์ง์
- ์ฝ๋ฉํ ์คํธ
- HTML
- ๊ทธ๋ฆฌ๋
- KDT
- ์๊ณ ๋ฆฌ์ฆ
- ๋ชจ๊ฐ์ฝ
- mongodb
- node.js
- ํ์ด์ฌ
- react
- ํ๋ก์ ํธ
- ํ๋ก ํธ์๋
- CSS
- ๋ ธ๋ง๋์ฝ๋
- Til
- ํ ์ดํ๋ก์ ํธ
- ์ฝ๋ฉ์ ํ
- error
- Python
- fe
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋๋ฆผ์ฝ๋ฉ
- JS
- ๋ฐฑ์ค
- ์ฝ๋ฉ
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (181)
๐ฑ → ๐ณ
๐ Cookie : HTTP ์ฟ ํค๋ ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ์ฌ ์ ์ฅํ๋ ์์ ๋ฐ์ดํฐ ์ ์ฅ์ JS์ ๊ฐ์ฒด์ฒ๋ผ key ๊ฐ๊ณผ, data๊ฐ ๋ค์ด ์์ ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ, ๋์ผํ ์๋ฒ์ ๋ค์ ์์ฒญ์ ๋ณด๋ด๊ฒ ๋ ๋ ์ฟ ํค์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ํจ๊ป ์ ์ก ์๋ฒ์์๋ ์ฟ ํค๋ฅผ ํตํด ์์ฒญ์ด ์ด๋ค ๋ธ๋ผ์ฐ์ ์ ๋ค์ด์๋์ง(ํน์ ์์ฒญ์ด ๋์ผํ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด์๋์ง) ๋ฑ์ ํ์ ํ ์ ์์ ์๋ฒ์ ์ ์ฅํด์ผ ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ -> ๋ก๊ทธ์ธ ์ ๋ณด, ์ฅ๋ฐ๊ตฌ๋, ํ์ ํ๋ฃจ ๋์ ์ ๋ณด๊ธฐ ๋ฑ ์ค์ํ ์ ๋ณด(์ด๋ฆ, ๋ฐ์ดํฐ, ๋ง๋ฃ์ผ, ๊ฒฝ๋ก ๋ฑ)๋ ๋ก์ปฌ์ ๋จ๊ฒ ๋๋ฏ๋ก ์ ๋ ์ ์ฅํด์๋ ์๋จ โ Cookie์ ๋์ ๋ฐฉ์ โ ํ๋ก ํธ์์ ์ฟ ํค ์ฌ์ฉํ๊ธฐ (์ฌ์ฉ X, ํธ๋ฒ) document.cookie๋ก ์ฌ์ฉ expires๊ฐ๊ณผ ๋ธ..
๐ MongoDB(Humongous DB) ์ฅ์ data๋ฅผ ์ต์ํ JSON ํํ๋ก ์ฒ๋ฆฌ -> ๋น ๋ฅด๊ฒ JSON ์ ํ ๊ฐ๋ฅ DB ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์ฉ์ด ์ ์ฝ์ด ์์ -> ๋์ ์ํ ํ์ฅ์ฑ, ์คํค๋ง ์ค๊ณ์ ์ ์ฐ์ฑ ๋จ์ ํ์ค์ด ์์(= ์ ์ฝ์ด ์์) ๋ฐ์ดํฐ๊ฐ ๊ตฌ์กฐํ ๋์ด์์ง ์์ ๋จ์ํ ๊ตฌ์กฐ์ ์ฟผ๋ฆฌ๋ง ์ฌ์ฉ ๊ฐ๋ฅ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฐ ์์ ์ฑ์ DB๊ฐ ์๋ APP ๋ ๋ฒจ์์ ๊ด๋ฆฌํด์ค์ผ ํจ -> ๋ฒ๊ทธ ๋ฐ์ ํ๋ฅ ๋์ โ MongoDB์ ๊ตฌ์กฐ โ MongoDB ํจํค์ง ์ค์น mongoDB์ฉ js ํ์ผ ์์ฑ routes/mongo.js ํ์ผ ์์ฑ npm i mongodb ๐ mongo.js ํ์ผ ์คํ node routes/mongo.js ์๋ฌด๋ฐ ๋ฉ์์ง๊ฐ ์๋จ๋ฉด ์ ์์ ์ผ๋ก ์ ์์ด ๋ ๊ฒ ๐ MongoDB ์ ์์ฉ ํจ์ ์์ฑ ํด๋ผ์ฐ๋ ..
๐ DBMS : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด์ํ๋ SW ๋ค์ํ ํํ, ์๋น์ค๊ฐ ์กด์ฌ โ SQL (Structured Query Language) ๊ตฌ์กฐ๊ฐ ์๋ ์ง๋ฌธ์ฉ ์ธ์ด SELECT, INSERT, UPDATE, DELETE ๊ฐ์ ์ธ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ธ์ด ๋ค์์ DBMS๊ฐ SQL ๋ฐฉ์์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ SQL ์ ๋ฐฐ์ฐ๋ฉด, ๋ง์ DBMS๋ฅผ ๋น๊ต์ ๋น ๋ฅด๊ฒ ์ต๋์ด ๊ฐ๋ฅ MySQL, SQLite, ORACLE ๋ฑ์ด SQL ๊ตฌ๋ฌธ์ ์ฌ์ฉ ๐ DB์ ์ข ๋ฅ ๊ด๊ณํ(SQL) vs ๋น๊ด๊ณํ(NoSQL) โ ๊ด๊ณํ, Relational DBMS(RDBMS) : SQL์ ์ฌ์ฉํ๋ DB ํค์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ ์ด๋ธํ ์ํจ ์์น์ ํ ๋๋ก DB๋ฅผ ๊ตฌ์ฑ ์ฆ, ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋จ ๋จผ์ ํ ์ด๋ธ์ด ๊ตฌ์ฑ๋๊ณ ํ ์ด๋ธ์ ๊ตฌ์กฐ์ ..
front์ form์ผ๋ก back์๊ฒ ๋ฐ์ดํฐ ๋ณด๋ด๊ธฐ form XMLHttpRequest Jquery Fetch() ๐ users.ejs์ form ์ถ๊ฐ ๐form action : ๋ณด๋ด๊ณ ์ ํ๋ ์ฃผ์ ๊ฐ method: ๋ณด๋ด๋ method ์ค์ (get, post ๋ง ๊ฐ๋ฅ) input์ name ์์ฑ์ ์๋ฒ์์ ๋ฐ์ ๋ ํ๋ ๊ฐ์ด ๋จ ๋ฒํผ type์ผ๋ก submit์ ํ๋ฉด ํด๋น ํผ์ ๋ด์ฉ์ ์ง์ ํ ๋ฐฉ์ + ์ฃผ์๋ก ์ ๋ฌ ์์ด๋ ์ด๋ฆ ์ด๋ฉ์ผ Submit โ body-parser ๋ชจ๋ ์ฌ์ฉ : form์์ ์ ์ก ๋, ์ ๋ณด๋ฅผ req.body์ ๋ด์์ obj๋ก ์ ๋ฌํด์ฃผ๋ ์ญํ body-parser๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋์ ๊ฐ์ ์ฝ๋๋ก ๋ฐ์ดํฐ๋ฅผ body์ ๋ฃ์ ๋ค์, ์ธ์ฝ๋ฉ์ฒ๋ฆฌ๊น์ง ํด์ค์ผํจ (body-parser๋ ์๋์ผ..
์๋ฒ err๊ฐ ๋ฐ์ํ๋ฉด err๋ฅผ ๋ฐ์์ํจ ๋ค์ err ๋ฉ์์ง์ status ์ฝ๋๋ฅผ ์ ๋ฌํด ์ค์ผํจ ๐error ๋์ง๊ธฐ router.get('/:id', (req, res) => { const userData = USER.find((user) => user.id === req.params.id); if (userData) { res.send(userData); } else { const err = new Error('ID not found'); err.statusCode = 404; throw err; } }); ์ด๋ฐ ๋ฐฉ์์ผ๋ก err๊ฐ ๋ฐ์ํ ์ง์ ์์ new Error๋ฅผ ํตํด err ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ throw๋ก ์ ๋ฌ ์ด๋ฐ ์์ผ๋ก err๊ฐ ๋ฐ์ํ๋๋ฐ ์ด๋ฐ ํ์ด์ง๋ ๊ฐ๊ธ์ ํผํ๋ ํธ์ด ์ข์ผ๋ฏ๋ก app.js์์ ..
๐ view engine โ EJS ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ view engine HTML ๋ฌธ๋ฒ ์ฌ์ฉ ๋ ์ด์์ ๊ธฐ๋ฅ X โ pug HTML ๋ฌธ๋ฒ์ ๋จ์ํํ์ฌ ์ฌ์ฉ ๋ ์ด์์ ๊ธฐ๋ฅ O โ nunjucks HTML ๋ฌธ๋ฒ์ ๊ทธ๋๋ก ์ฌ์ฉ ๋ ์ด์์ ๊ธฐ๋ฅ O โ๏ธ EJS ์ฌ์ฉํ๊ธฐ npm i -d ejs express์ ์ด๋ค view engine ์ฌ์ฉํ ์ง ์๋ฆฌ๊ธฐ (์๋ฒ์ฝ๋) app.set('view engine', 'ejs'); ํด๋ ๊ฐ์ฅ ์ธ๋ถ์ views ํด๋ ๋ง๋ค๊ณ ๋ด๋ถ์ index.ejx ํ์ผ ๋ง๋ค๊ธฐ localhost:port๋ฒํธ/users ๊ธฐ๋ณธ ์์ฒญ์ด ๋ค์ด์ค๋ฉด index.js ํ์ผ ๋์ฐ๊ธฐ userRouter.get('/', (req, res) => { res.render('index'); }); ๐ ejs ๋์ ์น ์..
๐ file-system : node์ ๋ชจ๋์ด๋ผ commonJS ๋ฐฉ์์ผ๋ก ๋ถ๋ฌ ์ฌ ์ ์์ const fs = require('fs'); โ readFile : ํ์ผ์ ์ฝ์ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋ ํ์ผ์ ์ฝ๋ ๊ฒ๋ ์๊ฐ์ด ํ์ํ ์์ ์ด๋ฏ๋ก -> callback ์ฌ์ฉ fs.readFile('ํ์ผ์์น','์ ๋์ฝ๋ํฌ๋งท',callback(err, data) {}) err : ํ์ผ ์ฝ๊ธฐ๊ฐ ์ ์๋์์ ๋, error ์ฝ๋ ๋ฐํ data: ํ์ผ ์ฝ๊ธฐ๊ฐ ์ ๋์์ ๋, ์ฝ์ data ๋ฐํ const fs = require('fs'); fs.readFile('readme.txt', 'utf-8', (err, data) => { if (err) { console.log(err); } else { console.log(dat..
๐ DOTENV : ์ค์ํ ์ ๋ณด(์๋ฒ ์ ์ ์ ๋ณด ๋ฑ)์ ์ธ๋ถ ์ฝ๋์์ ํ์ธ์ด ๋ถ๊ฐ๋ฅ ํ๋๋ก ๋์์ฃผ๋ ๋ชจ๋ ๐ ์ค์น npm i dotenv -s ๐ app.js์ ๋ชจ๋ ํธ์ถํ๊ธฐ require('dotenv').config(); ๐ .envํ์ผ์ ์ต์๋จ ํด๋์ ๋ง๋ค๊ธฐ ์ค์ํ ์ ๋ณด๋ฅผ .env ํ์ผ์ ์ ์ฅ (PORT, mongoDB URI ๋ฑ ) ํด๋น ์ ๋ณด๊ฐ ํ์ํ ๊ณณ์์ process.env.์ ์ฅ๋ช ์ผ๋ก ์ฌ์ฉ const uri = process.env.DB_URI; ๐ .env ํ์ผ์ ์ค์ํ ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ git์ ๋ฑ๋กํ์ง ์์ ! (gitignore์ ๋ฑ๋ก) ๋ฐ๋ผ์, ํด๋น ํ์ผ์ ์ง์ ์ ๋ก๋ ํ๋ฉด์ ์ฌ์ฉ โ ์ฐธ๊ณ , .gitignore์ด ์๋ ๋ ! git๋ ์บ์ฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ์ ํด๋น ๋ด์ฉ์ด ๋จ์ ์..