๋ชฉ๋ก์ „์ฒด ๊ธ€ (129)

YS's develop story

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ NoSQL ๋ฐ DDL, DML์˜ ์ •์˜

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ NoSQL ๋ฐ DDL, DML์˜ ์ •์˜ ์ˆ˜๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ์ด ๊ทธ๋Ÿฐ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๋Š” ํ˜•์‹์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ ๊ฐ๊ฐ์˜ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ ์œ„์™€ ๊ฐ™์ด 2์ฐจ์› ํ‘œ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ํ˜„์žฌ ๊ฐ€์žฅ ์ฃผ๋ฅ˜๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์€ ์—ด๊ณผ ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ํ…Œ์ด๋ธ”์˜ column๋“ค์€ ํŠน์„ฑ(Attribute)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ Row(Tuple)๋“ค์€ ์ˆœ์„œ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์‚ฌ์ง„์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. No SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ตœ๊ทผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด์™ธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ฃผ๋ชฉ์„ ๋ฐ›์•„์˜จ ๊ฒƒ์ด NoSQL..

Database 2021. 4. 13. 09:02
ํŠธ๋žœ์žญ์…˜์˜ ์˜๋ฏธ ๋ฐ Node MySQL Transactions ์ ์šฉํ•ด๋ณด๊ธฐ

ํŠธ๋žœ์žญ์…˜์˜ ์˜๋ฏธ ๋ฐ Node MySQL Transactions ์ ์šฉํ•ด๋ณด๊ธฐ 3ํ•™๋…„ ์ „๊ณต ํ•„์ˆ˜๊ณผ๋ชฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค.. ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ Transactions์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค transaction์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฐ์†๋œ ์ฟผ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ ํ•˜๋‚˜์˜ ์ž‘์—…์ฒ˜๋Ÿผ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. SQL standard๋Š” SQL ๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ ํŠธ๋žœ์žญ์…˜์ด ์•”์‹œ์ ์œผ๋กœ ์‹œ์ž‘๋˜๋„๋ก ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ์•„๋ž˜์˜ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์˜ ์ƒํƒœ๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Commit work ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋‚  ๋•Œ ๋•Œ๊นŒ์ง€ ์ˆ˜ํ–‰๋˜์—ˆ๋˜ ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ๋“ค์˜ ์ž‘์—…์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ Rollback work ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋‚  ๋•Œ๊นŒ์ง€ ์ˆ˜ํ–‰๋˜์—ˆ๋˜ ์ž‘์—…๋“ค์„ ๋ชจ๋‘ ์ทจ์†Œํ•˜๋Š” ๊ฒƒ ํŠธ๋žœ์žญ์…˜์˜ ์›์ž์„ฑ ์™„์ „ํžˆ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ (Commit) ๋ฐœ์ƒํ•˜์ง€ ์•Š..

Database 2021. 4. 10. 09:48
Node js ์—์„œ ๋ฉ”์ผ ์ „์†กํ•˜๊ธฐ (Nodemailer ์ด์šฉ, Node ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ)

Node js์—์„œ ๋ฉ”์ผ ์ „์†กํ•˜๊ธฐ (Nodemailer ์ด์šฉ) ๋…ธ๋“œ ๋ฉ”์ผ๋Ÿฌ๋Š” Node.js์—์„œ ๋ฉ”์ผ ์ „์†ก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ์ด๋ฉฐ, ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ์šฐ์„  ๋ฉ”์ผ์„ ๋ณด๋‚ผ gmail์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด ์ค์‹œ๋‹ค. ๋ฉ”์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ์•„๋ž˜์˜ ๋งํฌ๋กœ ์ ‘์†์„ ํ•˜์—ฌ ๋ณด์•ˆ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ์˜ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด ์ค์‹œ๋‹ค. ๋กœ๊ทธ์ธ - Google ๊ณ„์ • ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ๋ชจ๋“  Google ์„œ๋น„์Šค๋ฅผ Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ accounts.google.com npm์„ ์ด์šฉํ•ด nodemailer ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œ ํ•ด ์ค์‹œ๋‹ค. npm install nodemailer ์ฝ”๋“œ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค. const nodemailer = require('nodemailer'); ์ €๋Š” ์ €์˜ ..

๊ธฐํƒ€ 2021. 3. 10. 08:44
์„œ๋ฒ„ ๊ฐœ๋ฐœ ์ฃผ์˜์‚ฌํ•ญ

์„œ๋ฒ„ ๊ฐœ๋ฐœ์ฃผ์˜์‚ฌํ•ญ ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ์‹œ ์ค‘์š”ํ•œ ์ฃผ์˜ ์‚ฌํ•ญ๋“ค์„ ๋ฉ˜ํ† ๋ถ„๋“ค๊ป˜์„œ ์ž˜ ์ •๋ฆฌํ•ด ์˜ฌ๋ ค ์ฃผ์…จ๋Š”๋ฐ.. ์„œ๋ฒ„ ๊ฐœ๋ฐœ ์‹œ ๋‘๊ณ ๋‘๊ณ  ์ฐธ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1. API Index ์ „์ฒด์ ์ธ API ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณณ์ด์—์š”. ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๋Š” ์ด ํŽ˜์ด์ง€๋งŒ ๋ณด๊ณ  ์–ด๋–ค API๊ฐ€ ์žˆ๊ณ  ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•˜๋ฉด ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์‚ฌํ•ญ์— ํŠนํžˆ ์‹ ๊ฒฝ ์จ์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ์ค์‹œ๋‹ค.!! API ๋ฌธ์„œ ์ตœ์‹ ํ™”์— ๊ผญ ์‹ ๊ฒฝ ์จ์ฃผ์„ธ์š”! ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์™€ ์‹ค์„œ๋ฒ„์˜ URL์„ ์ ์–ด์ฃผ์„ธ์š”. ๊ฐ๊ฐ์˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ฐ ์‹œํŠธ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ๊ฑธ์–ด์ฃผ์„ธ์š”. (Ctrl+K ๋˜๋Š” Cmd+K) API ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  git์— ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ๊ผญ API ๋ช…์„ธ์„œ๋ฅผ ์ตœ์‹ ํ™”ํ•ด์ฃผ์„ธ์š”. ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šฌ๋ž™ ์ฑ„๋„..