https://www.ibm.com/developerworks/cloud/library/cl-manage-cloud-transactions_1/?social_post=872241990&fst=Discover

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

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

2๋‹จ๊ณ„ ์ปค๋ฐ‹(2 Phase Commit) ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹ ์ดํ•ด

ย  ย ย Andre Fachat
2017๋…„ 4์›” 17์ผ ์ž‘์„ฑ

 

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

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

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

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

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

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

ํŠธ๋žœ์žญ์…˜์˜ ๊ธฐ๋ณธ ํŠน์„ฑ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์›์ž์„ฑ(atomicity)์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์—์„œ ์ด ์›์ž์„ฑ์ด ์ œ๋Œ€๋กœ ๊ตฌํ˜„๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ๋กœ ์ธํ•ด ์ผ๊ด€์„ฑ(consistency๊นŒ์ง€ ์žƒ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ฐ˜ ์†์„ฑ

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

๋” ๊ณต์‹์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด, ํŠธ๋žœ์žญ์…˜์€ ํ”ํžˆ ๋‹ค์Œ 4๊ฐ€์ง€ “ACID” ์†์„ฑ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์ด ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ์ด๋ก ์ ์ธ ์›์น™์ด์ง€๋งŒ, ์‹ค์ œ ์ƒํ™ฉ์—์„œ๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•œ ํšจ๊ณผ ๋˜๋Š” ์ตœ์ ํ™” ๋•Œ๋ฌธ์— ๋ณ€์น™ ์ ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๊ทธ๋ฆผ 1. ํด๋ผ์ด์–ธํŠธ, ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž, ๋ฆฌ์†Œ์Šค๋กœ ์ด๋ฃจ์–ด์ง„ ์ผ๋ฐ˜์ ์ธ ํŠธ๋žœ์žญ์…˜

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

 

์ž๋™ ์ปค๋ฐ‹

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

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

๊ทธ๋ฆผ 2. ๋ช…์‹œ์  ์ปค๋ฐ‹์—์„œ๋Š” ๋‹ค๋ฅธ ์กฐ์น˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž ๊ธ‰๋‹ˆ๋‹ค

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

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

์žฅ๊ธฐ ํŠธ๋žœ์žญ์…˜๊ณผ ๋‹จ๊ธฐ ํŠธ๋žœ์žญ์…˜

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

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๋Š” ํŠธ๋žœ์žญ์…˜ ๊ฐ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์žฅ๊ธฐ ๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž ๊ทธ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋Œ€๊ฐœ ๊ธฐ๋Šฅ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์ด ์ถ”๊ฐ€์ ์ธ ๋ฆฌ์†Œ์Šค ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์žฅ๊ธฐ ๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜์—์„œ ์›์ž์„ฑ ๋ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ๊ธฐ์ˆ ์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ ์šฉ์นด๋“œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ์˜ˆ์•ฝ๊ธˆ์€ ์‚ฌ์‹ค์ƒ ์ผ์ข…์˜ ๋น„๊ด€์  ์ž ๊ธˆ(pessimistic locking)์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์„ค์ •์—์„œ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๊ธ€์—์„œ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ SYS-CON Media ์›น ์‚ฌ์ดํŠธ์˜ “Web-Services Transactions” ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.)

๋กœ์ปฌ ํŠธ๋žœ์žญ์…˜๊ณผ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜

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

