์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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
- node.js
- ์ฝ๋ฉ
- ํ๋ก์ ํธ
- javascript
- ์ฝ๋ฉ์ ํ
- ํ์ด์ฌ
- ๋๋ฆผ์ฝ๋ฉ
- ์ฝ๋ฉํ ์คํธ
- ํ ์ดํ๋ก์ ํธ
- KDT
- ๊ตญ๋น์ง์
- ๊ทธ๋ฆฌ๋
- ํ๋ก ํธ์๋
- ๋ ธ๋ง๋์ฝ๋
- react
- ๋ฐฑ์ค
- ํฌ๋กค๋ง
- JS
- ๋ชจ๊ฐ์ฝ
- Til
- ์๊ณ ๋ฆฌ์ฆ
- mongodb
- Python
- CSS
- HTML
- error
- ๊ฐ๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- fe
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (181)
๐ฑ → ๐ณ
๐ Static : ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ํด๋์ ์์น๋ฅผ ์ง์ ํด ์ฃผ๋ ์ญํ app.use(express.static('views')); ์์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ํด๋ ๊ฒฝ๋ก์ ์์์ -> localhost:4000/views ./ ์ ์๋ ๊ฒฝ๋ก -> localhost:4000/views/ ์ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ํด๋๋ฅผ ์ค์ ํ๋ ๋งํผ ๋๋ฌด ๋ง์ ํด๋๋ฅผ ์ ํ๋ ๊ฒ์ ํผํ๋ ํธ์ด ์ข์ ๋ณดํต public ์ด๋ผ๋ ํด๋๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํด ๋๊ณ ํด๋น ํด๋๋ง ์ค์ public ํด๋์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๋ฑ์ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผ์ด ๊ฐ๋ฅํ ํด๋๋ก์จ ๋ณดํต CSS, ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ JS, ์ด๋ฏธ์ง ๋ฑ์ ์์น ๐ Express ๊ธฐ๋ณธ ํด๋ ๊ตฌ์กฐ /images = /img /jav..
๐ URL ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ โ req.params ๋ฐ์ url์์ :ํ๋ผ๋ฏธํฐ๋ช ์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๋ฉด ํด๋น ๋ด์ฉ์ req.params ์ ๋ด๊ฒจ์ ์ ๋ฌ๋จ app.get('/:id', (req, res) => { console.log(req.params); res.send(`ID ๋ฒํธ๊ฐ ${req.params.id} ์ธ ํ์ ์ ๋ณด`); }); data ์ฌ๋ฌ ๊ฐ ๋ฐ๊ธฐ๋ ๊ฐ๋ฅ req.params ๋ผ๋ ๊ฐ์ฒด์ ๋ด๊ฒจ์ ์ ๋ฌ์ด ๋์ด์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅ app.get('/:id/:name/:gender', (req, res) => { console.log(req.params); res.send(req.params); }); โ req.query params ์ ์ฝ์ ์ ์ ์ ๋ ํํ๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์์ ๋ง ..
๐ middleware๋? (์ฌ์ ์ ์๋ฏธ) ์๋ก ๋ค๋ฅธ ์ดํ๋ฆฌ์ผ์ด์ (ํ๋ก๊ทธ๋จ)์ด ์๋ก ํต์ ์ ํ๋๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ์ฆ, ์์ชฝ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ์ด๋ฐ์์ ์ญํ ์ ํ๋ ์ํํธ์จ์ด Express: ๋ฒก์๋ ์๋น์ค ๊ตฌ์ฑ์ ์ํ ๋ค์ํ ์ํฉ์ ๋ง๋ ์ฌ๋ฌ๊ฐ์ง ์๋น์ค๋ฅผ ๋ฏธ๋ค์จ์ด ํํ๋ก ์ ๊ณต Express ์์์ ๋ฏธ๋ค์จ์ด๋ ์๋ฒ์ ๋ค์ด์จ ์์ฒญ์ด ๋ค์ด์์ ์๋ต์ผ๋ก ๋๊ฐ ๋ ๊น์ง ๊ฑฐ์น๋ ๋ชจ๋ ํจ์ ๋๋ ๊ธฐ๋ฅ์ ์๋ฏธ ์์ฒญ -> ๋ฏธ๋ค์จ์ด -> ์๋ต โ middleware ์ฌ์ฉํ๊ธฐ Express ์์๋ app.use ๋๋ app.method ํจ์๋ฅผ ์ด์ฉํด์ ๋ฏธ๋ค์จ์ด ์ฌ์ฉ ๊ธฐ์กด์ ํจ์๋ฅผ ์ ์ธํ์ฌ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ, ์์ ๋ฉ์๋๋ฅผ ์ด์ฉํด์ req, res ์ ๋ํ ์ฒ๋ฆฌ app.use(‘์์ฒญ ์ฃผ์‘, (req, res, next) =>..
๐ ์ ๊ฐ๊ตฌ๋ฌธ(Spread Syntax) 2015๋ ์ ์ถ๊ฐ ๋ ๋ฌธ๋ฒ ๋ฒก์๋์์ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์์ฃผ ์ฌ์ฉ ๋ณํฉ, ๊ตฌ์กฐ ๋ถํด ํ ๋น ๋ฑ์ ๋ค์ํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด์ ๊ฐ์ ํ๋ํ๋ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ํฉ๋ฟ๋ฆฌ๋ ์ญํ ์ํ๋ ๋ณ์ ์์ ...์จ์ฃผ๋ฉด ๋จ ๐ ์์1 const arr = [1, 2, 3, 4, 5, 6]; console.log(arr); //[ 1, 2, 3, 4, 5, 6 ] console.log(...arr); //1 2 3 4 5 6 ๐ ์์2 function spread(first, ...rest) { console.log(first); console.log(rest); } spread(1, 2, 3, 4, 5, 6, 7); ๐ node.js ๋ด์ฅ ๊ฐ์ฒด ์ฌ์ฉํ๊ธฐ ํ์ผ ์์น, ํ์ผ ์ด๋ฆ..
๐ Yarn ์ด๋? Facebook์์ ๋ง๋ ๋ ธ๋ ํํค์ง ๊ด๋ฆฌ์ ๋๊ตฌ npm๊ณผ ์ ํํ๊ฒ ๊ฐ์ ์ผ์ ํด์ค(but, ๊ฐ๋ณ๊ณ ๋น ๋ฆ) + React๋ Facebook์์ ๋ง๋ค์ด์ ์ถํ์ ํธ๋ฆฌํจ โ Yarn์ ์ฅ์ ์๋ ํจํค์ง ๋ฐ์ดํฐ๋ฅผ Cache ์ ์ ์ฅํ์ฌ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ๋ค์ด ๋ฐ์ง ์๊ณ ์ค์น ํฉ๋๋ค -> ์๋๊ฐ ๋ ๋น ๋ฆ ๋๋ค ์์ ์ฑ & ๋ณด์์ฑ Yarn ์ ์ด์ ์ npm์ด ์ ๊ณตํ์ง ์๋ yarn.lock ํ์ผ์ ์ ๊ณต ๊ฐ๋จํ ์ ๋ณด๋ง ํฌํจํ๋ packge.json ์ด ์๋๋ผ ๊ฐ ํจํค์ง์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๋ถ ํฌํจํ๋ lock ํ์ผ์ ์กด์ฌ๋ ์ด๋ ํ๊ฒฝ์์๋ ๊ฐ์ ํจํค์ง๋ฅผ ์ค์นํ ์ ์๋๋ก ๋ณด์ฅ์ ํด์คฌ๊ธฐ ๋๋ฌธ์ ์์ ์ฑ๊ณผ ๋ณด์์ฑ์ด ๋ฐ์ด๋จ ๋์ค์, npm ๋ pakage-lock.json ์ ๋์ ํ์ฌ ์ด์ ๊ฐ์ ๋ฌธ์ ํด๊ฒฐ ์ง๊ธ..
๐ Code Refactoring : ํ๋ก๊ทธ๋จ์ ๋์์ ๋ณํ์ง ์๊ณ , ํ๋ก๊ทธ๋จ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ! ์์ ๊ธฐ์ -> ์๋ก์ด ๊ธฐ์ ์ฝ๋ ๋นํจ์จ -> ํจ์จ(๋ฐ๋ณต๋ฌธ ์ค์ด๊ธฐ, ์ค๋ณต ๊ธฐ๋ฅ ์ ๊ฑฐ, ๋ฉ๋ชจ๋ฆฌ ํจ์จ ์ฆ๋) ์ฝ๋ ๊ฐ๋ ์ฑ ๋์ด๊ธฐ ์ฝ๋์ ํ์ฅ์ฑ ๋์ด๊ธฐ ๐ JS์์ Module ์ฌ์ฉํ๊ธฐ JS ๋ Module ์ ์ง์ํจ ๐ 2๊ฐ์ง ๋ฐฉ์ CommonJS ๋ฐฉ์ ES6 ๋ฐฉ์ โ CommonJS ๋ฐฉ์ node.js์์ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ฐฉ์ ํค์๋ : require/ exports require๋ก ๋ชจ๋์ ๋ถ๋ฌ ์ฌ ๋, ์ฝ๋ ์ด๋ ๊ณณ์์๋ ๋ถ๋ฌ ์ฌ ์ ์์ โ๏ธ ์ ์ฒด ๋ชจ๋๋ก์จ ๋ด๋ณด๋ด๊ณ , ์ ์ฒด๋ฅผ ํ๋์ Obj๋ก ๋ฐ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ animals.js // @ts-check const animals = ['dog', ..
๐ JSDoc ๋? ์ผ์ข ์ ์ฃผ์ ๋ฌ๊ธฐ ๊ฑฐ์ ํ์คํ๊ฐ ๋์ด์ Vscode, Webstorm ๋ฑ ์์๋ ๊ธฐ๋ณธ์ผ๋ก ๊ธฐ๋ฅ์ ์ ๊ณต ํน์ ํํ๋ก ์ฃผ์์ ๋ฌ๋ฉด ํด๋น ์ฃผ์ ๋ด์ฉ์ ํตํด ํจ์์ ๊ธฐ๋ฅ ๋๋ ๋งค๊ฐ ๋ณ์์ ํ์ ๋ฑ์ ๋ฏธ๋ฆฌ ์๋ ค์ค ์ ์์ ์ฃผ์์ ๋ฌ ๋ /** */ ๋ก ๋ฌ๋ฉด ๋จ โ JSDoc ๋ถ๊ฐ ๊ธฐ๋ฅ @todo ๋ฉ๋ชจ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ, ๊ฐ๋ฐํ๋ค๊ฐ ๋ฉ์ถ๋ ๋ค์๋ถํฐ ํด์ผํ ๊ฒ ์จ๋๊ธฐ /** * @todo ๋ด์ผ ์๋ก์ด ๋งค๊ฐ๋ณ์ ์ถ๊ฐ ํด์ผํจ due to 10:30 .. */ @deprecated ๋ ์ด์ ํด๋น ๊ธฐ๋ฅ์ ์ฐ์ง ์์ ๋ ์ถ๊ฐ -> ํจ์ ์ฐ๋ฉด ๊ฐ๋ก์ค์ด ๊ทธ์ด์ง @type {ํ์ ํํ} ๋ณ์์ ํน์ ํ์ ์ ์ฐ๋ผ๊ณ ์๋ ค ์ค ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅ ์์ฆ์ typescript๊ฐ ์ด ์ญํ ์ ๋์ ํด์ค์ ์ ์์ฐ๊ธด ํจ โ JSDoc..
์๋ฃ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ ์ผ๋จ MongoDB์ ์ ์ฅํ ํด๋์ ํ์ผ์ ๋ง๋ค์ด์ผ ํจ database/ collection ๋ง๋ค๊ธฐ โผ 1. MongoDB Atlas ๋ฉ์ธ ๋์๋ณด๋์์ Collections ๋ผ๋ ๋ฒํผ ํด๋ฆญ โผ 2. Add my own data ๋ฒํผ ํด๋ฆญ (ํน์ ์ด๋ฏธ ๋ญ๊ฐ ์๋ค๋ฉด create database) 3. database ์ด๋ฆ, collection ์ด๋ฆ์ ์ ํด์ค ๋ค์ ์ ์ฅ database๋ ํ๋์ ํด๋, collection์ ํ๋์ ํ์ผ ๋๋ โ js ํ์ผ์์ db์ ํต์ let db; MongoClient.connect('์ ์URL', { useUnifiedTopology: true }, function (err, client) { if (err) return console.log(err..