Skip to content

Latest commit

ย 

History

History
19 lines (10 loc) ยท 2.66 KB

cap_theory.md

File metadata and controls

19 lines (10 loc) ยท 2.66 KB

CAP ์ด๋ก  | ์ผ๊ด€์„ฑ | ๊ฐ€์šฉ์„ฑ | ๋„คํŠธ์›Œํฌ ๋ถ„ํ•  ํ—ˆ์šฉ์„ฑ

๐Ÿ“Œ CAP ์ด๋ก 

1. ์ผ๊ด€์„ฑ(Consistency)

์ผ๊ด€์„ฑ์€ ๋™์‹œ์„ฑ ๋˜๋Š” ๋™์ผ์„ฑ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ๋‹ค์ค‘ ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ™์€ ์‹œ๊ฐ„์— ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์ž„์„ ๋ณด์ฆํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๊ฒƒ์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ์ผ๊ด€์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” NoSQL ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ๋Š์Šจํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋Š์Šจํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ์ „ํŒŒํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ตœ์ข…์ ์œผ๋กœ ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋œ๋‹ค๊ณ  ํ•˜์—ฌ ์ตœ์ข… ์ผ๊ด€์„ฑ ๋˜๋Š” ๊ถ๊ทน์  ์ผ๊ด€์„ฑ์„ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

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

2. ๊ฐ€์šฉ์„ฑ(Availability)

๊ฐ€์šฉ์„ฑ์ด๋ž€ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ์š”์ฒญ์— ๋Œ€ํ•˜์—ฌ ํ•ญ์ƒ ์‘๋‹ต์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ์„ ๋ณด์ฆํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ๋‚ด๊ณ ์žฅ์„ฑ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๋‚ด๊ณ ์žฅ์„ฑ์„ ๊ฐ€์ง„ NoSQL ์€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๋ช‡ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ๋ง๊ฐ€์ง€๋”๋ผ๋„ ์ •์ƒ์ ์ธ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ช‡๋ช‡ NoSQL ์€ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๋ณต์ œ(Replication)์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์ค‘ ๋…ธ๋“œ์— ์ค‘๋ณต ์ €์žฅํ•˜์—ฌ ๊ทธ ์ค‘ ๋ช‡ ๋Œ€์˜ ๋…ธ๋“œ๊ฐ€ ๊ณ ์žฅ๋‚˜๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ €์žฅ ๋ฐฉ๋ฒ•์—๋Š” ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ์ €์žฅ์†Œ๋ฅผ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•˜๋Š” Master-Slave ๋ณต์ œ ๋ฐฉ๋ฒ•๊ณผ ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋กœ ์ค‘๋ณต ์ €์žฅํ•˜๋Š” Peer-to-Peer ๋ณต์ œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

3. ๋„คํŠธ์›Œํฌ ๋ถ„ํ•  ํ—ˆ์šฉ์„ฑ(Partition tolerance)

๋ถ„ํ•  ํ—ˆ์šฉ์„ฑ์ด๋ž€ ์ง€์—ญ์ ์œผ๋กœ ๋ถ„ํ• ๋œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ๋‘ ์ง€์—ญ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹จ์ ˆ๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ์˜ ์œ ์‹ค์ด ์ผ์–ด๋‚˜๋”๋ผ๋„ ๊ฐ ์ง€์—ญ ๋‚ด์˜ ์‹œ์Šคํ…œ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.