๐ŸŒฑ ํŠธ๋žœ์žญ์…˜(Transaction)!

sh_awtylol4ยท2022๋…„ 6์›” 29์ผ
0

๐ŸŒฑ Today I Learn

๋ชฉ๋ก ๋ณด๊ธฐ
7/16
post-thumbnail

๐Ÿค” ํŠธ๋žœ์žญ์…˜?

ํŠธ๋žœ์žญ์…˜(Transaction)์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ๋˜๋Š” ํ•œ๊บผ๋ฒˆ์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์ผ๋ จ์˜ ์—ฐ์‚ฐ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

โœจ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์ง•!

  1. ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ๋ณ‘ํ–‰ ์ œ์–ด ๋ฐ ํšŒ๋ณต ์ž‘์—… ์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„์ด๋‹ค.

  2. ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ์š”๊ตฌ ์‹œ ์‹œ์Šคํ…œ์ด ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ ๋ณ€ํ™˜ ๊ณผ์ •์˜ ์ž‘์—…๋‹จ์œ„์ด๋‹ค.

  3. ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์€ Commit ๋˜๊ฑฐ๋‚˜ Rollback ๋œ๋‹ค.

๐Ÿ† ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ์งˆ!

Atomicity (์›์ž์„ฑ)

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

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

  1. ํŠธ๋žœ์žญ์…˜์ด ๊ทธ ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ์–ธ์ œ๋‚˜ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.
  2. ์‹œ์Šคํ…œ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ ์ •์š”์†Œ๋Š” ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „๊ณผ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์™„๋ฃŒ ํ›„์˜ ์ƒํƒœ๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

Isolation (๋…๋ฆฝ์„ฑ, ๊ฒฉ๋ฆฌ์„ฑ)

  1. ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ณ‘ํ–‰ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ์–ด๋Š ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์ด ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.
  2. ์ˆ˜ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜์€ ์™„์ „ํžˆ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค.

Durablility (์˜์†์„ฑ, ์ง€์†์„ฑ)

  1. ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์ด ๊ณ ์žฅ๋‚˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค.

๐Ÿงฎ ํŠธ๋žœ์žญ์…˜ ์—ฐ์‚ฐ ๋ฐ ์ƒํƒœ!

Commit ์—ฐ์‚ฐ

  1. Commit ์—ฐ์‚ฐ์€ ํ•œ๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„ (ํŠธ๋žœ์žญ์…˜)์— ๋Œ€ํ•œ ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚ฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค์‹œ ์ผ๊ด€๋œ ์ƒํƒœ์— ์žˆ์„ ๋•Œ, ์ด ํŠธ๋žœ์žญ์…˜์ด ํ–‰ํ•œ ๊ฐฑ์‹ ์ด ์—ฐ์‚ฐ์ด ์™„๋ฃŒ๋œ ๊ฒƒ์„ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.

Rollback ์—ฐ์‚ฐ

  1. Rollback ์—ฐ์‚ฐ์€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋น„์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ์„ ๊นจ๋œจ๋ ธ์„ ๋•Œ, ์ด ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ถ€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋”๋ผ๋„ ํŠธ๋žœ์žญ์…˜์˜ ์›์ž์„ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŠธ๋žœ์žญ์…˜์ด ํ–‰ํ•œ ๋ชจ๋“  ์—ฐ์‚ฐ์„ ์ทจ์†Œ(Undo)ํ•˜๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  2. Rollback ์‹œ์—๋Š” ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ๊ธฐํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ ์ƒํƒœ

  • ํ™œ๋™ (Active) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰์ค‘์ธ ์ƒํƒœ
  • ์‹คํŒจ (Failed) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ค‘๋‹จ๋œ ์ƒํƒœ
  • ์ฒ ํšŒ (Aborted) : ํŠธ๋žœ์žญ์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด Rollback ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ ์ƒํƒœ
  • ๋ถ€๋ถ„ ์™„๋ฃŒ (Partially Commited) : ํŠธ๋žœ์žญ์…˜์˜ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์ง€๋งŒ, Commit ์—ฐ์‚ฐ์ด ์‹คํ–‰๋˜๊ธฐ ์ง์ „์˜ ์ƒํƒœ
  • ์™„๋ฃŒ (Commited) : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ €์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด Commit ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ ํ›„์˜ ์ƒํƒœ.
profile
ํฌ๊ธฐํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์ด ๋ฐ”๋กœ ์‹œํ•ฉ์ข…๋ฃŒ์˜ˆ์š”...

0๊ฐœ์˜ ๋Œ“๊ธ€