Community

๐Ÿง RDBMS ์™€ NoSQL ์˜ ์ฐจ์ด

๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์„œ๋น„์Šค๋ผ๋ฉด ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ๋ฐ์š”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๊ฐœ๋…๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ RDBMS ์™€ NoSQL ์˜ ์ฐจ์ด์  ๋ฐ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ž˜ ์„ค๋ช…๋œ ๊ธ€์ด ์žˆ์–ด ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ„๋žตํ•˜๊ฒŒ ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database, DB) ๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. DB์—๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ์กด์žฌํ•˜๋Š”๋ฐ์š”. ๊ณ„์ธตํ˜•(Hierarchical), ๋งํ˜•(Network), ๊ด€๊ณ„ํ˜•(Relational), ๊ฐ์ฒด์ง€ํ–ฅํ˜•(Object-Oriented), ๊ฐ์ฒด๊ด€๊ณ„ํ˜•(Object-Relational) ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ RDBMS(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) ์ด๋ž€? ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ณ ์ •๋œ ํ–‰(row)๊ณผ ์—ด(column)๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์—ด์—๋Š” ํ•˜๋‚˜์˜ ์†์„ฑ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๊ณ , ํ–‰์—๋Š” ๊ฐ ์—ด์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ํ•ต์‹ฌ์ ์ธ ํŠน์ง•์ด ๋‘ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ•ด์ง„ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ๋‹ค๋Š” ์  2. ๋ฐ์ดํ„ฐ๊ฐ€ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„์‚ฐ๋œ๋‹ค๋Š” ์  ๐Ÿ“Œ NoSQL(๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) ์ด๋ž€? ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQL, ์ฆ‰, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์œ ํ˜•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์นญํ•  ๋•Œ NoSQL(๋˜๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ” ํ˜•์‹์ด ์•„๋‹ˆ๋ฉฐ, ๊ด€๊ณ„ํ˜• ํ…Œ์ด๋ธ”๊ณผ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์œ ํ˜•์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ, ์ฃผ์š” ์œ ํ˜•์œผ๋กœ๋Š” ๋ฌธ์„œ, ํ‚ค ๊ฐ’, ์™€์ด๋“œ ์ปฌ๋Ÿผ, ๊ทธ๋ž˜ํ”„ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. NoSQL์ด๋ผ๊ณ  ํ•ด์„œ ๊ผญ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์™€ ๋†’์€ ์‚ฌ์šฉ์ž ๋ถ€ํ•˜์—์„œ๋„ ์†์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์˜ต๋‹ˆ๋‹ค. ๐Ÿ“Œ RDBMS VS NoSQL, ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€? โœ”๏ธ ๋ฐ์ดํ„ฐ ์ €์žฅ(Storage) - RDBMS: ๋ฐ์ดํ„ฐ๋ฅผ SQL ์–ธ์–ด๋ฅผ ํ†ตํ•ด ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ ์Šคํ‚ค๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •ํ•ด์ง„ ํ˜•์‹์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. - NoSQL: key-value, document, wide-column, graph ๋“ฑ์˜ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. โœ”๏ธ ์Šคํ‚ค๋งˆ(Schema) - RDBMS: ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ๊ฐ€ ํ•„์š”. ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ ์†์„ฑ๋ณ„๋กœ ์—ด(column)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด์•ผ๋งŒ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ. ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜คํ”„๋ผ์ธ์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์‹ ์ค‘ํ•˜๊ฒŒ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. - NoSQL: ์œ ์—ฐํ•˜๊ฒŒ ์Šคํ‚ค๋งˆ์˜ ํ˜•ํƒœ๋ฅผ ๊ด€๋ฆฌ. ํ–‰์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์ฆ‰์‹œ ์ƒˆ๋กœ์šด ์—ด์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ณ„ ์†์„ฑ์— ๋Œ€ํ•ด์„œ ๋ชจ๋“  ์—ด์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. โœ”๏ธ ์ฟผ๋ฆฌ(Query) - RDBMS: ํ…Œ์ด๋ธ”์˜ ํ˜•์‹๊ณผ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ. ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— SQL ์–ธ์–ด์™€ ๊ฐ™์ด ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉ. - NoSQL: ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน ์ž์ฒด๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์— ์ดˆ์ ์„ ๋‘๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ๋„ ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ๊ฐ€๋Šฅ. ์ด๋ฅผ UnQL์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. โœ”๏ธ ํ™•์žฅ์„ฑ(Scalability) - RDBMS: ์ˆ˜์ง์ ์œผ๋กœ ํ™•์žฅ(Scale Up)ํ•˜๋ฉฐ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU๋ฅผ ์‚ฌ์šฉ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ตฌ์ถ•๋œ ํ•˜๋“œ์›จ์–ด์˜ ์„ฑ๋Šฅ์„ ๋งŽ์ด ์ด์šฉํ•˜๋ฏ€๋กœ ๋น„์šฉ์ด ๋น„์‹ผ ํŽธ์ด๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„์— ๊ฑธ์ณ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งค์šฐ ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์ด ๋‹จ์ . - NoSQL: ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅ(Scale Out)์ด ๊ฐ€๋Šฅ. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€๋กœ ๊ตฌ์ถ•ํ•˜๊ฒŒ ๋˜๋ฉด ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  SQL๋ณด๋‹ค ์ €๋ ดํ•œ ๋ฒ”์šฉ ํ•˜๋“œ์›จ์–ด๋‚˜ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ์ธ์Šคํ„ด์Šค์— NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ์–ด ์ƒ๋Œ€์ ์œผ๋กœ ๋น„์šฉ์ด ์ €๋ ดํ•œ ๊ฒƒ์ด ์žฅ์ . ๐Ÿ“Œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ACID ์„ฑ์งˆ์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ - ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ - ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์—†๊ณ  ๋ช…ํ™•ํ•œ ์Šคํ‚ค๋งˆ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ ๐Ÿ“Œ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ - ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ, ํ™•์žฅ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ - ์ฝ๊ธฐ๋Š” ์ž์ฃผ ํ•ด๋„ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ์ž์ฃผ ์—†๋Š” ๊ฒฝ์šฐ - ๋ง‰๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๐Ÿ“š ์›๋ฌธ - https://www.whatap.io/ko/blog/173/index.html?utm_source=facebook&utm_medium=sns_ad&utm_campaign=whatap_blog&utm_content=RDBMS_NoSQL&fbclid=PAAaZeq1mANqwrEgzgFo04B5gL6OZMhV2Jr71jAHyfiKRHq-TO8swPQr8C6KM_aem_AWUe5ZHYvT-75Unh_RPU0mt1GfoAeO7ZNE199clumiI8S60cG6xOHYGtSxTOXRgniniBAUO8b5jJb4lWZmyf1nAK ๐Ÿ“š ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์€ ๊ธ€ - ๐Ÿ’ก NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…๋ฅ˜: https://careerly.co.kr/comments/66826?utm_campaign=self-share

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค