๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘จ‍๐Ÿ’ป web.dev/node9

[NPM] npm i ๊ณผ npm ci … ์ฐจ์ด์ ์€? ๐Ÿ“Œ npm i (npm install) npm i(npm install) ๋Š” ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. npm i ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. 1๏ธโƒฃ ํŠน์ • ํŒจํ‚ค์ง€ ์„ค์น˜ $ npm install "package-name" ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๊ฒฝ์šฐ npm i (name) ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด ํ˜•์‹์ด ์ •๋ง ๋‹ค์–‘ํ•œ๋ฐ, ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ ๋ฅผ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 2๏ธโƒฃ ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€ ์„ค์น˜ $ npm install ํŠน์ • ํŒจํ‚ค์ง€๋ช…์„ ๋ช…์‹œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” package.json ์— ๋ช…์‹œ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ์˜์กด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด node_modules ์— ์ ์žฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก ๋‘ ๋ฐฉ์‹์˜ ๊ณตํ†ต์  ๋‘ ๋ฐฉ์‹ ๋ชจ.. 2022. 6. 18.
[NPM] package-lock.json ์€ ๋ฌด์—‡์ผ๊นŒ? ๐Ÿ“Œ package.json ์˜ ํ•œ๊ณ„์  npm ์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด package.json ์„ ํ†ตํ•ด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์™ธ๋ถ€ ํŒจํ‚ค์ง€ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ package.json ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. { "name": "package json example", "version": "1.0.0", "description": "example", "main": "index.js", "scripts": { "start": "webpack serve --mode development", "build": "webpack --mode production", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license":.. 2022. 6. 18.
TypeDI ๋ฅผ ํ™œ์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž… ๐Ÿ“Œ TypeDI ๋ž€? typeDI ๋Š” Typescript์™€ Javascript ์˜ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž… ์„ ํ†ตํ•ด OOP ์•„ํ‚คํ…์ณ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ๊ฒฌ๊ณ ํžˆ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ๊ฐ์˜ service ์™€ controller layer ์˜ ๊ตฌ์กฐ๋ฅผ ์žก์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋จผ์ € typeDI ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. $ npm i typedi reflect-metadata typeDI ๋Š” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— tsconfig.json ์—์„œ ๋‹ค์Œ ์„ค์ •์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "emitDecoratorMetadata": true, "experimentalDecorators": true, ๐Ÿ“Œ Node.js.. 2022. 5. 28.
Node.js ์„œ๋ฒ„์— Redis ์ ์šฉํ•˜๊ธฐ ๐Ÿ“Œ ๋„์ž… ๊ณ„๊ธฐ ์ด์ „์— ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ refresh token ๊ฐ’์„ redis ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ์‹œ์—๋„ token ๊ฐ’์„ ์œ ์ง€ ํ•ด์ฃผ๊ธฐ ์œ„ํ•จ์ด์—ˆ๋Š”๋ฐ Node.js ์„œ๋ฒ„์— Redis ๋ฅผ ์—ฐ๋™ํ•œ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์ ์šฉ 1๏ธโƒฃ ๋กœ์ปฌ ํ™˜๊ฒฝ์— redis ์„ค์น˜ ๋จผ์ € redis ๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์„ค์น˜ ํ•ด์ค€ ๋‹ค์Œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. (mac os ๊ธฐ์ค€) $ brew install redis $ brew services start redis 2๏ธโƒฃ redis ํŒจํ‚ค์ง€ ์„ค์น˜ $ npm i redis 3๏ธโƒฃ redis client ์ •์˜ํ•˜๊ธฐ ์ด์ œ express ์•ฑ์— redis ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ „์—ญ์—์„œ ์ธ์Šคํ„ด์Šค๋กœ ์‚ฌ์šฉ.. 2022. 5. 28.
multer ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ์—…๋กœ๋“œ ํŠœํ† ๋ฆฌ์–ผ ๊ฒŒ์‹œํŒ์— ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๊ธฐ multer ๋ชจ๋“ˆ multer ๋ชจ๋“ˆ์€ multipart/form-data ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ node.js ๋ฏธ๋“ค์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ node.js ์—์„œ ์ด๋ฏธ์ง€(ํŒŒ์ผ)๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ ํ•„๋“œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์ด ์—†๋Š” ์ƒํƒœ๋ผ์„œ multer ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ฒŒ์‹œ๊ธ€๋งˆ๋‹ค ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์„ค์น˜ $ npm i multerMySQL ์ปฌ๋Ÿผ ์ถ”๊ฐ€ ๊ธฐ์กด์˜ ๊ฒŒ์‹œ๊ธ€ ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. mysql> desc board; +------------+--------------+------+-----+---------+-------------.. 2021. 3. 5.
Node.js์™€ MySQL๋ฅผ ์ด์šฉํ•œ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑํ•˜๊ธฐ ํŠœํ† ๋ฆฌ์–ผ MySQL ์—ฐ๋™ ๋ฐฉ๋ฒ• Node.js ์—์„œ MySQL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Sequelize ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” raw query๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ mysql์„ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ mysql ์ ‘์† ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ ๋’ค ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  DB์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. $ mysql -u root -p database ๋ฐ table ์ƒ์„ฑ ๋ฐ๋ชจ๋ฅผ ์œ„ํ•ด tutorial ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. mysql> create database tutorial; ๊ทธ๋ฆฌ๊ณ  tutorial ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฒŒ์‹œ๊ธ€ ์ •๋ณด๋ฅผ ๋‹ด์„ board ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. mysql> use tutorial; mysql> create table .. 2021. 3. 5.