์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- DFS
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ
- ์ ์ฒ๊ธฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋์ปค
- ๋ฐฐํฌ
- ์๋ฃ๊ตฌ์กฐ
- EC2
- ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์
- ๋์
- Docker
- DP
- ์๋ผ์คํฑ๋น์คํก
- ์ธ์คํด์ค
- aws
- BFS
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ
- ๊ณจ๋4
- ๊ณจ๋3
- ๊ณจ๋5
- ์คํ๋ง ๋ถํธ
- ํ๋ก์ ํธ
- ๋์์ธํจํด
- ์คํ๋ง๋ถํธ
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
- ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ kit
- ETRI
- express.js
- Express
๋ชฉ๋กExpress (10)
JUINTINATION
๋ฒ์จ ๋ค์์ฃผ๋ก ๋ค๊ฐ์จ ํ์ ์ ๋ฅผ ์ค๋นํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๊ธฐ๋ก ํ๋ค. ์ฐ๋ฆฌ ํ์ ์ต์ข ๋ฐํ PPT์ ์ค์ ์คํ ํ๋ฉด ํ์ด์ง์ ๋ฐฐํฌํ ์๋น์ค๋ฅผ ์ง์ ์ฒดํํ ์ ์๊ฒ QR ์ฝ๋๋ฅผ ๋์๋ ์์ ์ธ๋ฐ, AWS ๊ณผ๊ธ์ด ๋ฌด์์ ์ต๋ํ ๋์ค์ ํ๊ธฐ๋ก ํ๋ค. ์ต์ข ๋ฐํ ์๋ฃ ์ ์ถ์ 11์ 5์ผ(ํ)๊น์ง๊ณ , ์ด์ ์ ๋ชจ๋ ์๋ฒ ๋ฐฐํฌ๋ฅผ ์ฑ๊ณตํ์๊ธฐ ๋๋ฌธ์ ๊ธ๋ฐฉ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ ๋ ๊น์ง ๋ฏธ๋ค์๋๋ฐ..๋ฆฌ์กํธ ํ๋ก์ ํธ ๋ฐฐํฌ ์คํจ๋ถ๋ช ์ง๋ ํด์ปคํค์ ์ฐธ๊ฐํ๊ธฐ ์ํด ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ ๋ ๊ทธ๋ฅ ๋ชจ๋ ํ์ผ์ ์์ถํ๊ณ ์ ๋ก๋๋ง ํ๋ฉด ๋์๋ค. ๊ทธ๋์ ๋ฐ๋ก ๊ธ๋ ์์ฑํ์ง ์์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ์ข ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ด์์๊น? ์๋ฌดํผ ์ค์ ์ ๊ณ์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ๋ฐฐํฌ๋ฅผ ์๋ํด๋ดค์ง๋ง Degraded๊ฐ ๋จ๊ณ , ์ด์ฉ๋ค๊ฐ Ok๊ฐ ๋ ๋..
์งง์ ์๊ฐ๋์ ๋ง์ ๋ด์ฉ์ ์ฒ์๋ถํฐ ๊ณต๋ถํด์ผ ํ๋๋ผ ํ๋ค์์ง๋ง ๋๋ฌด๋๋ ์ฌ๋ฐ์๋ 3์ฃผ๋์์ ์คํผํธ ํ๋ก์ ํธ๊ฐ ๋ง๋ฌด๋ฆฌ๋์๋ค. ์ํธ๋ฆฌ์์ ์ฐ์์ฐ๊ตฌ์์ผ๋ก ๊ทผ๋ฌดํ๋ฉด์ ํด๊ทผ ์ดํ์ ์๊ฐ์ ๋ด์ ํ๋ ํ๋ก์ ํธ๋ผ ์์ฌ์ด ๋ถ๋ถ์ด ๋ง์์ง๋ง ๊ทธ๋๋ ์ง๊ธ๊น์ง ์์ฑํ ํ๋ก์ ํธ์ ๋ด์ฉ์ ์ ์ด๋ณด๋ ค๊ณ ํ๋ค.๋ฐฑ์๋ํ ์์จ ์ฃผ์ ์คํผํธ ํ๋ก์ ํธ (~02/04)์ฐ๋ฆฌ์๊ฒ ์ฃผ์ด์ก๋ ์คํผํธ ํ๋ก์ ํธ์ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค. 1. MySQL + Prisma ORM + 3๊ฐ ํ ์ด๋ธ ์ด์(1:N, M:N, ์ต์ ํ๋) + ERD 2. ์ธ์ฆ (JWT Token + Passport.js) 3. 3 Layer Architecture (Controller + Service + Repository) 4. Joi Validation -> Middleware๋ก..
์ง๊ธ๊น์ง์ ์คํผํธ ํ๋ก์ ํธ ์งํ์ํฉ์ ์๊ธฐํด๋ณด์๋ฉด.. ์ฝ 2์ฃผ๊ฐ ๋๋ ์๊ฐ๋์ ์ฌ๋ฌ ํผ๋๋ฐฑ์ ๋ฐ์์ค๋ฉฐ ๋ธ๋ก๊ทธ์ ํ์์ ์ธ ๊ธฐ๋ฅ์ ๋ค ๊ตฌํํ๋ค๊ณ ํ ์ ์๊ฒ ๋ค. ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ๊ฒ์๊ธ ๋ฐ ์นดํ ๊ณ ๋ฆฌ, ํ๊ทธ, ๋๊ธ ๊ธฐ๋ฅ ๋ฑ Notion์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋ด๋ ๋๊ณ Github์ commit message๋ฅผ ์ฝ์ด๋ ๋์ถฉ ์ด๋ค ๊ธฐ๋ฅ์ ๊ตฌํํ๋์ง ์ ์ ์์ ๊ฒ์ด๋ค. ๊ธฐ๋ฅ ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ ์๊ตฌ์ฌํญ๋ค์ ํ๋ ๋์ฉ ํด๊ฒฐํด๊ฐ๋ฉด์ ๋ด๊ฐ ๊ธ์๋๋ก ์ฑ์ฅ์ค์ด๊ตฌ๋๋ฅผ ๋๋ผ๋ ์ค์ธ๋ฐ ๊ฑฐ์ ๋ง๋ฐ์ง์ ๋ค๋ค๋ฅธ ์ง๊ธ, ๋๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ๋ค๋ฆ์๋ ๋์ปค๋ผ์ด์ง์ด๋ค. ๋์ปค(Docker) ๊ฐ๋ณ๊ฒ ์ ๋ฌธํด๋ณด๊ธฐ - 1๋ถํฐ 3๊น์ง ๊ณต๋ถํ ๋ด์ฉ๊ณผ ๋ง๋งํ๋ ๋์๊ฒ ๊ธธ์ก์ด๊ฐ ๋์ด์ค ์ด๋ ๋ธ๋ก๊ทธ์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ ์ด์ Express ํ๋ก์ ํธ๋ฅผ ๋์ปค๋ผ์ด์งํด..
nodemon์ด๋?nodemon์ ๋๋ ํ ๋ฆฌ์ ํ์ผ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ก์ ๋ ๋ ธ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ์ฌ์์ํด์ฃผ๋ ๋ชจ๋๋ก ์ฝ๊ฒ ๋งํ๋ฉด ๊ฐ๋ฐ ์ ์์ค ์ฝ๋ ๋ด์ฉ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์๋ฒ๋ฅผ ์ข ๋ฃํ์๋ค๊ฐ ์ฌ์์ํ๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์์ด ์๋์ผ๋ก ๋ณ๊ฒฝ๋ ์์ค ํ์ผ๋ก ์ ์ฉ๋๊ฒ ํด์ค๋ค.์ผ๋จ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ค์ $ npm install nodemon ์ปค๋งจ๋๋ฅผ ์คํํ์ฌ nodemon ๋ชจ๋์ ์ค์นํ๋ค.์ด ๋ชจ๋์ ํ๋ก์ ํธ์์ ๋ฐ๋ก requireํ ํ์์์ด package.json ์ "scripts"์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ์์๋ก ์์ฑํ ์ฝ๋๋ฅผ ์ฝ์ด๋ณด์.app.jsconst express = require('express');const http = require('http');const path = require('path');co..
passport๋? ์ด์ Express.js์ morgan๊ณผ cookie-parser, express-session ๊ธ์์ ์ฟ ํค์ ์ธ์ ์ ์ด์ฉํด ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ค๋ค. passport๋ ๋ด๋ถ์ ์ผ๋ก ์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ์ฌ Node.js์์ ์ธ์ฆ(Authenicate)์ ์ฝ๊ฒ ์ ์ฉํ ์ ์๊ฒ ํ๋ ๋ฏธ๋ค์จ์ด์ด๋ค. ํด์ธ๋ก ๋๊ฐ ๋ ์ ์ ํ์ธ์ ์ํ ์ฌ๊ถ(passport)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋์ง ์ฌ์ฌํ๋ ์ญํ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. strategy passport๋ ์ด๋ค ๊ฒ์ ์ด์ฉํด ์ด๋ป๊ฒ ์ธ์ฆ์ ๊ตฌํํ ๊ฒ์ธ๊ฐ์ ๋ํ ์ ๋ต์ธ strategy๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ค๋์ ๊ธฐ์ค์ผ๋ก 539๊ฐ์ง strategy๊ฐ ์๋ค๊ณ ๊ณต์ ํํ์ด์ง์ ๋์ ์๋ค. ์๋ฅผ ๋ค์ด 'passport-..
morgan morgan์ Logger API๋ก request์ response๋ฅผ ๊น๋ํ๊ฒ ํฌ๋งคํ ํด์ฃผ์ด ํธ์ถ๋ router๊ฐ ์ด๋ค ์ํ์ด๊ณ ์ด๋ค ๊ฒฐ๊ณผ ๊ฐ์ธ์ง ์ฝ์์ ๋ก๊ทธ๋ฅผ ์ฐ๋ ์ญํ ์ ํ๋ค. ์ด๋ ๊ฒ ์ฐํ ๋ก๊ทธ๋ฅผ ์ฝ์๋ก๋ง ํ์ธํด๋ ๋์ง๋ง json ํํ๋ก dump ํ์ผ์ ๊ธฐ๋กํด์ฃผ๋ winston์ด๋ผ๋ ๋ชจ๋๋ ์๋ค. const logger = require('morgan') ๊ณผ ๊ฐ์ ํํ๋ก morgan ๋ชจ๋์ ๋ถ๋ฌ์์ const app = express() ์ผ ๋ app.use(logger('์ต์ ')); ๊ณผ ๊ฐ์ ํํ๋ก ์ฌ์ฉํ๋ค. morgan์ ๋ค์ด๊ฐ๋ ๋งค๊ฐ๋ณ์์ธ ๊ฐ ์ต์ ๋ง๋ค ๋ณด์ฌ์ฃผ๋ ์ ๋ณด๊ฐ ๋ค๋ฅด๋ฉฐ ์ฌ๋ฌ ์ต์ ์ ๋ฃ์ด์ค ์๋ ์๋ค. ์ฃผ๋ก ๊ฐ๋ฐ ์์๋ dev ์ต์ ์ ์ฌ์ฉํ๋๋ฐ ์์ฒญ ๋ฉ์๋, url, ์ํ, ์๋ต์..