TIL ( Transaction )

2024. 5. 29. 23:40ㆍTIL

πŸ’‘ νŠΈλžœμž­μ…˜(Transaction)

 

-μ˜€λŠ˜μ€ νŠΈλžœμž­μ…˜μ— λŒ€ν•΄ μ’€ 더 μžμ„Ένžˆ μ•Œμ•„λ³Όλ €κ³  ν•©λ‹ˆλ‹€.

 

 

1.νŠΈλžœμž­μ…˜μ΄λž€

 

- μž‘μ—…μ˜ 완전성을 보μž₯ν•΄μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ°œλ…μœΌλ‘œ νŠΉμ •ν•œ μž‘μ—…μ„ μ „λΆ€ μ²˜λ¦¬ν•˜κ±°λ‚˜, μ „λΆ€ μ‹€νŒ¨ν•˜κ²Œ λ§Œλ“€μ–΄ λ°μ΄ν„°μ˜ 일관성을 보μž₯ν•΄μ£ΌλŠ” κΈ°λŠ₯이닀.

 

2. νŠΈλžœμž­μ…˜μ„ μ‚¬μš©ν•˜λŠ” 이유

 

- 예λ₯Ό λ“€μ–΄ μ˜ν™”λ₯Ό μ˜ˆλ§€ν•œλ‹€ ν–ˆμ„ λ•Œ  1)μ˜ν™”μ’Œμ„μ„ μ„ νƒν•˜λŠ” μž‘μ—…κ³Ό 2)μ„ νƒν•œ μ’Œμ„μ„ κ²°μ œν•˜λŠ” μž‘μ—…μ„ ν•˜κ²Œλ˜λŠ”λ° 1)μž‘μ—… 이후 2)μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ˜ 쀑 μ—λŸ¬κ°€ λ°œμƒν•  경우 κ²°μ œλŠ” λ˜μ§€μ•Šμ•˜λŠ”λ° μ’Œμ„μ€ 계속 μ„ νƒλ˜μ–΄μžˆλŠ” λ¬Έμ œκ°€ λ°œμƒν•œλ‹€. μ΄λ ‡κ²Œ ν•˜λ‚˜μ˜ μž‘μ—…λ§Œ μˆ˜ν–‰λ˜λŠ” 'λΆ€λΆ„ μ—…λ°μ΄νŠΈ' 상황을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ νŠΈλžœμž­μ…˜μ„ μ‚¬μš©ν•˜κ²Œ λœλ‹€.

 

- 이런 상황이외에도 μž‘μ—…ν•œ 내역을 μ €μž₯ν•˜λŠ” λ‘œκΉ…μž‘μ—…, μ˜ν™”κ΄€μ˜ μ˜ˆλ§€ μ‹œμŠ€ν…œ, μ€ν–‰μ˜ κ²°μ œ μ‹œμŠ€ν…œ λ“± λ°μ΄ν„°μ˜ 일관성을 μœ μ§€ν•΄μ•Όν•˜λŠ” λ‹€μ–‘ν•œ μƒν™©μ—μ„œ μ‚¬μš©ν•˜κ²Œ λœλ‹€.

 

3. νŠΈλžœμž­μ…˜μ˜ νŠΉμ§•(ACID)

 

좜처:https://www.databricks.com/kr/glossary/acid-transactions

 

- νŠΈλžœμž­μ…˜μ€ μ›μžμ„±(Atomicity) , μΌκ΄€μ„±(Consistency), κ²©λ¦¬μ„±(Isolation), μ§€μ†μ„±(Durability)의 νŠΉμ§•μ„ κ°€μ§‘λ‹ˆλ‹€.

-  ACIDλŠ” νŠΈλžœμž­μ…˜μ„ μ΄μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ”μš± μ•ˆμ „ν•˜κ²Œ ꡬ성할 수 있게 λ„μ™€μ£ΌλŠ” νŠΈλžœμž­μ…˜ νŠΉμ§•μž…λ‹ˆλ‹€.

 

1) μ›μžμ„±(Atomicity)

 - μ›μžμ„±μ€ νŠΈλžœμž­μ…˜μ˜ κ°€μž₯ λŒ€ν‘œμ μΈ νŠΉμ§•μœΌλ‘œ, μ—¬κΈ°μ„œ "μ›μžμ„±"μ΄λž€ λ‚˜λˆ μ§ˆ 수 μ—†λŠ” 단일 μž‘μ—…μ΄λΌλŠ” 것을 μ˜λ―Έν•˜λ©°, νŠΈλžœμž­μ…˜ λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” λͺ…령듀을 ν•˜λ‚˜μ˜ 묢음으둜 μ²˜λ¦¬ν•˜μ—¬, λ‚΄λΆ€μ—μ„œ μ‹€ν–‰λœ λͺ…령듀이 μ „λΆ€ μ„±κ³΅ν•˜κ±°λ‚˜, μ•„λ‹ˆλ©΄ λͺ¨λ‘ μ‹€νŒ¨ν•΄μ•Όν•˜λŠ” 것을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

 

2) 일관성(Consistency)

- νŠΈλžœμž­μ…˜ λ‚΄μ˜ λ°μ΄ν„°λŠ” μΌκ΄€λ˜μ–΄μ•Όν•˜λ©°, μ—λŸ¬κ°€ λ°œμƒν•˜λ”λΌλ„ λ°μ΄ν„°μ˜ μƒνƒœκ°€ 일관성을 μœ μ§€ν•΄μ•Ό ν•œλ‹€λŠ” νŠΉμ§•μ„ λ§ν•©λ‹ˆλ‹€.

 

3) κ²©λ¦¬μ„±(Isolation)

- νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 쀑인 경우 λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ— μ˜ν•΄ λ°μ΄ν„°κ°€ λ³€κ²½λ˜λŠ” 것을 λ°©μ§€ν•˜λŠ” νŠΉμ§•μž…λ‹ˆλ‹€. νŠΈλžœμž­μ…˜μ΄ μ™„μ „νžˆ μˆ˜ν–‰λ˜κ±°λ‚˜ μ™„μ „νžˆ μˆ˜ν–‰λ˜μ§€ μ•Šμ€ μƒνƒœλ₯Ό μ™ΈλΆ€μ—μ„œ μ°Έμ‘°ν•  μˆ˜λŠ” μžˆμ§€λ§Œ(λ™μ‹œμ„±), νŠΈλžœμž­μ…˜μ˜ μ€‘κ°„ κ³Όμ •μ΄λ‚˜ 쀑간 κ²°κ³Όλ₯Ό λ³Ό 수 없도둝 ν•˜λŠ” νŠΉμ§•μž…λ‹ˆλ‹€.

*λ™μ‹œμ„±μ΄λž€ μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ λ™μ‹œμ— ν•˜λ‚˜μ˜ 데이터λ₯Ό μ‚¬μš©ν•˜κ³  κ³΅μœ ν•¨μ„ λœ»ν•œλ‹€.

 

4) 지속성(Durability)

- 지속성은 νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ»€λ°‹λœ 후에 ν•΄λ‹Ή νŠΈλžœμž­μ…˜μ— μ˜ν•΄ μƒμ„±λ˜λ‚˜ μˆ˜μ •λœ 데이터가 λ³΄μ‘΄λ˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 즉, νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλ˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ— 영ꡬ적으둜 μ €μž₯되고 이후 μ‹œμŠ€ν…œμ— μ–΄λ–€ λ¬Έμ œκ°€ 생기더라도 데이터가 μ†μƒλ˜μ§€ μ•ŠλŠ”λ‹€. 

μ΄λŸ¬ν•œ νŠΉμ§•μœΌλ‘œ νŠΈλžœμž­μ…˜μ˜ μ•ˆμ „μ„±κ³Ό λ°μ΄ν„°μ˜ μ•ˆμ •μ„±μ„ μœ μ§€ν•΄μ€€λ‹€.

 

</aside>