DB/MongoDB

๐Ÿ’ปNoSQL์ด๋ž€

์™„์žโœจ 2022. 6. 16. 12:28

๐Ÿ’ปNoSQL์ด๋ž€

1. NoSQL

NoSQL์ด๋ž€(Not Only SQL)์˜ ์•ฝ์ž๋กœ ๋ง ๊ทธ๋Œ€๋„ ์œ„์—์„œ ์„ค๋ช…ํ•œ RDB ํ˜•ํƒœ์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ์ˆ ์„ ์˜๋ฏธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ NoSQL์—์„œ๋Š” RDBMS์™€๋Š” ๋‹ฌ๋ฆฌ ํ…Œ์ด๋ธ” ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์€ ๊ทธ๋ƒฅ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด๋ฉฐ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์•„ ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ด๋ธ” ๊ฐ„ Join๋„ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

NoSQL์€ ๋งํ–ˆ๋‹ค์‹œํ”ผ 2์ฐจ์› ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋กœ ์ •๋ณด๋ฅผ ๋งคํ•‘ํ•˜๋Š” SQL๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค. NoSQL์€ “๊ด€๊ณ„ํ˜•์ด์ง€ ์•Š์€”(์—ฌ์ง‘ํ•ฉ) DB๋ฅผ ์•„์šฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฅ˜๊ฐ€ ๋งค์šฐ ๋‹ค์–‘ํ•œ๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” ์—ฐ๊ด€๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” key-value, ๊ธฐ์กด์˜ ํ–‰ ๋Œ€์‹  ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” Column-based, Json์ด๋‚˜ XML๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ์‚ผ๋Š” Document-oriented ๋“ฑ์ด ์žˆ๋‹ค.

1.1 NoSQL ๋‚˜์˜จ ์ด์œ 

NoSQL์€ ์ ์  ๋น…๋ฐ์ดํ„ฐ์˜ ๋“ฑ์žฅ์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ์™€ ํŠธ๋ž˜ํ”ฝ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ RDBMS์— ๋‹จ์ ์ธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฅ๋น„๊ฐ€ ์ข‹์•„์•ผ ํ•˜๋Š” Scale-Up์˜ ํŠน์ง•์ด ๋น„์šฉ์„ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์€ ํฌ๊ธฐํ•˜๋˜ ๋น„์šฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ฐ์ดํ„ฐ์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” Scale-Out์„ ๋ชฉํ‘œ๋กœ ๋“ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. (ex: mongoDB, Redis ๋“ฑ)

1.2 ํŠน์ง•

  1. ๋ฐ˜์ •ํ˜•ํ™”, ๋น„์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•˜๋‹ค.
    • SQL์€ ํ…Œ์ด๋ธ”๋กœ ๋Œ€ํ‘œ๋˜๋Š” ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋น…๋ฐ์ดํ„ฐ ์‹œ๋Œ€ ์ดํ›„๋กœ๋Š” ๋‹ค์–‘ํ•œ ์ •ํ˜•ํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฟœ์–ด์ ธ๋‚˜์™”๊ณ  NoSQL์€ ์ด๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ์œ ์šฉํ•˜๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํŠธ๋ฆฌํ˜•์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์ถ”์ƒํ™”๋œ ๊ทธ๋ž˜ํ”„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  1. “ACID” ๋Œ€์‹  “Eventual Consistency”๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ NoSQL์€ ๋ถ„์‚ฐํ˜•์˜ ํŠน์„ฑ์ƒ ์ •๋ณด์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ˆ˜๋งŽ์€ ๋จธ์‹ ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ์ €์žฅํ–ˆ๋Š”๋ฐ ํ•œ ์˜์—ญ์— Update๊ฐ€ ์ƒ๊ธธ ์‹œ ๊ทธ๊ฒƒ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‹ค๋ฅธ ์˜์—ญ์— ์ „ํŒŒํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€๋งŒ์€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • ๋ฐ˜๋“œ์‹œ ์–ด๋А ์ •๋„์˜ ์ „ํŒŒ ๋น„์šฉ์€ ์ˆ˜๋ฐ˜๋  ์ˆ˜๋ฐ–์— ์—†๋‹ค. ๊ทธ๋ž˜์„œ NoSQL์€ Consistency๋ฅผ ์กฐ๊ธˆ ํƒ€ํ˜‘ํ•˜๊ณ  ๊ผญ ์‹ค์ œ ์ตœ์‹ ์€ ์•„๋‹ ์ˆ˜ ์žˆ์ง€๋งŒ “์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š”” ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ตœ์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” “Eventual Consistency”๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค.
  1. ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์— ๋” ์œ ๋ฆฌํ•˜๋‹ค.
    • ๋ถ„์‚ฐํ˜• ์ปดํ“จํŒ…์— ์œ ๋ฆฌํ•œ NoSQL์˜ ํŠน์„ฑ์ƒ ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์— ๋งค์šฐ ์šฉ์ดํ•˜๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์— ๋จธ์‹ ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  1. ํŠน์ • ๋„๋ฉ”์ธ์˜ ๋ฌธ์ œํ•ด๊ฒฐ์— ๋›ฐ์–ด๋‚˜๋‹ค.
    • SQL์€ 2์ฐจ์› ํ…Œ์ด๋ธ”์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ NoSQL์€ Key-value, Graph ๋“ฑ์˜ ์ž๋ฃŒํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์ด๋กœ ์ธํ•ด ํŠน์ • ๋„๋ฉ”์ธ์—์„œ๋Š” ๊ณ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ€๋ น ์†Œ์…œ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์—… ๋„๋ฉ”์ธ์œผ๋กœ ํ•˜๋Š” ํšŒ์‚ฌ์—์„œ ์ธ๊ฐ„ ๊ด€๊ณ„๋Š” ๋ชจ๋‘ ๊ทธ๋ž˜ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋ž˜ํ”„์— ์ตœ์ ํ™”๋œ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ๋„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  1. ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜๋Š” API๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค.
    • ๋ฐ˜๋ฉด NoSQL์€ ์œ ํ˜•๋งˆ๋‹ค, ์ œํ’ˆ๋งˆ๋‹ค ๋‹ค์–‘ํ•œ ์งˆ์˜์–ธ์–ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. NoSQL์˜ ์งˆ์˜์–ธ์–ด๋ฅผ UnQL(Unstructured Query Language)๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ ๋Œ€๋ถ€๋ถ„ SQL์— ๋น„ํ•ด ์ €์ˆ˜์ค€์œผ๋กœ, ๋ณต์žกํ•œ ์งˆ์˜๊ฐ€ ์–ด๋ ต๋‹ค. ๋ณต์žกํ•œ ์งˆ์˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋งˆ์‚ฌ์ง€ํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ์งˆ์˜๋ฅผ ์ค‘์ฒฉํ•˜๊ธฐ๋„ ํ•˜๊ณ  ๋•Œ๋กœ๋Š” SQL์˜ ์•„์ด๋””์–ด๋ฅผ ์ฐจ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
  1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค.
    • Document-oriented, Graph, Key-value ๋“ฑ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๋‹ค์–‘ํ•˜๋‹ค.

2. NoSQL์˜ ์œ ํ˜•

๋น„๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹

  • Wide Column Database ๋ฐฉ์‹(HBase, Hypertable)
  • Key-value ๋ฐฉ์‹(Riak, Redis, Voldmort)
  • Document ๋ฐฉ์‹(MongoDB, CouchDB)
  • Graph ๋ฐฉ์‹(Sones, AllegroGraph)

2.1. Column-based

์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด๋Š” ํ…Œ์ด๋ธ”, ํ–‰ ๋ฐ ๋™์  ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด๋Š” ๊ฐ ํ–‰์ด ๋™์ผํ•œ ์—ด์„ ๊ฐ€์งˆ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋›ฐ์–ด๋‚œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด๋ฅผ 2์ฐจ์›์  ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•  ๋•Œ ์ ํ•ฉํ•˜๋ฉฐ, ์ฟผ๋ฆฌ ํŒจํ„ด์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด๋Š” ๋ณดํ†ต ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท ๋ฐ์ดํ„ฐ์™€ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ œํ’ˆ์œผ๋กœ๋Š” Cassandra์™€ HBase๋Š” ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด์ž…๋‹ˆ๋‹ค.

