[week_06] MongoDB์ Mongoose
1. MongoDB ๋ํ์ ์ธ NoSQL, Document DB RDB NoSQL - ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค (Relational DataBase) - ์๋ฃ๋ค์ ๊ด๊ณ๋ฅผ ์ฃผ์ํ๊ฒ ๋ค๋ฃธ - SQL ์ง์์ด ์ฌ์ฉ โก ๋ฐ์ดํฐ ๊ตฌ์กฐํ - ๊ตฌ์กฐํ๋ ์ง์์ด ์ฌ์ฉ X (Non SQL / Not Only SQL) - ์๋ฃ ๊ฐ์ ๊ด๊ณ์ ์ด์ X - ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ X โก ์ ์ฐํ๊ฒ ๋ฐ์ดํฐ ์ ์ฅ DDL์ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐํ ๋ฑ์ ์ฌ์ ์์ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ ๊ฐ๋ฅ Database ํ๋ ์ด์์ Collection์ ๊ฐ์ง ์ ์๋ ์ ์ฅ์ Collection ํ๋ ์ด์์ Document๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ, SQL์ table๊ณผ ์ ์ฌ Document ์ ์ฅ๋๋ ์๋ฃ, SQL์ row์ ์ ์ฌ ObjectID document์ ์ ์ผํ ๊ธฐ ๊ฐ, SQ..
[week_06] Express.js์ REST API | Middleware, JSON, Postman
1. Middleware 1-1. Express.js์ Middleware HTTP ์์ฒญ๊ณผ ์๋ต ์ฌ์ด์์ ๋จ๊ณ๋ณ ๋์์ ์ํํด์ฃผ๋ ํจ์ HTTP ์์ฒญ๊ณผ ์๋ต ๊ฐ์ฒด๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋, ๋ค์ ๋ฏธ๋ค์จ์ด ์คํ HTTP ์์ฒญ์ด ๋ค์ด์จ ์๊ฐ ์์ โก HTTP ์๋ต ๋ง๋ฌด๋ฆฌ๋ ๋ ๊น์ง ๋ฏธ๋ค์จ์ด ๋์ ์ฌ์ดํด ์คํ 1-2. Middleware ์์ฑ๋ฒ req, res, next๋ฅผ ๊ฐ์ง ํจ์๋ฅผ ์์ฑ req: HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด res: HTTP ์๋ต์ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด next: ๋ค์ ๋ฏธ๋ค์จ์ด๋ฅผ ์คํํ๋ ํจ์ const logger = (req, res, next) => { console.log(`Request ${req.path}`); next(); } next() ํจ์๊ฐ ํธ์ถ๋์ง ์์ผ๋ฉด ๋ฏธ๋ค์จ์ด ์ฌ์ดํด์ด ๋ฉ์ถ๊ธฐ ๋๋ฌธ์ ..
[BE] ๋ผ์ฐํ (Routing)
1. ํจํท(Packet) ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์์ ์กฐ๊ฐ ์ค์ ํต์ ์์ ๋ฐ์ดํฐ๋ ํจํท ๋จ์๋ก ์ชผ๊ฐ์ ธ์ ์ ์ก๋๋ค. ํฐ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํ์ ์ผ๋ก ์ ์กํ๊ฒ ๋๋ฉด ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๊ณ , ์ค๊ฐ์ ์ ๋ณด๊ฐ ์์ค๋์์ ๋ ์ฌ์ ์กํ๊ธฐ์๋ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ด๊ธฐ ๋๋ฌธ์ด๋ค. 2. ๋ผ์ฐํ (Routing) ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ์ ๋คํธ์ํฌ์์ ๋ค๋ฅธ ๋คํธ์ํฌ๋ก ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๊ธฐ๋ฒ ํจํท์ ์ ์กํ๊ธฐ ์ํด ์ก์ ์์ธก์์ ๋ชฉ์ ์ง๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ ํ๊ณ , ์ ํด์ง ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ํจํท์ ์ ๋ฌํ๋ ๊ณผ์ IP๊ฐ ๋คํธ์ํฌ ์ฅ์น๊ฐ ๊ฐ๋ ๊ณ ์ ์ ์ฃผ์๋ผ๊ณ ํ๋ฉด, ๋ผ์ฐํ ์ ๊ทธ ์ฃผ์๋ฅผ ์ฐพ์๊ฐ๋ ๊ณผ์ ๋ผ์ฐํ ์๋ ๋ชฉ์ ์ง ์ฃผ์, ํ ํด๋ก์ง, ํธ๋ํฝ ๋ถํ, ๋งํฌ ๋น์ฉ(๋ผ์ฐํ ๋งคํธ๋ฆญ) ๋ฑ์ ์ ๋ณด๊ฐ ์ฌ์ฉ๋๋ค. 2-1. ๋ผ์ฐํฐ(Router) ..
[week_06] ์น๊ณผ Express.js | ์น์ ์ดํด, ํ๋ ์์ํฌ, Express.js์ ๊ตฌ์กฐ, ๋์๋ฐฉ์
1. ์น ์ฌ์ ์ ์๋ฏธ: World Wide Web, ์ธํฐ๋ท์์์ ๋์ํ๋ ๋ชจ๋ ์๋น์ค ์ผ๋ฐ์ ์๋ฏธ: ์น ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํด์ ์ด์ฉํ๋ ์๋น์ค, ์น ์ฌ์ดํธ 1-1. ์น ์๋น์ค ๋์ ๋ฐฉ์ HTTP ์์ฒญ๊ณผ ์๋ต์ ๋ฐ๋ณต HTTP ์์ฒญ ์ฌ์ฉ์๊ฐ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ํ์ํ์ง ์๋ฒ์๊ฒ ์๋ฆฌ๋ ์ญํ ์ด๋ค ์ฌ์ฉ์๊ฐ, ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ๋์ง ๋ฑ์ ๋ด๊ณ ์์ HTTP ์๋ต HTTP ์์ฒญ์ ํด๋นํ๋ ์ ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ญํ ์์ฒญํ ๋ฐ์ดํฐ์, ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋์ง ๋ฑ์ ๋ด๊ณ ์์ 1-2. ๋ฐฑ์๋์ ํ๋ก ํธ์๋ ํ๋ก ํธ์๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ฉํ๊ฒ ๋๋ ์น ํ์ด์ง๋ฅผ ์ฃผ๋ก ๋ด๋น = ํด๋ผ์ด์ธํธ ๋ฐฑ์๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ด์ง ์๋ ๋ฐ์ดํฐ ๊ฐ๊ณต ๋ฑ์ ๊ธฐ๋ฅ์ ์ฃผ๋ก ๋ด๋น = ์๋ฒ 1-3. ์ ์ ์น๊ณผ ๋์ ์น ์ ์ ์น ์ฌ์ฉ์์ ์ํธ์์ฉํ์ง ์๋..
[CS] ์๋งจํฑ ๋งํฌ์
1. ์๋งจํฑ ๋งํฌ์ ์๋งจํฑ(Semantic)์ด๋ '์๋ฏธ๋ก ์ ์ธ'์ ๋ป์ ๊ฐ์ง๋ฉฐ, ๋งํฌ์ (Markup)์ด๋ HTML ํ๊ทธ๋ก ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ๋ผ์, ์๋งจํฑ ๋งํฌ์ ์ด๋ ์๋ฏธ๋ฅผ ์ ์ ๋ฌํ๋๋ก ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค. 2. ์์ฑ ๋ฐฉ๋ฒ ์๋งจํฑ ๋งํฌ์ ์ ํ๊ธฐ ์ํด์ ๊ฐ ํ๊ทธ๋ฅผ ์ฉ๋์ ๋ง๊ฒ ์ฌ์ฉํ์ฌ์ผ ํ๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ ๋งํ๋ค. ํค๋/ํธํฐ์ ์ ์ฌ์ฉ ๋ฉ์ธ ์ปจํ ์ธ ์ ๊ณผ ์ฌ์ฉ ๋ ๋ฆฝ์ ์ธ ์ปจํ ์ธ ์ ์ฌ์ฉ ์ต์์ ์ ๋ชฉ์ผ๋ก ์ฌ์ฉ ์์๊ฐ ์๋ ๋ชฉ๋ก์ผ๋ก ๊ณผ ์ฌ์ฉ ๋ด๋น๊ฒ์ด์ ์ ์ฌ์ฉ ์ด๋ฐ ์์ผ๋ก ํ๊ทธ๊ฐ ๊ฐ์ง๊ณ ์๋ ์๋ฏธ์ ๋ง๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์ด๋ฐ ์ ์ด์ธ์๋ CSS ์คํ์ผ์ ๋ช ์ํ๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ ๋ํ ์๋งจํฑ ๋งํฌ์ ์ ํ ์ข ๋ฅ์ด๋ค. ์ฆ, ํ๊ทธ๊ฐ ๊ฐ์ง๋ ์๋ฏธ ์์ฒด๊ฐ ์คํ์ผ์ด๋ผ๋ฉด ์ด๋ ๋งํฌ์ ์..
[CS] script, script async, script defer
HTML ํ์ฑ์ด ์ค๋จ๋๊ณ ์ฆ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ก๋๋๋ฉฐ, ๋ก๋๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๊ณ ํ์ฑ์ด ์ฌ๊ฐ๋๋ค. HTML ํ์ฑ๊ณผ ๋ณ๋ ฌ์ ์ผ๋ก ๋ก๋๊ฐ ๋๋๋ฐ, ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋๋ ํ์ฑ์ด ์ค๋จ๋๋ค. ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค์ ๊ฐ์ด ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๊ฐ ์์กดํ์ง ์๋ ๋ ์์ ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ ๋ ์ ํฉํ๋ค. HTML ํ์ฑ๊ณผ ๋ณ๋ ฌ์ ์ผ๋ก ๋ก๋๊ฐ ๋๋๋ฐ, ํ์ฑ์ด ๋๋๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๋ค. ๋ณดํต ํ๊ทธ ์ง์ ์ ๋ฅผ ์ฝ์ ํ๋ ๊ฒ๊ณผ ๋์์ ๊ฐ์ง๋ง, ๋ธ๋ผ์ฐ์ ํธํ์ฑ์์ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ๊ทธ๋ฅ ํ๊ทธ ์ง์ ์ ์ฝ์ ํ๋ ๊ฒ์ด ์ข๋ค. โ ์ฃผ์ํ ์ ์, async์ defer์ ๊ฒฝ์ฐ src ์์ฑ์ด ์์ผ๋ฉด ์ ์ฉ๋์ง ์๋๋ค. ๋ณด๋ค ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์๋ ํ์ธํ ์ ์๋ค. ์ฐธ๊ณ https://github.com/baeharam/Must-Know-About-Front..
[week_06] Node.js ๊ธฐ์ด | NPM์ ์ดํด, NPX, Node.js์ ๋ชจ๋, ES Module
1. NPM์ด๋ Node Package Manager Node.js ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ํ์์ ์ธ ๋๊ตฌ ๊ตฌ์ฑ: ์จ๋ผ์ธ ์ ์ฅ์ + ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ ์จ๋ผ์ธ ์ ์ฅ์: ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๋ค์ด ์ ๋ก๋๋๋ ์ ์ฅ์ ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ: ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๋ช ๋ น์ด ์ ๊ณต 2. NPM ์ฌ์ฉํด ๋ณด๊ธฐ NPM์ ์ฌ์ฉ = NPM ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ์ ์ฌ์ฉ๋ฒ์ ์ตํ๋ ๊ฒ ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ํด๋น ๋๋ ํฐ๋ฆฌ ์์์ $npm init ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๋ฒ์ ์ง๋ฌธ์ ํตํด package.json ์ด๋ผ๋ ํ์ผ์ ๋ง๋ค์ด ์ฃผ๊ณ , ์ด ๋๋ ํฐ๋ฆฌ๋ Node.js ํ๋ก์ ํธ๊ฐ ๋๋ค. 2-1. package.json ํ๋ก์ ํธ ๊ด๋ จ ์ ๋ณด๋ค์ด ์ ์ฅ๋๋ ํ์ผ, ์ด ํ์ผ์ ์ง์ ์์ ํ๊ฑฐ๋ npm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ์์ ํ ์ ..
[week_06] Node.js ๊ธฐ์ด | Node.js์ ์ดํด, ํน์ง, ES6, ๋น๋๊ธฐ ์ฝ๋ฉ, ์ด๋ฒคํธ ๋ฃจํ
1. Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ ํ๊ฒฝ์์๋ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ์คํ๊ธฐ Browser์ JavaScript ๋ธ๋ผ์ฐ์ ์์ ์คํ ์น ๋ด๋ถ์ ์ ํ๋ ๋์ ์น ํ๋ก ํธ ๊ฐ๋ฐ์์ ์ธ์ด Node.js ํฌ๋ก์ค ํ๋ซํผ ์คํ (์ด๋ ํ๊ฒฝ์์๋ ์คํ ๊ฐ๋ฅ) ์ ํ ์๋ ๋์ ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ 2. Node.js์ ํน์ง ์ฑ๊ธ ์ฐ๋ ๋ - ๋น๋๊ธฐ - ์ด๋ฒคํธ ๊ธฐ๋ฐ 2-1. ์ฑ๊ธ ์ฐ๋ ๋ ์ฐ๋ ๋(Thread): ๋ช ๋ น์ ์คํํ๋ ๋จ์, ํ ๊ฐ์ ์ฐ๋ ๋๋ ํ ๋ฒ์ ํ ๊ฐ์ง ๋์๋ง ์คํ ๊ฐ๋ฅ ์ฑ๊ธ ์ฐ๋ ๋: ํ ๋ฒ์ ํ ๊ฐ์ง ๋์๋ง ์ํํจ ๋ฉํฐ ์ฐ๋ ๋: ๋์์ ์ฌ๋ฌ ๋์ ์ํ ๊ฐ๋ฅ ์ฅ์ ์ฐ๋ ๋ ์์ฑ ๋น์ฉ์ด ์๋ค ์ฐ๋ ๋๊ฐ ๋์ด๋์ง ์๊ธฐ ๋๋ฌธ์ CPU ๋ฆฌ์์ค ๊ด๋ฆฌ์ ํจ์จ์ ๋จ์ ์ฐ๋ ๋ ๊ธฐ๋ฐ์ ์์ ๋ค์ ํจ์จ์ด ๋จ์ด์ง ex) CPU..