til

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..
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜• ๋ณ€ํ™˜ (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..
๋ชจ๋“ˆ(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] ..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Database; DB)๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ฒด๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ๋ง‰๊ณ , ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ DBMS (DataBase Management System)๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑ, ๊ด€๋ฆฌ, ์กฐ์ž‘ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ๊ด€๊ณ„ํ˜• DBMS (RDBMS): MySQL, PostgreSQL, Oracle, Microsoft SQL Server ๋“ฑ.๋น„๊ด€๊ณ„ํ˜• DBMS (NoSQL): MongoDB, Cassandra, Redis ๋“ฑ. SQL (Structured Query Language)๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ์‚ฐ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.INSERT, SELECT, ..
๋ฐฑ์—”๋“œ ๊ตฌ์กฐ   ์›น ์„œ๋ฒ„ (Web Server)์›น ์„œ๋ฒ„๋Š” ์ •์  ํŽ˜์ด์ง€์— ๋Œ€ํ•ด ๋Œ€์‘ํ•จ๋™์  ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋Š” ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ , ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌ* ์ •์ ํŽ˜์ด์ง€: ํ™”๋ฉด์˜ ๋‚ด์šฉ/๋ฐ์ดํ„ฐ ๋“ฑ์˜ ๋ณ€๋™์ด ์—†๋Š” ํŽ˜์ด์ง€* ๋™์ ํŽ˜์ด์ง€: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ/์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ™”๋ฉด์˜ ๋‚ด์šฉ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•˜๋Š” ํŽ˜์ด์ง€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(Web Application Server, WAS)๋Š” ๋™์  ํŽ˜์ด์ง€๋ฅผ ์ฒ˜๋ฆฌํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฐ์ดํ„ฐ ์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญ* ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ฒด-> ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์— ํฌ์ปค์‹ฑ ! Node.jsNode.js๋Š” JavaScript๋ฅผ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ ๋ฐ–์—์„œ๋„ ์‚ฌ์šฉ..
CSSCascading Style SheetsHTML ๊พธ๋ฉฐ์ฃผ๋Š” ์–ธ์–ด๋ฌธ์„œ ํ†ต์งธ๋กœ๊ฐ€ ์•„๋‹Œ, HTML ํ•˜๋‚˜ํ•˜๋‚˜ ๊พธ๋ฉฐ์คŒHTML์— CSS ์ ์šฉ ๋ฐฉ๋ฒ• 3๊ฐ€์ง€์ธ๋ผ์ธ (inline): HTML ํƒœ๊ทธ ์•ˆ์— ๊ฐ™์ด ์ž‘์„ฑ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ (internal style sheet): HTML ๋ฌธ์„œ ์•ˆ์— ๊ฐ™์ด ์ž‘์„ฑ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ (external style sheet): HTML ๋ฌธ์„œ ๋ฐ–์— ์ž‘์„ฑํ•˜๊ณ  ์—ฐ๊ฒฐ* HTML ํƒœ๊ทธ ํ•œ์Œ์„ element๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.  JavaScriptํŠน์ • HTML์š”์†Œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ž€?๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ, (ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ) ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ดํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด-> ๋Ÿฐํƒ€์ž„์˜ ๋ฐœ์ „์œผ๋กœ, ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋งŒ..
์›น์˜ ์ดํ•ด์ธํ„ฐ๋„ท๊ณผ ์›น์ธํ„ฐ๋„ท (Internet): ์ „ ์„ธ๊ณ„ ์ปดํ“จํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ†ต์‹ ๋ง์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๊ฒƒ. '์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค'๋Š” ๊ฐœ๋…์„ ์ƒ์ง•.์›น (Web): ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„. ์›”๋“œ ์™€์ด๋“œ ์›น (World Wide Web, WWW)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ.์›น์˜ ์‹œ์ž‘๊ณผ ํŠน์ง•1980๋…„๋Œ€ ์Šค์œ„์Šค ์œ ๋Ÿฝ ์ž…์ž ๋ฌผ๋ฆฌ ์—ฐ๊ตฌ์†Œ์—์„œ ํŒ€ ๋ฒ„๋„ˆ์Šค๋ฆฌ๊ฐ€ ์—ฐ๊ตฌ์›๋“ค ๊ฐ„ ๋น ๋ฅธ ์ •๋ณด ๊ตํ™˜์„ ์œ„ํ•ด ๊ณ ์•ˆ.ํŠน์ง•: ์ •๋ณด๋ฅผ ํ•˜์ดํผํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ , ๋งํฌ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ •๋ณด์™€ ๋ฌธ์„œ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ œ๊ณต.์›น ํŽ˜์ด์ง€์™€ ์›น ์‚ฌ์ดํŠธ์›น ํŽ˜์ด์ง€ ๊ฐ„ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋Š” ๊ฒƒ: ์›น ์„œํ•‘ (Web Surfing) ๋˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ง• (Web Browsing).์›น ๋ธŒ๋ผ์šฐ์ €์›น ํŽ˜์ด์ง€๋‚˜ ์›น ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ  ์ฝ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ.์›น์˜ ๊ตฌ์กฐํด..
์• ์ž์ผ ์ค‘ ์Šคํฌ๋Ÿผ ๋ฐฉ์‹, ๊ทธ ์ค‘์—์„œ๋„ ์Šคํ”„๋ฆฐํŠธ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์ž‡๋Š” ํ˜‘์—… ๋„๊ตฌ๋“ค์„ ์‚ดํŽด๋ณด์ž.์Šคํ”„๋ฆฐํŠธ: ์ผ์ •ํ•œ ๊ธฐ๊ฐ„(๋ณดํ†ต 1์ฃผ์—์„œ 4์ฃผ) ๋™์•ˆ ํŠน์ • ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ง‘์ค‘์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์Šคํ”„๋ฆฐํŠธ๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฉฐ, ๊ฐ ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„, ๋‹ค์Œ ์Šคํ”„๋ฆฐํŠธ์—์„œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ด ๋‚˜๊ฐ„๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ œํ’ˆ์˜ ๊ธฐ๋Šฅ์„ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๊ณ , ํŒ€์˜ ์ž‘์—… ๋ฐฉ์‹์„ ์ ์ง„์ ์œผ๋กœ ์ตœ์ ํ™”ํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด ์Šคํ”„๋ฆฐํŠธ ๋ฐฉ์‹์˜ ํ•ต์‹ฌ์ด๋‹ค. ํ˜‘์—… ํˆด: Trello์นธ๋ฐ˜์— ์ถฉ์‹คํ•œ ํˆด. ๊ธฐ๋ณธ์— ์ถฉ์‹คํ•ด์„œ ๋งค๋ ฅ์ ์ธ ํˆด.๋ณต์žกํ•œ ๊ธฐ๋Šฅ, ๊ณ ๋„์˜ ๊ธฐ๋Šฅ์€ ์—†๋‹ค.์ฐฝ์˜๋ ฅ์„ ๋ฐœํœ˜ํ•˜์—ฌ ์Šคํ”„๋ฆฐํŠธ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์ œ๊ณตํ•˜๋Š” agile sprint board ํ…œํ”Œ๋ฆฟ์˜ ๊ตฌ์„ฑ์„ ๋ณด๋ฉด,1. ๋ฐฑ๋กœ๊ทธ..
yesolz
'til' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก