์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- aws
- Express
- DFS
- ํ๋ก์ ํธ
- ์ธ์คํด์ค
- ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ kit
- ๋ฐฐํฌ
- ์ ์ฒ๊ธฐ
- ์๋ผ์คํฑ๋น์คํก
- DP
- ์๋ฃ๊ตฌ์กฐ
- ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์
- ์๋ฐ
- express.js
- ๋์ปค
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ
- ๊ณจ๋5
- Docker
- ๊ณจ๋3
- ๋์์ธํจํด
- EC2
- ์คํ๋ง ๋ถํธ
- ์คํ๋ง๋ถํธ
- ๋์
- BFS
- ๊ณจ๋4
- ์๊ณ ๋ฆฌ์ฆ
- ETRI
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
๋ชฉ๋กexpress.js (10)
JUINTINATION
์งง์ ์๊ฐ๋์ ๋ง์ ๋ด์ฉ์ ์ฒ์๋ถํฐ ๊ณต๋ถํด์ผ ํ๋๋ผ ํ๋ค์์ง๋ง ๋๋ฌด๋๋ ์ฌ๋ฐ์๋ 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, ์ํ, ์๋ต์..
MVC ํจํด์ด๋?MVC ํจํด์ ๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ(model–view–controller) 3๊ฐ์ง๋ก ๋ถ๋ฆฌ๋ ํํ์ 3 Layer Architecture๋ฅผ ์ฌ์ฉํ๋ ๋์์ธํจํด์ด๋ค. ๊ฐ๊ฐ์ ๊ตฌ์ฑ์์๋ค ์ฌ์ด์๋ ๋ค์๊ณผ ๊ฐ์ ๊ด๊ณ๊ฐ ์๋ค. ๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ์ ๊ด๊ณ๋ฅผ ๋ฌ์ฌํ๋ ๊ฐ๋จํ ๋ค์ด์ด๊ทธ๋จ. ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๋ฐ์ ์ธ MVC ๊ตฌ์ฑ์์ ๋ค์ด์ด๊ทธ๋จ ๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ(model–view–controller, MVC)ko.wikipedia.org๋ชจ๋ธ(Model)์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌด์์ ํ ๊ฒ์ธ์ง ์ ์ํ๋ ๋ถ๋ถ์ผ๋ก DB์์ ์ํธ์์ฉ์ ํตํ ์ฐ์ฐ์ฒ๋ฆฌ๊ฐ ์ฃผ๋ ๋ชฉ์ ์ด๋ค.์ปจํธ๋กค๋ฌ์์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด DB์์ ์ฌ์ฉ์๊ฐ..