npx express-generator ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด Express ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ณธ ํ
ํ๋ฆฟ์ ๋ง๋ค์ด์ค๋ค.์ฐธ๊ณ ๋ก, Express๋ Node.js๋ฅผ ์ํ ์น ํ๋ ์์ํฌ์ด๋ค!express-generator๋ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ง ์์ฑํ๊ณ , dependencies(์์กด์ฑ)๋ ์๋์ผ๋ก ์ค์นํ์ง ์๋๋ค. ๋ฐ๋ผ์ ํ๋ก์ ํธ ์์ฑ ํ ์๋ ๋ช
๋ น์ด๋ค์ ์คํํด์ผ ํ๋ค.npm install # ์์กด์ฑ ์ค์นnpm start # ์๋ฒ ์คํ ์์ฑ๋ Express ํ๋ก์ ํธ ๊ตฌ์กฐ.โโโ app.jsโโโ binโ โโโ wwwโโโ package.jsonโโโ publicโ โโโ imagesโ โโโ javascriptsโ โโโ stylesheetsโ โโโ style.cssโโโ routes..
์ ์ฒด ๊ธ
: ๐๐ฅ๐ฐ๐๐ฒ๐ฌ ๐ข๐ง ๐๐๐ญ๐ - Space for Intellectual Curiosity and Growth & Record to make knowledge mine์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด์ฅํ๊ณ ์์ด, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ์ด์ธ ECMAScript๋ฅผ ์คํํ ์ ์์.ํ์ง๋ง ๋ธ๋ผ์ฐ์ ์ Node.js์์ ECMAScript ์ด์ธ์ ์ถ๊ฐ๋ก ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ์๋ก ํธํ๋์ง ์์. ๋ธ๋ผ์ฐ์ ๋ ์นํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋ ๋๋งํ๋ ๊ฒ์ด ์ฃผ ๋ชฉ์ ์ด์ง๋ง, Node.js๋ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ฃผ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ.๋ธ๋ผ์ฐ์ ์์๋ง ์ง์ํ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API(Client-side APIs)ex: DOM API (ํ์ฑ๋ HTML ์์๋ฅผ ์ ํํ๊ฑฐ๋ ์กฐ์)Node.js์์๋ง ์ง์ํ๋ Node.js Host APIsex: ํ์ผ์ ์์ฑํ๊ณ ์์ ํ ์ ์๋ ํ์ผ ์์คํ
API๋ณด์์์ ์ด์ ๋ก ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ..
2.1 ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์1995๋
, 90%์ ์์ฅ ์ ์ ์จ๋ก ์น ๋ธ๋ผ์ฐ์ ์์ฅ์ ์ง๋ฐฐํ๋ ๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ.Brendan Eich๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ.Mocha -> LiveScript -> JavaScript ๋ก ์ด๋ฆ์ด ๋ฐ๋.2.2 ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ1996๋
๋ง์ดํฌ๋ก์ํํธ๊ฐ JScript๋ผ๋ ํ์ ๋ฒ์ ์ ์ถ์ํจ.๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ์ ๋ง์ดํฌ๋ก์ํํธ๋ ์์ฌ ๋ธ๋ผ์ฐ์ ์ ์์ฅ ์ ์ ์จ์ ๋์ด๊ธฐ ์ํด ์์ฌ ๋ธ๋ผ์ฐ์ ์์๋ง ๋์ํ๋ ๊ธฐ๋ฅ ์ถ๊ฐํ๊ธฐ ์์ํจ.-> ์ต์ด์ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ๋ ECMA ์ธํฐ๋ด์
๋์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ๋ฅผ ์์ฒญํจ.1997๋
, ์๋ฐ์คํฌ๋ฆฝํธ๋ ECMAScript๋ก ๋ช
๋ช
๋จ. (์ดํ, ES1)2015๋
์ ๊ณต๊ฐ๋ ECMAScript 6(ECMAScript 20..
์๋ฐ์คํฌ๋ฆฝํธ ํ ๋ณํ (type conversion)์๋ฐ์คํฌ๋ฆฝํธ์์, ํจ์์ ์ฐ์ฐ์์ ์ ๋ฌ๋๋ ๊ฐ๋ค์ ๋๋ถ๋ถ ์ ์ ํ ์๋ฃํ์ผ๋ก ์๋ ๋ณํ๋๋ค. let a = "5";let b = "10";// ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ ํ ๋น๊ตํจconsole.log(a > b); // false ("5"์ "10"์ ์ซ์๋ก ๋ณํํ์ฌ 5 > 10์ ๋น๊ต)alert( "6" / "2" ); // 3, ๋ฌธ์์ด์ด ์ซ์ํ์ผ๋ก ์๋๋ณํ๋ ํ ์ฐ์ฐ์ด ์ํlet result = 5 + "10"; // "510"์ด ๋จhttps://ko.javascript.info/type-conversions ํ ๋ณํ ko.javascript.info parseInt์๋์ผ๋ก ํ ๋ณํ์ ํด์ค ๋๊ฐ ๋ง์ง๋ง, ์ฝ๋์ ๋ช
ํ์ฑ๊ณผ ์์ธก ๊ฐ๋ฅํ ๋..

Express.js๋ Node.js ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ ์น ํ๋ ์์ํฌ. ๊ฐ๋จํ ์๋ฒ ์ค์ ๊ณผ API ์๋ํฌ์ธํธ ์ ์๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค.https://www.npmjs.com/package/express expressFast, unopinionated, minimalist web framework. Latest version: 4.19.2, last published: 5 months ago. Start using express in your project by running `npm i express`. There are 85293 other projects in the npm registry using express.www.npmjs.comnpm i express Express ์๋ฒ ์ค์ con..

ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ ์๋ก ๋ค๋ฅธ ์ญํ ์ ์ํํ๋ฉฐ, ๊ฐ๋ฐ์์๊ฒ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ ๋ฐฉ์์์๋ ์ฐจ์ด๊ฐ ์๋ค. 1. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ๊ธฐ๋ณธ ๊ฐ๋
๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋๊ตฌ๋ค์ ์งํฉ. ๊ฐ๋ฐ์๋ ํ์ํ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ์ฌ ํน์ ์์
์ ์ํํ ์ ์๋ค.๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋ฆ์ ์ง์ ์ ์ดํ์ง ์๋๋ค. ๋์ , ๊ฐ๋ฐ์๊ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.ํ๋ ์์ํฌ(Framework)ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๊ณ , ๊ทธ ์์์ ๊ฐ๋ฐ์ด ์ด๋ฃจ์ด์ง๋๋ก ํ๋ค. ํ๋ ์์ํฌ๋ ์ฝ๋์ ํ๋ฆ์ ์ ์ดํ๋ฉฐ, ๊ฐ๋ฐ์๋ ํ๋ ์์ํฌ๊ฐ ์ ์ํ๋ ๋ฐฉ์์ ๋ง์ถ์ด ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.ํ๋ ์์ํฌ๋ “์ ์ด์ ์ญ์ (Inversion of Control..

๋ฌธ์ ์ํฉgit status๋ฅผ ํ์ธํ๋ฉด ๋ถ๋ช
๋ก์ปฌ์ ์ปค๋ฐ์ด ์์ด์ push๊ฐ ํ์ํ๋ค๊ณ ํ๋๋ฐ, git push๊ฐ ์ ๋๋ ์ํฉ. ์๋ฌ ๊ด๋ จ ๋ฉ์์ง๋ค์ ๋ณด๋ฉดerror: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC)์ด ์คํจํ๋ค, HTTP 400 ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค. ์ด๋ ํด๋ผ์ด์ธํธ ์ธก ์์ฒญ์ด ์๋ชป๋์์์ ์๋ฏธํ๋ค.send-pack: unexpected disconnect while reading sideband packet์ฌ์ด๋๋ฐด๋ ํจํท(๋ฐ์ดํฐ ์ ์ก์ ์ํ ํจํท)์ ์ฝ๋ ์ค์ ์๊ฒฉ ์๋ฒ์์ ์ฐ๊ฒฐ์ด ์์์น ๋ชปํ๊ฒ ๋๊ฒผ๋ค๊ณ ํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒํด๊ฒฐ ๋ฐฉ๋ฒ ๋จผ์ ์ดํด๋ณด์. git config --get http.p..

Node.jsNode.js์ ์ญํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์น ๋ธ๋ผ์ฐ์ ๋ฐ์์๋ ์คํํ ์ ์๊ฒ ํ๋ ํ๋ซํผ.์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํฌ๋ฆฝํธ ์ธ์ด ์ด์์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ญํ ์ ์ํํ๊ฒ ํจ.Node.js์ ํ์ฉ๋ฐฑ์๋๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ:ํ๋ก ํธ์๋ ํ๋ ์์ํฌReact์ Vue ๋ฑ์ Node.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋ ๋ฐ ๊ฐ๋ฐ ๋๊ตฌ ์ฒด์ธ์ ์ ๊ณต. Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฑ๊ธ ์ค๋ ๋ ํน์ฑ์ ์ ์งํ๋ฉด์๋, ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ฐ ๋
ผ๋ธ๋กํนI/O ๋ชจ๋ธ์ ํตํด ๋น๋๊ธฐ ์์
์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋ ๋ฐํ์ ํ๊ฒฝ์ด๋ค! ์ฑ๊ธ ์ค๋ ๋ ๊ธฐ๋ฐ ์ด๋ฒคํธ ๋ฃจํ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฑ๊ธ ์ค๋ ๋ ํน์ฑ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ์์ฒด๋ ์ฑ๊ธ ์ค๋ ๋๋ก ์ค๊ณ๋์ด์๋ค. ์ฆ, ํ ๋ฒ์ ํ๋์ ์์
๋ง์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ์ด๋ค. ์ด๋ฒคํธ ๋ฃจํNode.js๋ ์ฑ๊ธ ์ค..

๋ชจ๋(Module)ํน์ ๊ธฐ๋ฅ์ ์บก์ํํ ์ฝ๋์ ๋ธ๋ก ๋๋ ํ์ผ. ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ฝ๋์ ์กฐ์งํ๋ฅผ ๋๋๋ค.1. ๊ธฐ๋ณธ ๋ด์ฅ๋ ๊ฒNode.js์๋ ๋ค์ํ ๊ธฐ๋ณธ ๋ด์ฅ ๋ชจ๋์ด ํฌํจ๋์ด ์๋ค.setTimeout()fs, http, path ๋ฑ.2. ์ธ๋ถ ๋ชจ๋Node.js ํจํค์ง ๊ด๋ฆฌ์์ธ NPM(Node Package Manager)์ ํตํด ์ค์นํ ์ ์๋ค.์ค์น ํ ํ๋ก์ ํธ์์ ์ธ๋ถ ๋ชจ๋์ ์ฌ์ฉํ ์ ์๋ค. Node.js์์ exports๋ ๋ชจ๋์ ์ ์ํ๊ณ ์ธ๋ถ๋ก ๋ด๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.๋ค๋ฅธ ํ์ผ์ด๋ ๋ชจ๋์์ ์ ์๋ ๋ชจ๋์ require๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ vs ํ๋ ์์ํฌ๋ผ์ด๋ธ๋ฌ๋ฆฌํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋๊ตฌ์ ์งํฉ. ๊ฐ๋ฐ์๊ฐ ํ์ํ ๋ ํธ์ถํด์ ์ฌ์ฉ.์ ์ด๊ถ์ ๊ฐ๋ฐ์์๊ฒ ์๋ค! ํ์ํ ๊ธฐ๋ฅ์ ์ง์ ํธ์ถํ์ฌ..
API (Application Programming Interface)์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ์๋ก ํต์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ๊ท์น ์งํฉ! Interface์ธํฐํ์ด์ค๋? ํ๋์ ์ฌ๋ฌผ์ด ๋ค๋ฅธ ์ฌ๋ฌผ๊ณผ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. CLI, GUI์์ ์ฌ์ฉํ๋ฏ! ์ธํฐํ์ด์ค๋ '๋งค๊ฐ์ฒด'์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. REST APIREST API ๋ REST์์น์ ๋ฐ๋ฅด๋ API, HTTP ๊ท์ฝ์ ์ ๋ฐ๋ฅธ API๋ค.์๋์ ๊ธ์ REST API์ URI์ ๋ํด ์์ธํ ์ ๋ฆฌํ ๋ฐ ์๋ค.https://yesolz.tistory.com/entry/REST-API-URI-%EC%84%A4%EA%B3%84-%EA%B7%9C%EC%B9%99 REST API URI ์ค๊ณ ๊ท์นAPI ๋ค์ด๋ฐ์ ํ๋ค๊ฐ ๊ณ ๋ฏผ์ด ์๊ฒผ๋ค. [PUT] ..