2.2. Document-oriented

Document-oriented(์ดํ•˜ “๋ฌธ์„œ ์ง€ํ–ฅ”) ์œ ํ˜•์€ “๋ฌธ์„œ”๋ผ๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ •์˜ํ•œ๋‹ค. ๋ฌธ์„œ ์ง€ํ–ฅ ์œ ํ˜•์€ ๋ฌธ์„œ๋ฅผ ํฌ์žฅ๋˜๊ณ (encapsulated) ์ธ์ฝ”๋“œ๋œ ๋ฐ์ดํ„ฐ๋กœ ์ดํ•ดํ•œ๋‹ค.

 

์ด๋•Œ ๋ฐ์ดํ„ฐ์— ์ ์šฉ๊ฐ€๋Šฅํ•œ ์ธ์ฝ”๋”ฉ์€ XML, YAML ๋“ฑ์ด ์žˆ๋Š”๋ฐ ์š”์ฆ˜์€ JSON ์ธ์ฝ”๋”ฉ์ด ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ต์ˆ™ํ•œ JSON ๊ฐ์ฒด๋กœ ๋ฌธ์„œ(๋ ˆ์ฝ”๋“œ)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์ด๋“ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ์ž์‹ ์„ ํŠน์ •ํ•˜๋Š” unique key๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๋ฌธ์„œ ์ง€ํ–ฅ์—์„œ๋Š” ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ค€์ด ๋‹ค์–‘ํ•˜๊ธฐ์— ๋‹จ์ˆœํ•œ ํ…Œ์ด๋ธ”์„ ๋„˜์–ด์„œ ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ํšŒ์‚ฌ์˜ ์กฐ์ง๋„๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ๋ฌธ์„œ๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ ์ œํ’ˆ์œผ๋กœ๋Š” MongoDB, IBM Domino, CouchDB ๋“ฑ์ด ์žˆ๋‹ค.

2.3. Key-Value

Key-value ์œ ํ˜•์€ ์—ฐ๊ด€๋ฐฐ์—ด(Associative array)์„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฐ๊ด€๋ฐฐ์—ด์€ map, dict ๋ผ๋Š” ์ด๋ฆ„์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ฃผ์š” ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด ์šฐ๋ฆฌ์—๊ฒŒ๋„ ์นœ์ˆ™ํ•œ ๊ฐœ๋…์ด๋‹ค.

 

์ด ์œ ํ˜•์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์—ฌ๋Ÿฌ Key, value ์Œ์„ ๋ชจ์€ Collection(๋˜๋Š” ํ…Œ์ด๋ธ”)์œผ๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ ์ด๋•Œ ํ‚ค๋Š” ํ•œ collection์—์„œ ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ ์ œํ’ˆ์œผ๋กœ๋Š” Oracle NoSQL Database, Apache Ignite, Dynamo ๋“ฑ์ด ์žˆ๋‹ค.

2.4. Graph

๊ทธ๋ž˜ํ”„ ์œ ํ˜•์€ ๋…ธ๋“œ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋กœ ํ•˜๋ฉฐ ์งˆ์˜ ์–ธ์–ด๋„ ๋…ธ๋“œ(Node)์™€ ์—์ง€(Edge) ๋“ฑ ๊ทธ๋ž˜ํ”„์˜ ๊ฐœ๋…์„ ํ™œ์šฉํ•œ๋‹ค.

 

์ด ์œ ํ˜•์˜ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ์ค‘์š”์‹œํ•ด์„œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ์—์ง€๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์–ด ๋ฐ์ดํ„ฐ ์งˆ์˜ ์‹œ ํŠน์ • ๋…ธ๋“œ์™€ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์˜ ์—ฐ์‚ฐ์œผ๋กœ ํš๋“(Retrieve) ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ œํ’ˆ์œผ๋กœ๋Š” IBM DB2, Neo4j ๋“ฑ์ด ์žˆ๋‹ค.


๋ ˆํผ์–ธ์Šค(Reference)

https://www.mongodb.com/ko-kr/nosql-explained