https://www.ibm.com/developerworks/cloud/library/cl-manage-cloud-transactions_2/index.html

ํด๋ผ์šฐ๋“œ์—์„œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, 2๋ถ€

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์—†์ด ์‚ฌ์šฉํ•˜๊ธฐ

ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŠธ๋žœ์žญ์…˜ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

ย  ย  ย Andre Fachatย  ย 2017๋…„ 5์›” 2์ผ ์ž‘์„ฑ

์‹œ๋ฆฌ์ฆˆ ์†Œ๊ฐœ:

์ด ๊ธ€์€ 2ํŽธ์œผ๋กœ ๊ตฌ์„ฑ๋œํด๋ผ์šฐ๋“œ์—์„œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ’ ์‹œ๋ฆฌ์ฆˆ์˜ 2๋ถ€์ž…๋‹ˆ๋‹ค.

1๋ถ€: ํŠธ๋žœ์žญ์…˜์˜ ๊ธฐ์ดˆ ๋ฐ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜

2๋ถ€: ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์—†์ด ์‚ฌ์šฉํ•˜๊ธฐ

 

์ด ์‹œ๋ฆฌ์ฆˆ์˜ 1๋ถ€์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๋ฐ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์†์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ž‘์—…์˜ ๋ถ€๋‹ด์„ ๋œ ์ˆ˜ ์žˆ์œผ๋‚˜ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋Ÿฐํƒ€์ž„์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌ๊ด„ํ•˜๋ฉด์„œ ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 2๋ถ€์—์„œ๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์ด ์—†๋”๋ผ๋„ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด์„œ ํŠธ๋žœ์žญ์…˜ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ผ๋ถ€ SOA(service-oriented architecture) ํ™˜๊ฒฝ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž ํ˜ธ์ถœ์— ์“ฐ์ด๋Š” ํ”„๋กœํ† ์ฝœ์ด REST over HTTP ํ˜ธ์ถœ๊ณผ ๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ ํ˜ธ์ถœ์€ 1๋ถ€์—์„œ ์„ค๋ช…ํ•œ ์ž๋™ ์ปค๋ฐ‹๋œ ์ž‘์—…๊ณผ ๊ฐ™์•„์ง‘๋‹ˆ๋‹ค.

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

๊ฐ€๋ณ€์ ์ธ ์ž‘์—…์— ๋Œ€ํ•œ ๋ณด์ƒ์„ ์œ„ํ•ด ์˜๊ตฌ์ ์ธ ๊ณต์œ  ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋ฅผ ๋ณ„๋„์˜ ์Šคํ† ๋ฆฌ์ง€ ์ธํ”„๋ผ์— ๋‘๋ฉด์„œ ํด๋ผ์šฐ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋„๋ฆฌ ์“ฐ์ด๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ์ค‘ ๋‹ค์ˆ˜๋Š” ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜ ์‚ฌ์šฉ๋ฒ•์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฆ‰, ํด๋ผ์šฐ๋“œ ์„ค์ •์—์„œ๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ๋‹ค์Œ ์„น์…˜๋ถ€ํ„ฐ๋Š” ๋น„ ํŠธ๋žœ์žญ์…˜ ์„ค์ •์—์„œ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

 

