[๋ฐ๋ธŒ์ฝ”์Šค] โญํŠน๊ฐ•-๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ด์œ ์™€ DB ๋ฉด์ ‘ ๊ฟ€ํŒ
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
๐Ÿ“’ํฌํŠธํด๋ฆฌ์˜คํฌํŠธํด๋ฆฌ์˜ค๋Š” "๋‚˜ ์ด๋Ÿฐ ๊ฐœ๋ฐœ์ž์•ผ"๋ผ๊ณ  ์–ดํ•„ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด๋‹ค. ์ž‘์—…๋ฌผ์„ ๋ณด์—ฌ์ฃผ๊ฑฐ๋‚˜, ์ด๋ ฅ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.๊นƒํ—™(์ฝ”๋“œ, ์ปค๋ฐ‹ ์ด๋ ฅ, PR ๋“ฑ) -> READMEpdf(word, ppt, notion ๋“ฑ์œผ๋กœ ์ž‘์„ฑํ•œ ๋ฌธ์„œ๋ฅผ pdf๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ์ถœ) -> FE(์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ, ๊ธฐ์ˆ  ์„ ํƒ ์ด์œ ) / BE(ํด๋ฆฐ์ฝ”๋“œ)์›น์‚ฌ์ดํŠธ(์ง์ ‘ ๋งŒ๋“  ํฌํŠธํด๋ฆฌ์˜ค ์›น์‚ฌ์ดํŠธ ๋˜๋Š” ๋…ธ์…˜ ๋งํฌ ๋“ฑ)๋ธ”๋กœ๊ทธ๊ฐœ๋ฐœ์ž ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋ณด๋ฉด ๊ผญ ๋ณด์ด๋Š” ํ‚ค์›Œ๋“œ๋“ค-์ฐฝ์˜์ , ๊พธ์ค€ํ•œ, ์„ฑ์žฅํ•˜๋Š”, ์†Œํ†ตํ•˜๋Š”...-์ด ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ์ง„์งœ ์ด๋Ÿฐ ์‚ฌ๋žŒ์ธ์ง€ ์–ด๋–ป๊ฒŒ ์•„๋А๋ƒ?๐Ÿ‘‰ ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ ํ•™์Šต ๋ธ”๋กœ๊ทธ != ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธํ•™์Šต ๋ธ”๋กœ๊ทธ๋Š” ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์–ด๋А์ •๋„ ์•Œ๊ณ  ์žˆ๊ธด ํ–ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋งŽ์ด ์Šฌํސ๋˜ ๋ง...ํ•™์Šต ๋ธ”..
[๋ฐ๋ธŒ์ฝ”์Šค] Postman์œผ๋กœ API ํ…Œ์ŠคํŠธํ•˜๊ธฐ(GET, POST)
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์˜ค๋Š˜์€ HTTP ๋ฉ”์„œ๋“œ POST๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ธ Postman ํ™œ์šฉ์„ ๋ฐฐ์› ๋‹ค.๐Ÿ“ฌPOST๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œGET์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์šฉ๋„์˜€๋‹ค๋ฉด, POST๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. POST API๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ์•ˆ๋œ๋‹ค?post ๋ฉ”์„œ๋“œ๋กœ api๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—๋Š” ๋‹ค์Œ ํ…์ŠคํŠธ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.Cannot GET /test๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ GET ์š”์ฒญ๋งŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, POST๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. POST๋Š” body์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋ผ ๋‹จ์ˆœ URL ์ž…๋ ฅ์œผ๋กœ๋Š” ์š”์ฒญ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.๐Ÿง‘โ€๐Ÿš€PostmanPOST ์š”์ฒญ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌPOST ์š”์ฒญ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด..
[๋ฐ๋ธŒ์ฝ”์Šค] Express Generator ๊ตฌ์กฐ์™€ ํ•ต์‹ฌ ํŒŒ์ผ ๋œฏ์–ด๋ณด๊ธฐ(www, app.js)
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์–ด์ œ์— ์ด์–ด์„œ ์˜ค๋Š˜์€ map์— object๋ฅผ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , map์„ ํ™œ์šฉํ•˜์—ฌ ์œ ํŠœ๋ฒ„ ์ •๋ณด ์กฐํšŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค. - ์–ด์ œ๋ž‘ ๋งŽ์ด ๊ฒน์น˜๋Š” ๋‚ด์šฉ๋“ค์ด์–ด์„œ ์ •๋ฆฌ๋Š” ์ƒ๋žต. ๋Œ€์‹  ์˜ค๋Š˜ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด Express์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ  express-generator๋ฅผ ํ†ตํ•ด Express ํ”„๋กœ์ ํŠธ์˜ ํ‹€์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ์—ฌํƒœ๊นŒ์ง„ ๊ฐ•์‚ฌ๋‹˜ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ API๋ฅผ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋‹ค ๋ณด๋‹ˆ ์ผ๋‹จ ์ฝ˜์†”๋งŒ ์ฐํžˆ๋ฉด ์˜ค์˜ค์˜ค์˜ค ํ–ˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด์„œ Express๋ฅผ ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐ŸณExpress๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์‚ฌ์‹ค Node.js๋กœ ์›น ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ๋• http ๋ชจ๋“ˆ๋งŒ์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ API๊ฐ€ ๋งŽ์•„์ง€๊ณ  ์š”์ฒญ์ด ๋‹ค์–‘ํ•ด์งˆ์ˆ˜๋ก ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐ..
[๋ฐ๋ธŒ์ฝ”์Šค] Express URL ํ•ธ๋“ค๋ง (req.query(), ๋น„๊ตฌ์กฐํ™”, Map)
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์ด์ „ ์‹œ๊ฐ„์— Express์—์„œ req.params()๋ฅผ ํ™œ์šฉํ•ด์„œ URL์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ณ , ์ด๋ฅผ ์„œ๋ฒ„ ์‘๋‹ต์— ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋‹ค. ์˜ค๋Š˜์€ URL์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , ๋น„๊ตฌ์กฐํ™”๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๋Š”๋ฒ•๊ณผ Map ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ Express์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋‹ค.๐Ÿ’‰URL์—์„œ ์ •๋ณด ์ถ”์ถœํ•˜๊ธฐreq.queryURL์˜ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง, ? ๋’ค์— ๋ถ™๋Š” key=value ์Œapp.get("/watch", function (req, res) { const q = req.query; console.log(q); res.json(q);});app.listen(3001);ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด http://localhost:3001/watch?v=abc123&t=42 ํ˜•์‹์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค๋ฉด,์ฝ˜์†”..
[๋ฐ๋ธŒ์ฝ”์Šค] Express REST API ๊ธฐ์ดˆ(get(), res.send(), res.json(), res.params())
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์ง€๊ธˆ๊นŒ์ง€๋Š” HTTP ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ  ๋ผ์šฐํŒ…์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋งค๋ฒˆ ์ด๊ฑธ ์ง์ ‘ ๋‹ค ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜? ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.Express.js๋Š” ์ด๋Ÿฐ ์ž‘์—…์„ ๋” ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„ ์›Œํฌ์ด๋‹ค. ์˜ค๋Š˜์€ Express.js ๋ฅผ ์•Œ์•„๋ณด๊ณ , Express.js๋ฅผ ํ™œ์šฉํ•˜์—ฌ REST API๋ฅผ ๋งŒ๋“œ๋Š” ์‹ค์Šต์„ ํ•ด๋ณด์•˜๋‹ค.๐Ÿ–คExpressExpress๋ž€?Node.js ํ™˜๊ฒฝ์—์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ API๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒฝ๋Ÿ‰ ์›น ํ”„๋ ˆ์ž„์›ŒํฌExpress ๋Š” HTTP ๋ชจ๋“ˆ ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ๋” ์ง๊ด€์ ์ธ ๋ผ์šฐํŒ…, ๋ฏธ๋“ค์›จ์–ด ์ฒ˜๋ฆฌ, ๋‹ค์–‘ํ•œ ์‘๋‹ต ๋ฉ”์„œ๋“œ ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ํŠน์ง•๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•: ๋ผ์šฐํŒ…๊ณผ ์‘๋‹ต ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋ฐ˜: ์š”์ฒญ ํ๋ฆ„์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ฝ์ž…RESTful..
[๋ฐ๋ธŒ์ฝ”์Šค] Node.js ๋ชจ๋“ˆ๊ณผ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ดํ•ด(๋ชจ๋“ˆํ™”, npm, ๋…ผ๋ธ”๋กœํ‚น I/O)
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์˜ค๋Š˜์€ HTTP Method๋ฅผ ๋ณต์Šตํ•˜๊ณ  Node.js๋ฅผ ์ข€ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด์ „ ์‹œ๊ฐ„์— ๋ฐฐ์šด ๋ชจ๋“ˆ์— ๋Œ€ํ•ด์„œ๋„ ์ข€ ๋” ์ž์„ธํžˆ ๋ฐฐ์šฐ๊ณ , ๋ชจ๋“ˆ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฐจ์ด๋„ ์•Œ์•„๋ณด์•˜์Œ.๐Ÿ”ญHTTP method ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์–ด๋–ค ๋™์ž‘์„ ์›ํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹. ๊ฐ ๋ฉ”์„œ๋“œ๋Š” ๊ณ ์œ ์˜ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, REST API ์„ค๊ณ„์˜ ๊ธฐ๋ณธ์ด ๋œ๋‹ค. ์ฃผ์š” HTTP Method Method ์—ญํ•  ์ƒ์„ฑ POST ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์š”์ฒญ ๋ณธ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด์„œ ์ „์†กํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ๋ณด์•ˆ์„ฑ์ด ๋†’๋‹ค. ๋˜ํ•œ ์บ์‹œ๋˜์ง€ ์•Š๊ณ , ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์ง€ ์•Š๋Š”๋‹ค. ์กฐํšŒ GET ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ..