CodeGym /Java Course /All lectures for KO purposes /์—ผ๊ธฐ ๋Œ€ ์‚ฐ

์—ผ๊ธฐ ๋Œ€ ์‚ฐ

All lectures for KO purposes
๋ ˆ๋ฒจ 1 , ๋ ˆ์Šจ 887
์‚ฌ์šฉ ๊ฐ€๋Šฅ

6.1 ์•ฝ์–ด ์ „์Ÿ: BASE ๋Œ€. ์‚ฐ

"ํ™”ํ•™์—์„œ pH๋Š” ์ˆ˜์šฉ์•ก์˜ ์ƒ๋Œ€์  ์‚ฐ๋„๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. pH ์ฒ™๋„๋Š” 0(๊ฐ•์‚ฐ์„ฑ ๋ฌผ์งˆ)์—์„œ 14(๊ฐ•์•Œ์นผ๋ฆฌ์„ฑ ๋ฌผ์งˆ)๊นŒ์ง€์ž…๋‹ˆ๋‹ค. 25ยฐC์˜ ์ˆœ์ˆ˜ํ•œ ๋ฌผ์€ pH๊ฐ€ 7์ด๋ฉฐ ์ค‘์„ฑ์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์ด ์€์œ ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค."

์•„๋งˆ๋„ ์•„์ด๋””์–ด๋Š” ์ด๊ฒƒ์ด์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. pH๊ฐ€ ๋†’์„์ˆ˜๋ก, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ "์•Œ์นด๋ผ์ธ"("BASE")์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ํŠธ๋žœ์žญ์…˜์˜ ์•ˆ์ •์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

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

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

์„ค๋งˆ. ๊ฒฐ๊ตญ, ๊ทธ๊ฒƒ๋“ค์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•„๋ฆ„๋‹ค์šด ํŒจํ‚ค์ง€๋กœ ํŒ๋งค๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ๊ทธ๋“ค ์ž์‹ ์˜ "ํ™”ํ•™"์•ฝ์–ด ์ธ BASE๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค.

6.2 ๊ธธํ•ญ์ œ๋กœ์„œ์˜ BASE

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

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

๋งŽ์€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ฒฉ๋ฆฌ ๋ณด์žฅ์„ ํฌ๊ธฐํ•˜๊ณ  "์ตœ์ข… ์ผ๊ด€์„ฑ"์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๊ฒฐ๊ตญ ์œ ํšจํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ํŠธ๋žœ์žญ์…˜์ด ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’(์ฆ‰, ์ผ์‹œ์ ์ด๊ฑฐ๋‚˜ ๋ถ€๋ถ„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ฑฐ๋‚˜ ์˜ค๋ž˜๋œ ๊ฐ’)์„ ์ฝ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ "์ง€์—ฐ" ๋ชจ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค("์ฝ๊ธฐ ์‹œ๊ฐ„์— ์ง€์—ฐ").

NoSQL์€ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ธ์‹๋˜์—ˆ์œผ๋ฉฐ ๋” ๋น ๋ฅธ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ผ๊ด€์„ฑ์„ ํฌ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  BASE๋ผ๋Š” ์šฉ์–ด๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ์ธ Eric Brewer๋Š” ์†Œ์œ„ "CAP ์ •๋ฆฌ"๋ฅผ ๊ณต์‹ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์ปดํ“จํŒ… ๊ตฌํ˜„์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์†์„ฑ ์ค‘ ๋‘ ๊ฐœ๋งŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

CAP์— ๋Œ€ํ•œ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์›ํ•˜์‹œ๋ฉด ์—ฌ๊ธฐ๋กœ ๊ฐ€์‹ญ์‹œ์˜ค.

CAP ์ •๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋„ˆ๋ฌด ์ถ”์ƒ์ ์œผ๋กœ ๊ณต์‹ํ™”๋œ๋‹ค๋Š” ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‹์œผ๋กœ๋“  NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์„ ์„ค๋ช…ํ•˜๋Š” CAP ์ •๋ฆฌ์˜ ๋งฅ๋ฝ์—์„œ ์ผ๊ด€์„ฑ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„์ง ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ„์˜ DynamoDB ์˜ˆ๋ฅผ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ง€์† ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ HTTP 200์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 10์ดˆ ํ›„์—๋งŒ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ผ์ƒ ์ƒํ™œ์—์„œ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์ธ DNS์ž…๋‹ˆ๋‹ค. ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์ด๊ฒƒ์€ http ์ฃผ์†Œ๋ฅผ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” "์‚ฌ์ „"์ž…๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋œ DNS ๋ ˆ์ฝ”๋“œ๋Š” ์บ์‹ฑ ๊ฐ„๊ฒฉ ์„ค์ •์— ๋”ฐ๋ผ ์„œ๋ฒ„์— ์ „ํŒŒ๋˜๋ฏ€๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ฆ‰์‹œ ๋ˆˆ์— ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Œ, ๋น„์Šทํ•œ ์‹œ๊ฐ„์  ๋ถˆ์ผ์น˜(์ฆ‰, ๊ฒฐ๊ตญ ์ผ๊ด€์„ฑ)๊ฐ€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋Ÿฌ์Šคํ„ฐ(์˜ˆ: MySQL)์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ด ์ผ๊ด€์„ฑ์€ ACID์˜ ์ผ๊ด€์„ฑ๊ณผ ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์˜๋ฏธ์—์„œ SQL ๋ฐ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์™€ ๊ด€๋ จํ•˜์—ฌ ํฌ๊ฒŒ ๋‹ค๋ฅผ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ end-to-end ์ผ๊ด€์„ฑ์€ ์“ฐ๊ธฐ ์š”์ฒญ์ด ์ˆœ์„œ์— ๋งž์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜์ง€๋งŒ ๊ฒฐ๊ตญ ์ˆ˜์‹ ๋  ๊ฐ’์€ ์“ฐ๊ธฐ ๋Œ€๊ธฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. .

Non-ACID NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—”๋“œํˆฌ์—”๋“œ ์ผ๊ด€์„ฑ ๋ชจ๋ธ๋กœ ์ธํ•ด ์ด๋ฅธ๋ฐ” "์†Œํ”„ํŠธ ์ƒํƒœ"๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ž…๋ ฅ ์—†์ด๋„ ์‹œ์Šคํ…œ ์ƒํƒœ๊ฐ€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿฌํ•œ ์‹œ์Šคํ…œ์€ ๋” ํฐ ์ ‘๊ทผ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. 100% ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ž‘์—…์ด ์•„๋‹ˆ๋ฏ€๋กœ "๊ธฐ๋ณธ ๊ฐ€์šฉ์„ฑ"์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์ธ "๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ", "์†Œํ”„ํŠธ ์ƒํƒœ"("์†Œํ”„ํŠธ ์ƒํƒœ") ๋ฐ "์ตœ์ข… ์ผ๊ด€์„ฑ"์ด ์•ฝ์–ด BASE๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

6.3 ๊ทธ๋ ‡๋‹ค๋ฉด BASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ACID ๊ธฐ์ค€์„ ์ „ํ˜€ ์ถฉ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์„ฑ์ž๊ฐ€ ACID ๋ณด์ฆ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ๊ฒฝ์šฐ ์ด์— ๋Œ€ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ธ์ง€, ์–ด๋Š ์ •๋„์ธ์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ทธ๋Ÿฌํ•œ ๋ณด์ฆ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • DB๋Š” ์›์ž์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์›์ž์  ์ž‘์—…์„ ์œ„ํ•œ ๋ณ„๋„์˜ API๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ(์˜ˆ: DynamoDB);

  • DB๋Š” ๊ฒฉ๋ฆฌ ๋ณด์žฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

6.4 ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฑ์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๊ฒƒ์ด ๋‚ด๊ตฌ์„ฑ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ ๋“ฑ

๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์—๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋‹น์‹ ์€ ์•„๋งˆ๋„ ๊ถ๊ธˆํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•ญ์ƒ ์ €๋„์— ์ž‘์—…์„ ๊ธฐ๋กํ•˜๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์งˆ๊นŒ์š”? ์˜ˆ, ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ์ฃผ๊ธฐ์„ฑ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ "์ •๋ฆฌ"ํ•˜๋Š” ์••์ถ• ๊ธฐ์ˆ ์ด ๋ฐœ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ ํ‚ค์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ์ด ๋†’์€ ๊ฐ’๋งŒ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋””์Šคํฌ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋กœ๊ทธ๊ฐ€ ์žˆ๊ณ  ๋ชจ๋‘ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ SSTable("์ •๋ ฌ๋œ ๋ฌธ์ž์—ด ํ…Œ์ด๋ธ”")์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์–ป๊ฒŒ ๋˜๋ฉฐ ์ด๋Š” ์˜์‹ฌํ•  ์—ฌ์ง€์—†์ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ ฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์†Œ์œ„ MemTable์ด๋ผ๋Š” ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ์–ป๊ฒŒ ๋˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์น˜๋ช…์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ธฐ๋ก๋œ ๋ฐ์ดํ„ฐ(MemTable์— ์žˆ์ง€๋งŒ ์•„์ง ๊ธฐ๋ก๋˜์ง€ ์•Š์Œ)์ž…๋‹ˆ๋‹ค. ๋””์Šคํฌ)๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ,

์ธ๋ฑ์‹ฑ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ B-ํŠธ๋ฆฌ("B-ํŠธ๋ฆฌ")๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. B-ํŠธ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ๊ณ ์ • ํฌ๊ธฐ ํŽ˜์ด์ง€๋กœ ๋””์Šคํฌ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์€ ํฌ๊ธฐ๊ฐ€ ์•ฝ 4KB์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ํ‚ค๋ณ„๋กœ ์ •๋ ฌ๋œ ํ‚ค-๊ฐ’ ์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ B-ํŠธ๋ฆฌ ๋…ธ๋“œ๋Š” ํŽ˜์ด์ง€ ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ ๋ฐฐ์—ด์˜ ๋งํฌ ์ˆ˜๋ฅผ ๋ถ„๊ธฐ ์š”์ธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํŽ˜์ด์ง€ ๋ฒ”์œ„๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€ ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ B-ํŠธ๋ฆฌ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์‹œํŠธ ์ˆ˜์ค€์—์„œ ๊ฐœ๋ณ„ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„์ด๋””์–ด๋Š” ์ด๋Ÿฌํ•œ ํŽ˜์ด์ง€ ์ฐธ์กฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๋””์Šคํฌ์— ์ €์žฅ๋œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด ์ €์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํฌ์ธํ„ฐ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ INSERT ๋ฐ DELETE๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ผ๋ถ€ ๋…ธ๋“œ๊ฐ€ ๋ถ„๊ธฐ ์š”์†Œ์™€ ์ผ์น˜ํ•˜๋„๋ก ๋‘ ๊ฐœ์˜ ํ•˜์œ„ ํŠธ๋ฆฌ๋กœ ๋ถ„ํ• ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ค‘๊ฐ„์— ์–ด๋–ค ์ด์œ ๋กœ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด B-ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ชจ๋“  ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์ด ๊ธฐ๋ก๋˜๋Š” "๋ฏธ๋ฆฌ ์“ฐ๊ธฐ ๋กœ๊ทธ" ๋˜๋Š” WAL์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด WAL์€ ์†์ƒ๋œ ๊ฒฝ์šฐ B-ํŠธ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ๋ณต์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋‚ด๊ตฌ์„ฑ ์ธก๋ฉด์—์„œ B-ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋” ์ข‹๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ LSM ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ WAL๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒŒ์ผ์„ ์œ ์ง€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฏธ ๋งํ•œ ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿฌ๋‚˜ B-ํŠธ๋ฆฌ์— ๋Œ€ํ•ด ํ™•์‹คํ•œ ์ ์€ ํŠธ๋žœ์žญ์…˜์— ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ‚ค๋Š” ์ธ๋ฑ์Šค์˜ ํ•œ ์œ„์น˜์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ˜๋ฉด ์ €๋„ ์Šคํ† ๋ฆฌ์ง€ ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ์— ๋™์ผํ•œ ํ‚ค์˜ ์—ฌ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋‹ค์Œ ์••์ถ•์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋‚˜ ์ธ๋ฑ์Šค์˜ ๋””์ž์ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. LSM ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋””์Šคํฌ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๊ฐ€ ์ˆœ์ฐจ์ ์ด๋ฉฐ B-ํŠธ๋ฆฌ๋Š” ๋‹ค์ค‘ ์ž„์˜ ๋””์Šคํฌ ์•ก์„ธ์Šค๋ฅผ ์œ ๋ฐœํ•˜๋ฏ€๋กœ B-ํŠธ๋ฆฌ๋ณด๋‹ค LSM์—์„œ ์“ฐ๊ธฐ ์ž‘์—…์ด ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ด ์ฐจ์ด๋Š” ์ˆœ์ฐจ ์“ฐ๊ธฐ๊ฐ€ ์ž„์˜ ์“ฐ๊ธฐ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅธ ์ž๊ธฐ ํ•˜๋“œ ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ(HDD)์—์„œ ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์••์ถ• ๋‹จ๊ณ„์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ SS ํ…Œ์ด๋ธ”์„ ์‚ดํŽด๋ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— LSM ํŠธ๋ฆฌ์—์„œ๋Š” ์ฝ๊ธฐ ์†๋„๊ฐ€ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ์ž์„ธํžˆ ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. LSM์œผ๋กœ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ฉด ๋จผ์ € MemTable์—์„œ ํ‚ค๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์—†์œผ๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์˜ SSTable์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์—†์œผ๋ฉด ๋งˆ์ง€๋ง‰์—์„œ ๋‘ ๋ฒˆ์งธ SSTable ๋“ฑ์„ ๋ด…๋‹ˆ๋‹ค. ์š”์ฒญ๋œ ํ‚ค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด LSM์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LSM ํŠธ๋ฆฌ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด LevelDB, RocksDB, Cassandra ๋ฐ HBase์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