์ง€๊ธˆ๊นŒ์ง€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์—ˆ๋˜ ์ผ๋ฐ˜์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž(transaction manager)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ๊ด€๋ จ๋œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๋ฅผ ์กฐ์ •ํ•˜๋ฉฐ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž๋Š” ๋Œ€๊ฐœ 2๋‹จ๊ณ„ ์ปค๋ฐ‹(2 Phase Commit)์ธ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„ ์ปค๋ฐ‹์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๋จผ์ € ๊ด€๋ จ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž์—๊ฒŒ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๋ฉด ์„ฑ๊ณต์„ ๋ณด์žฅํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํˆฌํ‘œ ๋‹จ๊ณ„(voting phase)์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ๋™์˜ํ•˜๋ฉด ์ปค๋ฐ‹ ๋‹จ๊ณ„(commit phase)์—์„œ ํŠธ๋žœ์žญ์…˜์ด ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ปค๋ฐ‹๋ฉ๋‹ˆ๋‹ค. ์–ด๋Š ํ•œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ์ปค๋ฐ‹์„ ๊ฑฐ์ ˆํ•˜๋ฉด ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ๋กค๋ฐฑ๋˜๊ณ  ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 3์€ 2๋‹จ๊ณ„ ์ปค๋ฐ‹ ํŠธ๋žœ์žญ์…˜์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 3. 2๋‹จ๊ณ„ ์ปค๋ฐ‹ ํ”„๋กœํ† ์ฝœ์˜ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜

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

์ด ๋ชจ๋ธ์€ ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ, JEE(Enterprise Java) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„, Microsoft Transaction Server, ๊ธฐํƒ€ ์‹œ์Šคํ…œ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(“A Detailed Comparison of Enterprise JavaBeans (EJB) & The Microsoft Transaction Server (MTS) Models” ์ฐธ์กฐ).

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฟ ์•„๋‹ˆ๋ผ ์›น ์„œ๋น„์Šค์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ WS-Transaction ํ‘œ์ค€์ด ์žˆ์ง€๋งŒ, ์•„์ง๊นŒ์ง€๋Š” ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ ์˜ˆ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ™˜๊ฒฝ์—์„œ์˜ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜

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

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

์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ์ž์ฃผ๋Š” ์•„๋‹ˆ๋”๋ผ๋„ ๊ฐ€๋” ๋ฐœ์ƒํ•˜๋ฉฐ, ์ €์ž๋„ ์‹ค์ œ๋กœ ๊ฒฝํ—˜ํ•œ ๋ฐ” ์žˆ์Šต๋‹ˆ๋‹ค(“Two-phase commit race condition on WebLogic” ๋ฐ “Messaging/Database race conditions” ์ฐธ์กฐ). ๋”ฐ๋ผ์„œ ๊ธฐ์กด์˜ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์—์„œ๋„ ๋ถˆ์ผ์น˜ ์œˆ๋„์šฐ(window of inconsistency)๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์€ ์ตœ์ข… ๋‹จ๊ณ„์— ์ด๋ฅด๋Ÿฌ์•ผ ์ผ๊ด€์„ฑ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 4๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ฆผ 4. 2๋‹จ๊ณ„ ์ปค๋ฐ‹์—์„œ๋„ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆ์ผ์น˜ ์œˆ๋„์šฐ

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

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

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

ํŠธ๋žœ์žญ์…˜ ๋น„๋™๊ธฐ(๋ฉ”์‹œ์ง•) ํ”„๋กœํ† ์ฝœ

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

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

๊ทธ๋ฆผ 5. ๋ฉ”์‹œ์ง• ์ธํ”„๋ผ๋กœ ํŠธ๋žœ์žญ์…˜์˜ ์ตœ์ข… ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

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

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

๊ฒฐ๋ก 

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

๊ทธ๋Ÿฌ๋‚˜, CloudFoundry์™€ ๊ฐ™์ด ์˜๊ตฌ์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์—†๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, JEE ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„์ด ์ž์ฒด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž์˜ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ด๋Š” ๊ฒฐ๊ตญ 2๋‹จ๊ณ„ ์ปค๋ฐ‹ ํŠธ๋žœ์žญ์…˜์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, JavaScript ์„œ๋ฒ„์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ์ค‘ ์ผ๋ถ€๋Š” ์‹ฌ์ง€์–ด ๋Ÿฐํƒ€์ž„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค. (“Microservices Best Practices for Java” ์ฐธ์กฐ)

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

 

ํ† ๋ก  ์ฐธ๊ฐ€

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