ํด๋ผ์šฐ๋“œ์—์„œ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•

ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์˜ ๊ธฐ๋ณธ ์ „์ œ๋Š” ๋ณต์ˆ˜์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒํ˜ธ ์ผ๊ด€๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์ผ๋งฅ์ƒํ†ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์ด ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํŒจํ„ด์„ ๋ณต์ˆ˜์˜ ๋ฆฌ์†Œ์Šค์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌ์†Œ์Šค ์ค‘ ํ•˜๋‚˜์—์„œ๋งŒ ๋ณ€๊ฒฝ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์  ๊ด€์ ์—์„œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ์šฉ์ธ๋œ๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜์„ ์ž๋™ ์ปค๋ฐ‹ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค์˜ ์˜ค๋ฅ˜ ์ƒํ™ฉ์€ ๋กœ๊น…ํ•œ ๋‹ค์Œ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ์„ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์˜ ํŠธ๋žœ์žญ์…˜์ด ์—ด๋ ค ์žˆ์–ด์•ผ ๋กค๋ฐฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์–‘์ชฝ ๋ฆฌ์†Œ์Šค์˜ ํŠธ๋žœ์žญ์…˜์ด ์—ด๋ ค ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‘ ํŠธ๋žœ์žญ์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฒ˜์Œ ์ปค๋ฐ‹ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋กค๋ฐฑ๋œ ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ์ด ์™ธ๋ถ€์— ๋ณด์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ๋กค๋ฐฑํ•˜๋”๋ผ๋„ ๋ถˆ์ผ์น˜ ์œˆ๋„์šฐ(window of inconsistency)๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ  ๊ทธ ์ดํ›„ ์–ด๋Š ์‹œ์ ์— ๋‘ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์™€ ์ผ๊ด€๋œ ์ƒํƒœ๊ฐ€ ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์ฒ˜๋Ÿผ ๋‘ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด์€ (๋” ํฐ) ๋ถˆ์ผ์น˜ ์œˆ๋„์šฐ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€๋งŒ, ์ตœ์ข…์ ์œผ๋กœ๋Š” ์ผ๊ด€์„ฑ์— ์ด๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํŒจํ„ด์„ ์ตœ์ข… ์ผ๊ด€์„ฑ(eventual consistency)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋‘ ๋ฒˆ์งธ ๋ณ€๊ฒฝ์ด ์ปค๋ฐ‹๋˜๋ฏ€๋กœ ๋กค ํฌ์›Œ๋“œ ๋ถˆ์ผ์น˜(roll-forward inconsistency)๋ผ๊ณ  ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ์ด ๋ณด์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ„๋„์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝ์„ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋„ ์ตœ์ข… ์ผ๊ด€์„ฑ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, ์˜ค๋ฅ˜ ํŒจํ„ด์€ ์œ„์˜ ๋กค ํฌ์›Œ๋“œ ๋ถˆ์ผ์น˜์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ณ€๊ฒฝ์ด ๋กค๋ฐฑ๋˜๋ฏ€๋กœ ๋กค๋ฐฑ ๋ถˆ์ผ์น˜(roll-back inconsistency)๋ผ๊ณ  ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์‹œ์Šคํ…œ์ด ์ฆ‰๊ฐ์ ์œผ๋กœ ์ผ๊ด€์„ฑ์„ ๋ ์ง€๋Š” ์•Š์ง€๋งŒ, ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๋ฉด ๊ณง ์ผ๊ด€์„ฑ์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ์ตœ์ข… ์ผ๊ด€์„ฑ ์†์„ฑ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

 

์™„ํ™” ๊ธฐ๋ฒ•

์˜ค๋ฅ˜๊ฐ€ ๋“œ๋ฌผ๊ฒŒ ์ผ์–ด๋‚˜๊ฑฐ๋‚˜ ์•„์˜ˆ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ์˜ค๋ฅ˜ ์กฐ๊ฑด์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ์š”?

๋ฌด์‹œ – ๋‚˜์ค‘์— ์ˆ˜์ •

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

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

๊ทธ๋ฆผ 1์€ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ตœ์ข… ์ผ๊ด€์„ฑ ๋ฐฐ์น˜์˜ ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 1. ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฐ์น˜ ์ž‘์—…

์ „์ฒด ํฌ๊ธฐ ์ด๋ฏธ์ง€ ๋ณด๊ธฐ

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

์‹œ๊ฐ„ ๊ธฐ์ค€ ๋น„๊ด€์  ์ž ๊ธˆ

๋น„๊ด€์  ์ž ๊ธˆ(pessimistic locking)์€ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋น„๊ด€์  ์ž ๊ธˆ์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ–‰๊ณผ ๊ฐ™์€) ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๋ฉฐ, ๋•Œ๋•Œ๋กœ ๋‹จ๊ธฐ ํŠธ๋žœ์žญ์…˜์—์„œ๋„ ์ด ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ž ๊ธˆ ํ•ด์ œ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ ์‹œ๊ฐ„ ๊ธฐ์ค€ ๋น„๊ด€์  ์ž ๊ธˆ(time-based pessimistic locking)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ์–ด์ง„ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์ด ์ง€๋‚˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด์ œ๋˜๋Š” ์ž ๊ธˆ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์€ ๋ฆฌ์†Œ์Šค์˜ ๊ฐ„๋‹จํ•œ ํƒ€์ž„์Šคํƒฌํ”„๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐฐ์น˜ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ์€ ํŠธ๋žœ์žญ์…˜ ํด๋ผ์ด์–ธํŠธ์™€ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž ์‚ฌ์ด์— ์ผ์ข…์˜ ๊ณต์œ  ์ƒํƒœ๋ฅผ ํ˜•์„ฑํ•˜์—ฌ ์ž ๊ธˆ์„ ์‹๋ณ„ํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜๊ณผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปค๋ฐ‹ ๋˜๋Š” ๋กค๋ฐฑ ์‹œ์ ์— ์ž ๊ธˆ์„ ํ™•์ธํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ ๊ฐ„์— ์ž ๊ธˆ ์‹๋ณ„์ž ๋˜๋Š” ํŠธ๋žœ์žญ์…˜ ์‹๋ณ„์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์ƒ