๋‚ด๊ตฌ์„ฑ ์ธก๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉด ๊ฒฐ๋ก ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ธ๋ฑ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๊ด€๊ณ„์—†์ด ๋””์Šคํฌ์— ์“ฐ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‚ด๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์ข‹์€ ๋ณด์žฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ๊ฐ์˜ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. , ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

6.5 ์ธ๋ฉ”๋ชจ๋ฆฌ DB ์ž‘๋™ ๋ฐฉ์‹

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

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

  • ๋ฐฐํ„ฐ๋ฆฌ๋กœ ๊ตฌ๋™๋˜๋Š” RAM์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ WAL๊ณผ ๊ฐ™์€ ๊ฒƒ) ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” ๊ธฐ๋กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋””์Šคํฌ์— ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณด์ฆ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚ด๊ตฌ์„ฑ๋งŒ ํ–ฅ์ƒ๋จ).
  • RAM์˜ ์ƒํƒœ๋ฅผ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ๋กœ ๋ฉ”์‹œ์ง€ ํ ๋˜๋Š” ์บ์‹œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ Redis ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ACID์˜ ๋‚ด๊ตฌ์„ฑ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์ง€์†์„ฑ ํ™œ์„ฑํ™”) ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋น„๋™๊ธฐ์‹์œผ๋กœ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 1-2์ดˆ๋งˆ๋‹ค ํ”Œ๋Ÿฌ์‹œ๋˜๋Š” EtherPad ํ˜‘๋ ฅ ์˜จ๋ผ์ธ ํŽธ์ง‘๊ธฐ์˜ ์˜ˆ๋ฅผ ์ฐพ์•˜์œผ๋ฉฐ ์ž ์žฌ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ๊ฑฐ์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋‘ ๊ธ€์ž ๋˜๋Š” ๋‹จ์–ด๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋””์Šคํฌ ์ธ๋ฑ์Šค๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ์ข‹๊ธฐ ๋•Œ๋ฌธ์— Redis๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„ ํ๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION