--- id: "NoSQL 20260420" created: "2026-04-20 10:07" tags: aliases: --- ## ๐Ÿ’ก ์ƒ๊ฐ ๊ฒฐ๊ตญ NoSQL์€ ๋น ๋ฅธ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค. --- ## ๐Ÿ“‘ ๊ฐœ๋… 'Not Only SQL'์˜ ์•ฝ์ž๋กœ, ์ „ํ†ต์ ์ธ [[๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)์˜ ํ•œ๊ณ„]]๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ **๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค**๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ‘œ(Table) ํ˜•ํƒœ์˜ ์—„๊ฒฉํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ์œ ์—ฐํ•˜๊ฒŒ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ž…๋‹ˆ๋‹ค. ## NoSQL์˜ ํŠน์ง• - **์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆ (Schema-less):** ๊ณ ์ •๋œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํ•„๋“œ๋ฅผ ์–ธ์ œ๋“ ์ง€ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด, ํ˜•ํƒœ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋‚˜ SNS ํฌ์ŠคํŠธ ๋“ฑ์„ ์ €์žฅํ•˜๊ธฐ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. - **์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ (Scalability):** RDBMS๊ฐ€ ์ฃผ๋กœ ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋†’์ด๋Š” ์ˆ˜์ง ํ™•์žฅ(Scale-up)์— ์ง‘์ค‘ํ•œ๋‹ค๋ฉด, NoSQL์€ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ €๋ ดํ•œ ์„œ๋ฒ„๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ฌถ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” **์ˆ˜ํ‰ ํ™•์žฅ(Scale-out)** ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. - **๊ณ ์„ฑ๋Šฅ:** ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์ด ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ JOIN ์—ฐ์‚ฐ์„ ์ง€์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. --- ## NoSQL์˜ 4๊ฐ€์ง€ ์ฃผ์š” ์œ ํ˜• | **์œ ํ˜•** | **ํŠน์ง•** | **๋Œ€ํ‘œ์ ์ธ DB** | | ----------------- | --------------------------- | ---------------------- | | **Key-Value** | ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํ˜•ํƒœ. ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ €์žฅ | Redis, Amazon DynamoDB | | **Document** | JSON์ด๋‚˜ XML ๊ฐ™์€ ๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ์ €์žฅ | **MongoDB**, CouchDB | | **Column-family** | ํ–‰์ด ์•„๋‹Œ ์—ด(Column) ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ | Cassandra, HBase | | **Graph** | ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋…ธ๋“œ์™€ ๊ฐ„์„ ์œผ๋กœ ํ‘œํ˜„ | Neo4j | ## NoSQL์˜ ํŠธ๋žœ์žญ์…˜ (BASE) RDBMS์˜ [[ACID]]์™€ ๋Œ€์กฐ์ ์œผ๋กœ, NoSQL์€ ๋ณดํ†ต **BASE** ์›์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. - **Basically Available (๊ธฐ๋ณธ์  ๊ฐ€์šฉ์„ฑ):** ์–ธ์ œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ. - **Soft State (์†Œํ”„ํŠธ ์ƒํƒœ):** ์™ธ๋ถ€์˜ ๊ฐœ์ž… ์—†์–ด๋„ ์ •๋ณด๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ (์ผ์‹œ์  ๋ถˆ์ผ์น˜ ํ—ˆ์šฉ). - **Eventually Consistent (๊ฒฐ๊ณผ์  ์ผ๊ด€์„ฑ):** ์ผ์‹œ์ ์œผ๋กœ ์ •ํ•ฉ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ฒฐ๊ตญ ๋ชจ๋“  ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์น˜ํ•˜๊ฒŒ ๋จ. ## ๋ฐ์ดํ„ฐ ์ค‘๋ณต(Data Redundancy) NoSQL์—์„œ **๋ฐ์ดํ„ฐ ์ค‘๋ณต(Data Redundancy)** ์€ ์‹ค์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ **์„ฑ๋Šฅ์„ ์œ„ํ•ด ์˜๋„์ ์œผ๋กœ ์„ ํƒํ•˜๋Š” ํ•ต์‹ฌ ์ „๋žต**์ž…๋‹ˆ๋‹ค. RDBMS์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ฃ„์•…์‹œํ•˜๋ฉฐ ์ •๊ทœํ™”(Normalization)๋ฅผ ํ†ตํ•ด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์ง€๋งŒ, NoSQL์€ ๊ทธ ๋ฐ˜๋Œ€์ธ **๋น„์ •๊ทœํ™”(Denormalization)** ๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.