๐จ๐ป 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. ์ด์ 1 2 ๋ค์