๊ธ์ •์  ์ž ๊ธˆ(optimistic locking)์€ ๋น„๊ด€์  ์ž ๊ธˆ๊ณผ ๋‹ฌ๋ฆฌ ์˜ค๋ฅ˜ ๋ฐฉ์ง€ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ฉฐ, ๋ถˆ์ผ์น˜๋ฅผ ํƒ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค. ๊ธ์ •์  ์ž ๊ธˆ์€ ํŠธ๋žœ์žญ์…˜์„ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ์˜ˆ์•ฝํ•˜์ง€๋งŒ, ๋” ๊ธ์ •์ ์ธ ๋ฐฉ์‹์€ ๋ถˆ์ผ์น˜๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ฒซ ๋‹จ๊ณ„์—์„œ ๊ณง๋ฐ”๋กœ ํŠธ๋žœ์žญ์…˜์„ ์œ„ํ•œ ๋กœ์ปฌ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ณ€๊ฒฝ์„ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ์ž‘์—…์˜ ๋ณด์ƒ(compensation)์ž…๋‹ˆ๋‹ค.

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

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

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

๋ฐ˜๋ณต ๊ฐ€๋Šฅ์„ฑ(idempotence)

์žฅ๋ฐ”๊ตฌ๋‹ˆ์™€ ์ฃผ๋ฌธ ์„œ๋น„์Šค์˜ ์˜ˆ์ œ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์„œ๋น„์Šค๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ๋Š”๋ฐ ํšŒ์‹ ์ด ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœ์ž๋Š” ์ฃผ๋ฌธ ์„œ๋น„์Šค๊ฐ€ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ์ง€ ๋ชปํ•ด ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ฃผ๋ฌธ์ด ๋‘ ๋ฒˆ ์ฒ˜๋ฆฌ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”?

๊ทธ๋ฆผ 2. ์„œ๋น„์Šค ์ž‘์—…์€ “์ด์ค‘ ์ œ์ถœ” ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์ „์ฒด ํฌ๊ธฐ ์ด๋ฏธ์ง€ ๋ณด๊ธฐ

๊ทธ๋ฆผ 2๊ฐ€ ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ “์ด์ค‘ ์ œ์ถœ(double submit)” ๋ฌธ์ œ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‹ค์ˆ˜๋กœ ๋ฒ„ํŠผ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๋Š” ๋ฐ”๋žŒ์— ๋™์ผํ•œ ์š”์ฒญ์ด ์„œ๋ฒ„์— ๋‘ ๋ฒˆ ๋ณด๋‚ด์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์‘๋‹ต ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ์ด ๋ฐ˜๋ณต๋œ ํ˜ธ์ถœ์„ ํƒ์ง€ํ•œ๋‹ค๋ฉด? ์œ„ ์˜ˆ์ œ์—์„œ๋Š” ์ฃผ๋ฌธ ์„œ๋น„์Šค๊ฐ€ ๋‘ ๋ฒˆ์งธ ํ˜ธ์ถœ์„ ๋ฐ˜๋ณต ํ˜ธ์ถœ๋กœ ์‹๋ณ„ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ์˜ ๋ณต์‚ฌ๋ณธ๋งŒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์ฃผ๋ฌธ์€ ํ•œ ๋ฒˆ๋งŒ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ์ฃผ๋ฌธ ์„œ๋น„์Šค๋Š” ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

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

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

์ˆ˜๋™ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

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

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

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

