Junyung 2024. 3. 27. 12:59

SQL์˜ ์ข…๋ฅ˜๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ SQL , NoSQL ์„ ์ž์ฃผ ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค. 

๋ณดํ†ต Spring์„ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” SQL์ธ MySQL์„, Node.js์—์„œ๋Š” NoSQL์ธ MongoDB ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ–ˆ์„ ๊ฒƒ์ด๋‹ค. 

 

ํ•˜์ง€๋งŒ ์ด์ฒ˜๋Ÿผ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ผ ๋‹จ์ˆœํžˆ ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •ํ•ด์ ธ์„œ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. 

๊ทธ๋ ‡๋‹ค๋ฉด, SQL๊ณผ NoSQL์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž!

 


SQL (๊ด€๊ณ„ํ˜• DB)

ํ”ํžˆ, ์‹ ์ž…์ด๋ผ๋ฉด SQL์— ๋Œ€ํ•ด ๋จผ์ € ๊ณต๋ถ€ํ•ด๋ดค์„ ๊ฒƒ์ด๋‹ค. 

์ด์ฒ˜๋Ÿผ SQL์„ ์‚ฌ์šฉํ•˜๋ฉด RDBMS์—์„œ ๋ฐ์ดํ„ฐ์˜ CRUD๋ฅผ ํ• ์ˆ˜ ์žˆ๋‹ค.

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” 

1. ๋ฐ์ดํ„ฐ๋Š” ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„์‚ฐ๋œ๋‹ค. 

2. ๋ฐ์ดํ„ฐ๋Š” ์ •ํ•ด์ง„ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ๋‹ค. 

์™€ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 

 

NoSQL(๋น„๊ด€๊ณ„ํ˜• DB)

์ด์— ๋น„ํ•ด NoSQL์€ ๋ง๊ทธ๋Œ€๋กœ "์Šคํ‚ค๋งˆ๋„ ์—†๊ณ , ๊ด€๊ณ„๋„ ์—†๋‹ค"

NoSQL์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฌธ์„œ(Documents) ๋ผ๊ณ  ํ•œ๋‹ค. 

NoSQL์˜ ํ•ต์‹ฌ์ ์ธ ํŠน์ง•์€ ๋‹ค๋ฅธ ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋ฌธ์„œ(Documents)๋Š” Json๊ณผ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋‚˜๋ˆ„์–ด ๋‹ด๋Š” ๊ด€๊ณ„ํ˜• DB์™€ ๋‹ค๋ฅด๊ฒŒ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ผํ•œ ์ปฌ๋ ‰์…˜์— ๋„ฃ๋Š”๋‹ค. 

๋”ฐ๋ผ์„œ, ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์กฐ์ธํ•  ํ•„์š”์—†์ด, ์ด๋ฏธ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ–์ถ˜ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์ฆ‰, ์กฐ์ธ์˜ ๊ฐœ๋…์ด ์—†๋‹ค)

 


์ถ”๊ฐ€ ๊ฐœ๋…

์ด์— ๋”ํ•ด์„œ SQL vs NoSQL ๋‘ DB๋ฅผ ๋น„๊ตํ• ๋•Œ Scaling(๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ) ๊ฐœ๋…๋„ ์•Œ์•„๋‘์–ด์•ผ ํ•œ๋‹ค. 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ์€ ์ˆ˜์ง์  ํ™•์žฅ๊ณผ ์ˆ˜ํ‰์  ํ™•์žฅ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ฒŒ ๋œ๋‹ค. 

 

์ˆ˜์ง์  ํ™•์žฅ : ๋‹จ์ˆœํžˆ DB ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ (ex. CPU ์—…๊ทธ๋ ˆ์ด๋“œ)

์ˆ˜ํ‰์  ํ™•์žฅ : ๋” ๋งŽ์€ ์„œ๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ , DB๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๋ถ„์‚ฐ๋จ์„ ์˜๋ฏธ (ํ•˜๋‚˜์˜ DB์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ์—์„œ ์ž‘๋™๋จ)

 

=> ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์œผ๋กœ ์ธํ•ด SQL DB๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜์ง์  ํ™•์žฅ๋งŒ ์ง€์›ํ•˜๋ฉฐ, ์ˆ˜ํ‰์  ํ™•์žฅ์€ NoSQL DB์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 


SQL vs NoSQL

๊ทธ๋ ‡๋‹ค๋ฉด, SQL๊ณผ NoSQL์˜ ์žฅ/๋‹จ์ ์„ ๋น„๊ตํ•ด๋ณด์ž

 

SQL ์žฅ/๋‹จ์ 

์žฅ์  

1. ๊ด€๊ณ„๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์—†์ด ํ•œ๋ฒˆ๋งŒ ์ €์žฅํ•œ๋‹ค. 

2. ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. 

 

๋‹จ์  

1. ๋œ ์œ ์—ฐํ•˜๋ฉฐ, ๋‚˜์ค‘์— ์ˆ˜์ •ํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์ „์— ๊ณ„ํšํ•˜๊ณ  ์•Œ๋ ค์•ผ ํ•œ๋‹ค. 

2. ์ˆ˜์ง์  ํ™•์žฅ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. 

3. ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ์–ด ์กฐ์ธ๋ฌธ์ด ๋งŽ์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

NoSQL ์žฅ/๋‹จ์ 

์žฅ์ 

1. ์Šคํ‚ค๋งˆ๊ฐ€ ์—†์–ด ์œ ์—ฐํ•˜๋ฉฐ, ์–ธ์ œ๋“ ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ • ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ•„๋“œ๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”๋กœ ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

3. ์ˆ˜์ง ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ˆ˜ํ‰์  ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ชจ๋“  ์ฝ๊ธฐ/์“ฐ๊ธฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋‹จ์ 

1. ์œ ์—ฐ์„ฑ์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ฒฐ์ •์„ ๋ฏธ๋ฃฐ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์ปฌ๋ ‰์…˜์— ์ค‘๋ณต๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ • ์‹œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ด์„œ ์ˆ˜์ •์ด ๊นŒ๋‹ค๋กญ๋‹ค. 

3. ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ๊ณ„์†ํ•ด์„œ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

 

 


์ฆ‰, SQL ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋Š” 

1. ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ 

2. ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์—†๊ณ  ๋ช…ํ™•ํ•œ ์Šคํ‚ค๋งˆ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ 

์‚ฌ์šฉํ•˜๋ฉฐ, 

 

NoSQL ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋Š” 

1. ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ๋ณด๋‹ค ์กฐํšŒ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ

2. ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ/ํ™•์žฅ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

3. DB๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ (๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ)

์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๋ฌผ๋ก , ์ด๊ฒƒ์ด ์ •๋‹ต์€ ์•„๋‹ˆ๊ธฐ์— ํ•„์š” ์ƒํ™ฉ์— ๋งž์ถฐ ์–ด๋А๊ฒƒ์„ ์„ ํƒํ•  ๋•Œ ๋” ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ ์ข‹์€์ง€ ํƒ๊ตฌํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.