[๋ฐ๋ธŒ์ฝ”์Šค] โญ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ด์œ ์™€ DB ๋ฉด์ ‘ ๊ฟ€ํŒ
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
๐Ÿ“’ํฌํŠธํด๋ฆฌ์˜คํฌํŠธํด๋ฆฌ์˜ค๋Š” "๋‚˜ ์ด๋Ÿฐ ๊ฐœ๋ฐœ์ž์•ผ"๋ผ๊ณ  ์–ดํ•„ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด๋‹ค. ์ž‘์—…๋ฌผ์„ ๋ณด์—ฌ์ฃผ๊ฑฐ๋‚˜, ์ด๋ ฅ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.๊นƒํ—™(์ฝ”๋“œ, ์ปค๋ฐ‹ ์ด๋ ฅ, PR ๋“ฑ) -> READMEpdf(word, ppt, notion ๋“ฑ์œผ๋กœ ์ž‘์„ฑํ•œ ๋ฌธ์„œ๋ฅผ pdf๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ์ถœ) -> FE(์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ, ๊ธฐ์ˆ  ์„ ํƒ ์ด์œ ) / BE(ํด๋ฆฐ์ฝ”๋“œ)์›น์‚ฌ์ดํŠธ(์ง์ ‘ ๋งŒ๋“  ํฌํŠธํด๋ฆฌ์˜ค ์›น์‚ฌ์ดํŠธ ๋˜๋Š” ๋…ธ์…˜ ๋งํฌ ๋“ฑ)๋ธ”๋กœ๊ทธ๊ฐœ๋ฐœ์ž ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋ณด๋ฉด ๊ผญ ๋ณด์ด๋Š” ํ‚ค์›Œ๋“œ๋“ค-์ฐฝ์˜์ , ๊พธ์ค€ํ•œ, ์„ฑ์žฅํ•˜๋Š”, ์†Œํ†ตํ•˜๋Š”...-์ด ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ์ง„์งœ ์ด๋Ÿฐ ์‚ฌ๋žŒ์ธ์ง€ ์–ด๋–ป๊ฒŒ ์•„๋А๋ƒ?๐Ÿ‘‰ ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ ํ•™์Šต ๋ธ”๋กœ๊ทธ != ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธํ•™์Šต ๋ธ”๋กœ๊ทธ๋Š” ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์–ด๋А์ •๋„ ์•Œ๊ณ  ์žˆ๊ธด ํ–ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋งŽ์ด ์Šฌํސ๋˜ ๋ง...ํ•™์Šต ๋ธ”..
[๋ฐ๋ธŒ์ฝ”์Šค] 2์ฃผ์ฐจ ํšŒ๊ณ 
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํšŒ๊ณ 
ํšŒ๊ณ : โญโญโญโญโญ๐Ÿ‘Liked1. ๊ณต๋ถ€ ๋ชฉํ‘œ ๋‹ฌ์„ฑ1์ฃผ์ฐจ์—๋Š” ํ† ์š”์ผ, ์ผ์š”์ผ์—๋„ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์ง€๋งŒ ์ด์ œ๋Š” ํ† ์š”์ผ ํ•˜๋ฃจ๋งŒ ๊ฐ•์˜๋ฅผ ๋“ฃ๋Š”๊ฑธ๋กœ ์ •ํ–ˆ๋‹ค. Nest ์Šคํ„ฐ๋””+WTL์šฉ CS ๊ณต๋ถ€๋„ ํ•ด์•ผ ํ•ด์„œ ์ผ์š”์ผ์€ ๊ฐ•์˜ ์™ธ ๊ณต๋ถ€ + ํšŒ๊ณ  ๊ธ€ ์ž‘์„ฑ์ผ๋กœ ๊ฒฐ์ •! ์›”ํ™”์ˆ˜๋ชฉ๊ธˆ ๊ฐ•์˜ ๋น ์ง€์ง€ ์•Š๊ณ  ์ž˜ ๋“ฃ๊ณ , ํ† ์š”์ผ์—๋„ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค. ๋ฏธ๋ฆฌ ๋“ค์–ด๋†“์œผ๋‹ˆ ์˜ค๋Š˜์€ ์ข€ ์‰ด๊นŒ...์ƒ๊ฐ์ด ๋“ค์–ด๋„ ๊พน ์ฐธ๊ณ  ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„ 5๊ฐœ ์คฌ์Œ 2. ์Šคํ„ฐ๋”” ์˜จ๋ณด๋”ฉ(์•„๋งˆ๋„ ์„ฑ๊ณต์ )์›”์š”์ผ์— Nest ์Šคํ„ฐ๋”” ์˜จ๋ณด๋”ฉ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž๊ธฐ์†Œ๊ฐœ๋ž‘, ์•ž์œผ๋กœ์˜ ์ง„ํ–‰ ์ผ์ •์„ ์ •ํ–ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•ด์•ผ ํ•  ์ง€ ๊ณ ๋ฏผ์ด ์ปธ๋Š”๋ฐ, ๋‚˜๋ฆ„ ์ •ํ•  ๊ฑฐ ๋‹ค ์ •ํ•˜๊ณ  ์ž˜ ๋๋‚ธ ๊ฒƒ ๊ฐ™๋‹ค! ๋„์„œ ์‹ ์ฒญ ํผ์„ ์›”์š”์ผ์— ๋„ฃ์–ด์„œ, ์ฑ…์€ ๋‹ค์Œ์ฃผ ์ฏค ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ..
[๋ฐ๋ธŒ์ฝ”์Šค] 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 ํ˜•์‹์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค๋ฉด,์ฝ˜์†”..
[๋ฐ๋ธŒ์ฝ”์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ํ”„๋กœ์ ํŠธ(ERD, DDL)
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํ”„๋กœ์ ํŠธ
์˜ค๋Š˜์€ ๊ฐ•์˜๋ฅผ ๋“ฃ์ง€ ์•Š๊ณ , 9์‹œ๋ถ€ํ„ฐ zep์— ๋ชจ์—ฌ์„œ ํ•˜๋ฃจ์ข…์ผ ์นด๋ฉ”๋ผ ์ผœ๊ณ  ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‚ ์ด์—ˆ๋‹ค.ํ”„๋กœ์ ํŠธ๋Š” ์ด 2๊ฐœ. ํฌํŠธํด๋ฆฌ์˜ค ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ์™€, ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์„ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ํฌํŠธํด๋ฆฌ์˜ค ํŽ˜์ด์ง€๋Š” ์ด๊ฒƒ์ €๊ฒƒ ์กฐ๊ธˆ์”ฉ ๊ณ„์† ์ž‘์—… ์ค‘๐ŸšˆERDEntity Relationship Diagram, ์‹œ์Šคํ…œ์˜ ์—”ํ‹ฐํ‹ฐ๋“ค์ด ๋ฌด์—‡์ด ์žˆ๋Š”์ง€, ์–ด๋–ค ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์š”๊ตฌ์‚ฌํ•ญ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ํ™”๋ฉด ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ์ฃผ์…จ๋‹ค. ๊ณต์—ฐ ํ‹ฐ์ผ“ํŒ… ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™€์ด์–ดํ”„๋ ˆ์ž„์ด๊ณ , ์ฃผ์–ด์ง„ ํŽ˜์ด์ง€๋Š” 5๊ฐœ์˜€๋‹ค.1. ๊ณต์—ฐ ๋ชฉ๋ก ํŽ˜์ด์ง€2. ๊ณต์—ฐ ์ƒ์„ธ ํŽ˜์ด์ง€3. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€4. ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€5. ์ฃผ๋ฌธ ๋‚ด์—ญ ํŽ˜์ด์ง€ ์šฐ์„  ์™„์„ฑํ•œ ERD๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค!๐Ÿ“…ํ…Œ์ด๋ธ”user_info์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”. ๋กœ๊ทธ์ธ/ํšŒ์›..