์ด๋Ÿฌํ•œ ์‚ฌ๋ก€๋Š” ๋งŽ์Šต๋‹ˆ๋‹ค. eBay๋„ ์‚ฌ์‹ค์ƒ ํŠธ๋žœ์žญ์…˜ ์—†๋Š” ๋””์ž์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. eBay์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น๋ฌธ ๋Œ€๋ถ€๋ถ„์€ ์ž๋™ ์ปค๋ฐ‹(์›น ์„œ๋น„์Šค ํ˜ธ์ถœ๊ณผ ๋น„์Šทํ•จ)์ž…๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•œ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์— ํ•œํ•ด ์—ฌ๋Ÿฌ ๋ช…๋ น๋ฌธ์„ ๊ฒฐํ•ฉํ•˜์—ฌ (๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ) ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(“Scalability Best Practices: Lessons from eBay” ์ฐธ์กฐ).

๊ด€๋ จ ์—ฐ๊ตฌ

CAP ์ •๋ฆฌ๋Š” ์ด์™€ ๊ด€๋ จ ์žˆ๋Š” ๋ถ„์‚ฐ ๋ณต์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ผ๊ด€์„ฑ, ๊ฐ€์šฉ์„ฑ, ์„ฑ๋Šฅ์˜ 3๋Œ€ ๊ธฐ๋Šฅ ์ค‘์—์„œ ์–ด๋Š ์ž„์˜์˜ ์‹œ์ ์— ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ 2๊ฐ€์ง€๋ฟ์ด๋ผ๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ย ์ด๋Š” ๋‹จ์ผ ๋ถ„์‚ฐํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ •์˜๋œ ๊ฒƒ์ด์ง€๋งŒ, ์œ„์—์„œ ์‚ดํŽด๋ณธ ๋ณต์ˆ˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌ๊ด„ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ์„ ์™„ํ™”ํ•˜๊ณ  ์ตœ์ข… ์ผ๊ด€์„ฑ ์œˆ๋„์šฐ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด “BASE” ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ๊ณต์‹ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Basically Available(๊ทผ๋ณธ์ ์ธ ๊ฐ€์šฉ์„ฑ)
  • Soft state(์—ฐ์„ฑ ์ƒํƒœ)
  • Eventual consistency(์ตœ์ข… ์ผ๊ด€์„ฑ)

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

์ด ์ƒˆ๋กœ์šด ์ตœ์ข… ์ผ๊ด€์„ฑ ํŒจ๋Ÿฌ๋‹ค์ž„์€ ์ผ๋ถ€ ๊ธฐ๋Šฅ์  ์‹œ๋‚˜๋ฆฌ์˜ค์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด “Providing a Consistent User Experience and Leveraging the Eventual Consistency Model to Scale to Large Datasets“์—์„œ Google์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋” ๋‚˜์•„๊ฐ€ ์ตœ์ข… ์ผ๊ด€์„ฑ์ด ๋ฌธ์ œ๋˜์ง€ ์•Š๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐพ์•„ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ œ์•ˆ๋œ CALM ์ •๋ฆฌ์— ๋”ฐ๋ฅด๋ฉด ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ, ์ฆ‰ “๋‹จ์กฐ์„ฑ(monotonic)”์„ ๋„๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ตœ์ข… ์ผ๊ด€์„ฑ ๋ชจ๋ธ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ๊ธฐ(read) ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ์นด์šดํ„ฐ์— 1์„ ๋Š˜๋ฆฐ ๋‹ค์Œ ์ด๋ฅผ ๊ธฐ๋กํ•˜๋ฉด ์ผ๊ด€์„ฑ ๋ฌธ์ œ์— ์ทจ์•ฝํ•ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ “์ฆ๊ฐ€(increment)” ์ž‘์—…์„ ํ˜ธ์ถœํ•˜์—ฌ ์นด์šดํ„ฐ๋ฅผ ๋Š˜๋ฆฌ๋ฉด ์ผ๊ด€์„ฑ ๋ฌธ์ œ๋ฅผ ์—ผ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ “Eventual Consistency Today: Limitations, Extensions, and Beyond” and “CALM: consistency as logical monotonicity“๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

 

๊ฒฐ๋ก 

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

๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

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

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

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์˜๊ฒฌ์„ ์ฃผ์‹  ๋™๋ฃŒ, Sven Hรถfgen, Jens Fรคustl, Martin Kunz์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.