๋ชจ๋ฐ”์ผ App์„ ์šด์˜ํ•˜๋Š” ์šฐ๋ฆฌ ํšŒ์‚ฌ ํŠน์„ฑ์ƒ ์ •๊ธฐ์ ์œผ๋กœ ์„œ๋น„์Šค ์ง€ํ‘œ๋ฅผ ์ถ”์ถœํ•  ์ผ์ด ๋งŽ๋‹ค. ํ•„์š”ํ•œ ์ง€ํ‘œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ฐœ๋ฐœํŒ€์— ๋ฐ์ดํ„ฐ์…‹์„ ์š”์ฒญํ•˜๊ณ , ์ดํ›„ ๊ฐœ๋ฐœํŒ€์ด ์ถ”์ถœํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ํ”„๋กœ์„ธ์Šค์ธ๋ฐ ์ด๊ฒŒ ์—ฌ๊ฐ„ ๋ฒˆ๊ฑฐ๋กœ์šด ๊ฒŒ ์•„๋‹ˆ๋‹ค. 

 

ํ•„์š”ํ•œ ์กฐ๊ฑด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ์ผ๋„ ๊ท€์ฐฎ์ง€๋งŒ, ๊ฐœ๋ฐœํŒ€ ์ผ์ •์„ ๋งˆ๋ƒฅ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ๋„ ์‰ฝ์ง€ ์•Š๋‹ค. ๋ฌผ๋ก  ๊ฐœ๋ฐœํŒ€์˜ ์ž˜๋ชป์€ ์ ˆ๋Œ€ ์•„๋‹ˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜๋Š” ๋‚˜์˜ ๋ฌด์ง€ํ•จ ๋•Œ๋ฌธ์ด๋‹ค.

 

์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ๋ชฝ๊ณ DB๋ผ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๊ฑด NoSQL์˜ ์ผ์ข…์ด๋‹ค. ์˜ˆ์ „์— ์กฐ๊ธˆ ๊ณต๋ถ€ํ–ˆ๋˜ SQL๊ณผ๋Š” ์™„์ „ ๋”ดํŒ์œผ๋กœ ์ƒ๊ธด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ผ์„œ, ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„  ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ƒํ™ฉ์ด๋‹ค.

 


๊ทธ๋ž˜์„œ NoSQL์ด ๋ญ์•ผ?

 

NoSQL์€ Non SQL์„ ์˜๋ฏธํ•˜๊ฑฐ๋‚˜, Not only SQL์„ ์˜๋ฏธํ•œ๋‹ค. ์ „ํ†ต์ ์ธ ํ–‰-์—ด ๊ตฌ์กฐ์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹Œ, ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ณ  ์œตํ†ต์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๊พธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. 

 

NoSQL์€ 2000๋…„๋Œ€ ํ›„๋ฐ˜, ์ธํ„ฐ๋„ท์ด ํ™œ์„ฑํ™”๋˜๊ณ  SNS ์„œ๋น„์Šค ๋“ฑ์ด ๋ฐœ์ „ํ•˜๋ฉด์„œ ๊ฐ๊ด‘๋ฐ›๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ, ๋™์˜์ƒ ํŒŒ์ผ, ์˜ค๋””์˜ค ํŒŒ์ผ, ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

NoSQL์€ ๊ธฐ์กด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฐจ์ด์ ์„ ๊ฐ€์ง„๋‹ค.

- ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ…Œ์ด๋ธ”๊ฐ„์˜ ์กฐ์ธ ๊ธฐ๋Šฅ ์—†์Œ
- ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋“ฑ์˜ ๋น„SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค
- ๋Œ€๋ถ€๋ถ„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ๋ฌถ์–ด์„œ(ํด๋Ÿฌ์Šคํ„ฐ๋ง) ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑ
- ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ง€์›ํ•˜๋Š” Data์ฒ˜๋ฆฌ ์™„๊ฒฐ์„ฑ(Transaction ACID ์ง€์›) ๋ฏธ๋ณด์žฅ
- ๋ฐ์ดํ„ฐ์˜ ์Šคํ‚ค๋งˆ์™€ ์†์„ฑ๋“ค์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ˆ˜์šฉ ๋ฐ ๋™์  ์ •์˜ (Schema-less)
- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ค‘๋‹จ ์—†๋Š” ์„œ๋น„์Šค์™€ ์ž๋™ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์ง€์›
- ๋‹ค์ˆ˜๊ฐ€ Open Source๋กœ ์ œ๊ณต
- ํ™•์žฅ์„ฑ, ๊ฐ€์šฉ์„ฑ, ๋†’์€ ์„ฑ๋Šฅ

์ถœ์ฒ˜: ์‚ผ์„ฑSDS ๋ธ”๋กœ๊ทธ(https://www.samsungsds.com/kr/insights/1232564_4627.html)

NoSQL์€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ถœ์ฒ˜: https://docs.microsoft.com/ko-kr/dotnet/architecture/cloud-native/relational-vs-nosql-data

 

1. Document Database: ๋ชฝ๊ณ DB, ์นด์šฐ์น˜๋ฒ ์ด์Šค

2. Wide Column Database: H๋ฒ ์ด์Šค, ์•„ํ๋ฌผ๋กœ

3. Key Value Database: ๋‹ค์ด๋‚˜๋ชจ, ๋ฆฌ์•…, ๋ณผ๋“œ๋ชจํŠธ

4. Graph Database: Neo4J, AgensGraph, ์•Œ๋ ˆ๊ทธ๋กœ๊ทธ๋ž˜ํ”„, ๋ฒ„ํˆฌ์˜ค์†Œ

 

์ด ์ค‘์—์„œ Document Database๋Š” Key์™€ Value ํ•œ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์„œ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. ๊ฐ ๋ฌธ์„œ์—๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž(Key)๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๋ฌธ์„œ ์ž์ฒด๊ฐ€ ๊ฐ’(Value)์˜ ์—ญํ• ์„ ํ•œ๋‹ค. Document ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๊ฐ€ ์ž์œ ๋กœ์›Œ ํŠน์ • ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ Document๋กœ ์ƒ์„ธํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์ƒ์„ธํ™”๋ฅผ ์œ„ํ•ด, Document ์•ˆ์— ๋˜ ๋‹ค๋ฅธ Document๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

'๐Ÿงช์‹คํ—˜์‹ค > NoSQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

1. Document, Field, Value, Collection  (0) 2022.02.08

+ Recent posts