λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» Computer Science/λ°μ΄ν„°λ² μ΄μŠ€

[λ°μ΄ν„°λ² μ΄μŠ€] 데이터 락(Data Lock)μ΄λž€?

by Jay Din 2023. 12. 27.
728x90
λ°˜μ‘ν˜•

데이터 락(Data Lock) μ΄λž€?

닀쀑 μ‚¬μš©μž ν™˜κ²½μ—μ„œ λ™μ‹œμ— μ—¬λŸ¬ μ‚¬μš©μžκ°€ 데이터에 μ ‘κ·Όν•˜κ³  λ³€κ²½ν•  λ•Œ λ°œμƒν•  수 μžˆλŠ” 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μœΌλ‘œ,

데이터에 λŒ€ν•œ 접근을 μ œμ–΄ν•˜λŠ” κΈ°μˆ μž…λ‹ˆλ‹€.

데이터 락은 λ°μ΄ν„°μ˜ 일관성과 무결성을 μœ μ§€ν•˜λ©° λ™μ‹œμ— μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

 

데이터 락의 μ’…λ₯˜

  1. 곡유 락(Shared Lock):
    • μ—¬λŸ¬ μ‚¬μš©μžκ°€ 데이터λ₯Ό λ™μ‹œμ— 읽을 수 μžˆμ§€λ§Œ, μ“°κΈ° μž‘μ—…μ€ λΆˆκ°€λŠ₯ν•œ λ½μž…λ‹ˆλ‹€. μ“°κΈ° μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λŠ” κ²½μš°μ—λŠ” λ‹€λ₯Έ μ‚¬μš©μžμ˜ 락이 ν•΄μ œλ˜κΈ°λ₯Ό κΈ°λ‹€λ €μ•Ό ν•©λ‹ˆλ‹€.
  2. 배타적 락(Exclusive Lock):
    • 데이터λ₯Ό μ½κ±°λ‚˜ μ“°λŠ” λ™μ•ˆ λ‹€λ₯Έ μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 μ—†λŠ” λ½μž…λ‹ˆλ‹€. ν•œ μ‚¬μš©μžκ°€ 데이터λ₯Ό μˆ˜μ • 쀑일 λ•Œ λ‹€λ₯Έ μ‚¬μš©μžλŠ” ν•΄λ‹Ή 데이터에 λŒ€ν•œ 읽기 및 μ“°κΈ° μž‘μ—…μ΄ λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

 

데이터 락의 μ‚¬μš© μ˜ˆμ‹œ

SAP ABAP μ˜ˆμ‹œ μ½”λ“œ

DATA: lv_balance TYPE i,
      lv_account TYPE string.

" 곡유 락(Shared Lock) μ˜ˆμ‹œ
SELECT balance FROM accounts INTO lv_balance
  WHERE account_number = lv_account
  FOR READ ONLY.

" 배타적 락(Exclusive Lock) μ˜ˆμ‹œ
SELECT balance FROM accounts INTO lv_balance
  WHERE account_number = lv_account
  FOR UPDATE.

 

μœ„μ˜ ABAP μ½”λ“œλŠ” λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ—μ„œ 곡유 락과 배타적 락을 μ‚¬μš©ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

`FOR READ ONLY`λŠ” 곡유 락을 μ„€μ •ν•˜λ©°, `FOR UPDATE`λŠ” 배타적 락을 μ„€μ •ν•©λ‹ˆλ‹€.

 

데이터 락의 μ£Όμ˜μ‚¬ν•­

  • κ³Όλ„ν•œ μ‚¬μš©μ€ μ„±λŠ₯ μ €ν•˜λ₯Ό μ΄ˆλž˜ν•  수 μžˆμœΌλ―€λ‘œ μ‹ μ€‘ν•˜κ²Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 락의 λ²”μœ„μ™€ 지속 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜μ—¬ κΌ­ ν•„μš”ν•œ λΆ€λΆ„μ—λ§Œ μ μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
  • 락을 효과적으둜 κ΄€λ¦¬ν•˜κ³  ν•΄μ œν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

데이터 락은 λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμ—μ„œ μ§€μ›ν•˜λŠ” κΈ°λŠ₯이며,

효과적으둜 ν™œμš©ν•˜λ©΄ λ°μ΄ν„°μ˜ 무결성과 일관성을 μœ μ§€ν•˜λ©΄μ„œ λ™μ‹œμ— μ—¬λŸ¬ μ‚¬μš©μžκ°€ μ•ˆμ „ν•˜κ²Œ 데이터에 μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

728x90
λ°˜μ‘ν˜•