์กธ์์์ ์๋ฒ๋ฅผ Node.js๋ก ๊ตฌํํ๊ธฐ๋ก ํ๋ค.์๋ ์ฐ๊ตฌ์ค์์ ๋ ธ๋๋ฅผ ์กฐ๊ธ ๊ณต๋ถํ์๋๋ฐ ์กฐ๊ธ ๊น๋จน์ ๋ถ๋ถ๋ ์๊ณ ,์๋ฒ๋ฅผ ๋ฉ์ธ์ผ๋ก ๋งก์ง ์์์ด์ ์ด๋ฒ ๊ธฐํ์ ์ข ๋ ์์ธํ ๋ค๋ค๋ณผ๋ ค๊ณ ํ๋ค!๋ ธ๋ ๊ณต์ ํํ์ด์ง์ ๊ฐ๋ฉด Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๋น๋๋ javas
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ผ๋ ์ ํ๋ฒ์ฉ ๋ฒ์ ์ ์ถ์ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ ๋งํผ ๋งค๋ ์ ๋ฐ์ดํธ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฒ์ ์ ๋ํ๋ด๋ ๊ฒ์ด ๋ฐ๋ก ES+๋ฒ์ ๋ฒํธ or ์ฐ๋ ์ธ ๊ฒ์ด๋ค. ์ฆ ES2015๋ 2015๋ ์ ๋์จ ์๋ฐ์คํฌ๋ฆฝํธ ์ ๊ทธ๋ ์ด๋
์ด๋ค ์์ ์ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ๋งก๊ฒจ๋๊ณ , ๊ทธ ์ผ์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ง ์๊ณ ๋ด ํ ์ผ์ ํ๋ค๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์์ ์ ๋ง์น๋ฉด call back!non-block(IO์์ ์ด ์งํ๋๋ ๋์ ์์ ์ด ๋ฉ์ถ์ง ์๊ณ ๋ค์ ์์ ์ํ)์ด๋ฉฐ,๋น๋๊ธฐ ๋ฐฉ์(์์ฒญ์ ํ๊ณ ๋ฐ๋ก ์ ์ด๊ถ์ ๋๋ ค๋ฐ
์ด ๋ ธํธ๋ โNode.js ๊ต๊ณผ์โ๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค.Node.js์ ํ์ผ ์์คํ ๋ชจ๋์ ์ปดํจํฐ์ ์๋ ํ์ผ ์์คํ ์ด ์๋ํ๊ฒ ํ๋ค. ํ์ผ์ ์์ฑ, ์ญ์ , ์ฝ๊ธฐ, ์ฐ๊ธฐ ๋ฑ์ ์ํํ ์ ์์ผ๋ฉฐ, ํด๋๋ฅผ ์์ฑํ๊ณ ์ญ์ ํ๋ค.ํ์ผ ์์คํ ๋ชจ๋์ โfsโ๊ฐ ๊ฐ์ง๊ณ ์๋ค.
์ด ๋ ธํธ๋ โNode.js ๊ต๊ณผ์โ๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค.Node.js๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ(Event Driven) ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ๊ฐ๋ ์ ๊ฐ์ง๊ณ ์๋ค. Node.js๋ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๋ค.์ฌ๊ธฐ์์ ์ด๋ฒคํธ๋ ์ด๋ ํ ์ผ์ด ๋ฐ์ํจ์ ์๋ฏธํ๋๋ฐ ์ฌ๋๋ค์ด ๋ด๊ฐ ๋ง๋
์ด ๋ ธํธ๋ โNode.js ๊ต๊ณผ์โ๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค.http ๋ชจ๋์ ๋ ธ๋์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์น ๋ชจ๋์ด๋ฉฐ http ์น ์๋ฒ๋ฟ๋ง ์๋๋ผ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ๋ชจ๋์ด๋ค. ๋คํธ์ํฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๋, ์๋ฒ๋ฅผ ์ํ ํ์ ๋ชจ๋!http.cr
์ด ๋ ธํธ๋ โNode.js ๊ต๊ณผ์โ๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค. Express? Node.js๋ก http ๋ชจ๋์ ์ฌ์ฉํด ์น์๋ฒ์ ํ์ํ ๊ธฐ๋ฅ๋ค์ ํ๋ํ๋ ๋ค ๊ตฌํํ๊ณ ์์ผ๋ฉด ์ ๋ง ๋ณต์กํ๊ณ ๊ท์ฐฎ์ ์ผ์ด ๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํด์ฃผ๋ ๊ฒ์ด Express! Expre
Routing ๋ผ์ฐํ ์ URI(๋๋ ๊ฒฝ๋ก) ๋ฐ ํน์ ํ HTTP ์์ฒญ ๋ฉ์๋(GET, POST ๋ฑ)์ธ ํน์ ์๋ํฌ์ธํธ์ ๋ํ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ตํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋งํ๋ค. ์ฐ๋ฆฌ๊ฐ ์ต์คํ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ค ํ๋๋ ์ต์คํ๋ ์ค๋ฅผ ์ด์ฉํ๋ฉด ๋ผ์ฐํ
์ด ๋ ธํธ๋ "Nodejs ๊ต๊ณผ์"๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค.์ฌ์ค ๋๋ ์๋ ์ ๋ ธ๋ ์กฐ๊ธ ํด๋ณด๊ธด ํ์ง๋ง ๊ทธ๋๋ mongodb๋ฅผ ์ฌ์ฉํ์๊ณ ์ํ๋ผ์ด์ฆ๋ ์ฒ์ ๋ค์ด๋ณธ๋ค..^^์ํ๋ผ์ด์ฆ๋ nodejs์์ mysql์ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ORM(Objec
https://velopert.com/2350 ๋ฅผ ์ฐธ๊ณ ํ์๋ค.์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ (์ธ์ ์ฌ์ฉ)์ ์ ์ ์ ์๊ฐ ๋์ด๋๋ค๋ฉด ์๋ฒ๊ฐ ๊ณผ๋ถํ ๋ ์ ์๋ค.์ธ์ ์ ์ฌ์ฉํ๋ฉด ๋ถ์ฐ๋ ์์คํ ์ค๊ณ๊ฐ ๋ ๋ณต์กํด์ง๋ค. ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฟ ํค ์ธ์ฆ์์คํ ์ฌ์ฉ์ ์ฟ ํค ์ปจํ ์ด๋๋ฅผ
์ด ๋ ธํธ๋ "Nodejs ๊ต๊ณผ์"๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค. ๐ฉ
์ด ๋ ธํธ๋ "Node.js ๊ต๊ณผ์"๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค. Multer? ์ด๋ฏธ์ง๋ ๋ณดํต input[type=file] ํ๊ทธ์ form ํ๊ทธ๋ฅผ ํตํด์ ์ ๋ก๋ํ๋ค. ์ด๋ form์ ์ธ์ฝ๋ฉ ํ์ ์ multipart/form-data๋ก ๋์ด์๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ผ์ค๋ ๋ฐ์ดํฐ
๐ฌ ๐Node.js ๊ต๊ณผ์๐๋ฅผ ์ธ๊ฐ์ผ๋ก ๊ณต๋ถ ์ค์ธ๋ฐ ํ๋ก์ ํธ ๋ฐ๋ผํ๋ฉด์ ๊ทธ๋ฅ ๋ฌด์์ ๋ฐ๋ผํ๊ธฐ ๋ณด๋ค๋ ์ ๋ชจ๋ฅด๊ฒ ๋๊ฑฐ ํ๋ฒ ์ง๊ณ ๋์ด๊ฐ๋ ค ํ๋ค. sequelize์ ๋ํด์ ๋ค๋ค์คฌ์๋๋ฐ ๋๋ฌด ์งง๊ฒ ๋ค๋ค์ ํ๋ก์ ํธ ํ๋ฉด์ ์ด๊ฒ ๋ฌด์จ ๋ฉ์๋ ์ง ์ด๋ป๊ฒ ๋์ํ๋์ง ์ ๋๋
์ด ๋ ธํธ๋ "Node.js ๊ต๊ณผ์"๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋ก๋์๋ค.Express ์ฉ ๊ธฐ๋ณธ ์๋ ์ ํ ๋ฏธ๋ค์จ์ด. ์ํธ ์ฌ์ค์ ๊ณผ ๊ฐ์ ๊ณต์ฉ API ๋ฐ / end point ์ ๋ํ ๋ฐ๋ณต ์์ฒญ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉํ๋ค.nodebird_api์์ ์ฌ์ฉ๋์ ์ ํํ๊ธฐ ์ํด express-
About Node.js 1. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ๋ฐํ์ : ํน์ ์ธ์ด๋ก ๋ง๋ ํ๋ก๊ทธ๋จ๋ค์ ์คํํ ์ ์๋ ํ๊ฒฝ ๊ธฐ์กด์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์์์๋ง ์คํํ ์ ์์๋ค. ํ์ง๋ง ๊ตฌ๊ธ์ด V8 ์์ง์ ์ฌ์ฉํ์ฌ ํฌ๋กฌ์ ์ถ์ํ์ Nodejs๊ฐ ํ์ํ๋ค.
About Javascript ์น ํ์ด์ง๋ฅผ ์ํ ์ธ์ด ์คํฌ๋ฆฝํธ ์ธ์ด : ์ฝ๋๋ฅผ ํ ์ค์ฉ ๋ฒ์ญํ๊ณ ์คํ ํ์ ์ ๋ช ์ํ์ง ์๋๋ค. (int, float ๋ฑ...) ํ๋กํ ํ์ ๊ธฐ๋ฐ์ ๊ฐ์ฒด ์งํฅ ์ธ์ด EcmaScript ? ๋ณ์ ์ ์ธ๋ฒ var ๋ฒ์ : Funxtion S
express generater๋ก ๊ตฌํํ ํ๋ก์ ํธ์ ์ด๋ป๊ฒ Socket.io๋ฅผ ์ฐ๊ฒฐํ๋๋... ๊ทธ ๊ณผ์ ์ ์ ๋ฆฌํ๊ฒ ๋ค. ์ผ๋จ express-generator๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด ๋จ๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ํ๋ค! socket.io ์ค์น app.js ์์ ๐ app.js
Nodejs ์๋ฒ โ ํ๋ ์ ์ํฌ โ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด โ ๐ฉ ํน์ง Non-Blocking I/O Single Thread ์ด๋ฒคํธ ๊ธฐ๋ฐ Blocking vs Non-Blocking ์ ์ด๊ถ์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ์๋คํ๋ฉด blocking, non-blocking ์๊ธฐ. B
HTTP Hyper Text Transfer Protocol : ์น์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ ์ด๋ฐ ํ๋กํ ์ฝ์ด ์กด์ฌํ๊ธฐ์ ์น์์ ์ด ๊ท์น์ ๋ง์ถฐ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋ค. url, header, body Express bin / ww
๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ จ์ฑ์ ๊ฐ์ง๋ฉฐ ์ค๋ณต์ด ์๋ ๋ฐ์ดํฐ์ ์งํฉ์ ์๋ฏธํ๋ค. ์ด๋ฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ ์ DBMS(Database Management System)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค (Relational Database) key์ value๋ค์ ๊ฐ