Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable
πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€/κ°œλ…

νŠΈλžœμž­μ…˜(Transaction)

νŠΈλžœμž­μ…˜(Transaction)
πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€/κ°œλ…

νŠΈλžœμž­μ…˜(Transaction)

2023. 6. 17. 10:00

πŸ“™ 1. κ°œλ…

  νŠΈλžœμž­μ…˜(Transaction)은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν•˜λ‚˜μ˜ 논리적 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μž‘μ—…μ˜ λ‹¨μœ„λ₯Ό λ§ν•œλ‹€.

  μž‘μ—…μ˜ λ‹¨μœ„λŠ” 쿼리 ν•œ 쀄이 될 수 도 있고, μ—¬λŸ¬ 개의 쿼리듀이 될 수 도 μžˆλ‹€.

 

 

πŸ“™ 2. νŠΈλžœμž­μ…˜ μ—°μ‚°

  νŠΈλžœμž­μ…˜μ—λŠ” 2κ°€μ§€ 연산이 μžˆλ‹€.

πŸ“Œ 1. 컀밋(COMMIT)

  • μ»€λ°‹μ΄λž€ λͺ¨λ“  μž‘μ—…λ“€μ„ 정상 μ²˜λ¦¬ν•˜κ² λ‹€κ³  ν™•μ •ν•˜λŠ” λͺ…령어이닀.
  • νŠΈλžœμž­μ…˜ λ‹¨μœ„λ‘œ μˆ˜ν–‰λ˜λ©° λ³€κ²½λœ λ‚΄μš©μ΄ λͺ¨λ‘ 영ꡬ적으둜 μ €μž₯λ˜λŠ” 것을 λ§ν•œλ‹€.
  • 컀밋을 μˆ˜ν–‰ν•˜λ©΄ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ κ³Όμ •이 μ’…λ£Œλ˜λŠ” κ²ƒμ΄λ‹€.

πŸ“Œ 2. λ‘€λ°±(ROLLBACK)

  • λ‘€λ°±μ΄λž€ νŠΈλžœμž­μ…˜μœΌλ‘œ μΈν•œ ν•˜λ‚˜μ˜ 묢음 μ²˜λ¦¬κ°€ μ‹œμž‘λ˜κΈ° μ΄μ „μ˜ μƒνƒœλ„ λŒλ¦¬λŠ” 일(μ·¨μ†Œ)을 λ§ν•œλ‹€.
  • 즉, λ§ˆμ§€λ§‰ μ»€λ°‹μ„ μ™„λ£Œν•œ μ‹œμ μœΌλ‘œ λŒμ•„κ°„λ‹€λŠ” λ§κ³Ό λ™μΌν•˜λ‹€.

 

 

πŸ“™ 3. νŠΈλžœμž­μ…˜ μƒνƒœ

  λ‹€μŒκ³Ό 같이 νŠΈλžœμž­μ…˜μ˜ μƒνƒœλ₯Ό κΈ°μ€€μœΌλ‘œ νŠΈλžœμž­μ…˜μ˜ 흐름을 μ‚΄νŽ΄λ³Ό 수 μžˆλ‹€.

  • Active(ν™œμ„±)
    νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 쀑인 μƒνƒœ
  • Partially Committed(λΆ€λΆ„ μ™„λ£Œ)
    νŠΈλžœμž­μ…˜μ˜ λ§ˆμ§€λ§‰ μ—°μ‚°κΉŒμ§€ μ‹€ν–‰ν–ˆμ§€λ§Œ, COMMIT μ—°μ‚°μ΄ μ‹€ν–‰λ˜κΈ° μ§μ „μ˜ μƒνƒœ
    μ„€κ³„λœ λŒ€λ‘œ μž‘업이 μ„±κ³΅λ˜μ—ˆλ‹€κ³  ν•˜λ”라도 λ¬΄μ‘°κ±΄ λ°˜μ˜ν•˜λŠ” κ²ƒμ΄ μ•„λ‹ˆλΌ, μ„€κ³„μžμ˜ μ΅œμ’… μŠΉμΈ(Commit)이 μžˆμ„ λ•ŒκΉŒμ§€ μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— μž‘μ—… λ‚΄μš©μ„ λ°˜μ˜ν•˜μ§€ μ•Šκ³  κΈ°λ‹€λ¦¬κ³  μžˆλŠ” μƒνƒœ
  • Committed(μ™„λ£Œ)
    νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ COMMIT μ—°μ‚°μ„ μ‹€ν–‰ν•œ ν›„μ˜ μƒνƒœ
  • Failed(μ‹€νŒ¨)
    νŠΈλžœμž­μ…˜ 싀행에 였λ₯˜κ°€ λ°œμƒν•˜μ—¬ μ€‘λ‹¨λœ μƒνƒœ
  • Aborted(철회)
    νŠΈλžœμž­μ…˜μ΄ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ ROLLBACK μ—°μ‚°μ„ μˆ˜ν–‰ν•œ μƒνƒœ

 

πŸ“™ 4. νŠΈλžœμž­μ…˜ νŠΉμ§• (ACID)

  νŠΈλžœμž­μ…˜μ˜ νŠΉμ§•μœΌλ‘œ μ›μžμ„±(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)이 μžˆλ‹€. 각 νŠΉμ§•μ˜ μ•ž κΈ€μžλ₯Ό λ”°μ„œ ACID νŠΉμ§•μ΄λΌκ³  λΆ€λ₯Έλ‹€.

πŸ“Œ 1. μ›μžμ„± (Atomicity)

  • All or Nothing
  • μ›μžμ„±μ€ νŠΈλžœμž­μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜κ±°λ‚˜, μ•„λ‹ˆλ©΄ μ „ν˜• λ°˜μ˜λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€λŠ” 것이닀.
  • νŠΈλžœμž­μ…˜ λ‚΄μ˜ λͺ¨λ“  λͺ…령은 λ°˜λ“œμ‹œ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ–΄μ•Ό ν•˜λ©°, λͺ¨λ‘κ°€ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ§€ μ•Šκ³  μ–΄λА ν•˜λ‚˜λΌλ„ μ˜€λ₯˜κ°€ λ°œμƒν•˜λ©΄ νŠΈλžœμž­μ…˜ μ „λΆ€κ°€ μ·¨μ†Œλ˜μ–΄μ•Ό ν•œλ‹€λŠ” κ²ƒμ΄λ‹€.

πŸ“Œ 2. 일관성 (Consistency)

  • 일관성은 νŠΈλžœμž­μ…˜μ˜ μž‘μ—… 처리 κ²°κ³Όκ°€ 항상 일관성이 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것이닀.
  • νŠΈλžœμž­μ…˜μ΄ μ§„ν–‰λ˜λŠ” λ™μ•ˆμ— λ°μ΄ν„°λ² μ΄μŠ€κ°€ λ³€κ²½λ˜λ”라도 μ—…λ°μ΄νŠΈλœ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ νŠΈλžœμž­μ…˜μ΄ μ§„ν–‰λ˜λŠ” κ²ƒμ΄ μ•„λ‹ˆλΌ, μ²˜μŒμ— νŠΈλžœμž­μ…˜μ„ μ§„ν–‰ν•˜κΈ° μœ„ν•΄ μ°Έμ‘°ν•œ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ μ§„ν–‰λœλ‹€λŠ” κ²ƒμ΄λ‹€.
  • 즉, νŠΈλžœμž­μ…˜μ΄ μ§„ν–‰λ˜λŠ” λ™μ•ˆ λ°μ΄ν„°λ² μ΄μŠ€κ°€ λ³€κ²½λ˜λ”λΌλ„ 이전에 μ‚¬μš©ν•œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ°Έμ‘°ν•œλ‹€.
  • νŠΈλžœμž­μ…˜μ€ μ‹œμž‘λΆ€ν„° μ’…λ£Œ μ‹œκΉŒμ§€ κ°™μ€ ν˜•νƒœμ˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ°Έμ‘°ν•œλ‹€.

πŸ“Œ 3. 독립성 (Isolation, 격리성)

  • 독립성(=격리성)은 νŠΈλžœμž­μ…˜ μˆ˜ν–‰ μ‹œ μ„œλ‘œ 끼어듀지 λͺ»ν•˜λŠ” 것을 λ§ν•œλ‹€.
  • ν•˜λ‚˜μ˜ νŠΉμ • νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€, λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ΄ νŠΉμ • νŠΈλžœμž­μ…˜μ˜ κ²°κ³Όλ₯Ό μ°Έμ‘°ν•  μˆ˜ μ—†λ‹€.
  • 볡수의 병렬 νŠΈλžœμž­μ…˜μ€ μ„œλ‘œ κ²©λ¦¬λ˜μ–΄ 마치 순차적으둜 μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ μž‘λ™λ˜μ–΄μ•Ό ν•˜κ³ , λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ—¬λŸ¬ μ‚¬μš©μžκ°€ 같은 데이터에 μ ‘κ·Όν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • κ·Έλƒ₯ 순차적으둜 ν•˜λ©΄ μ‰½κ²Œ λ˜κ² μ§€λ§Œ κ·Έλ ‡κ²Œ ν•˜λ©΄ μ„±λŠ₯이 λ‚˜λΉ μ§„λ‹€. κ·Έλž˜μ„œ 격리성은 μ—¬λŸ¬ 개의 격리 μˆ˜μ€€μœΌλ‘œ λ‚˜λ‰˜μ–΄ 격리성을 보μž₯ν•œλ‹€
    SERIALIZABLE (직렬화 κ°€λŠ₯)
    REPEATABLE READ (반볡 κ°€λŠ₯ν•œ 읽기)
    READ COMMITTED (μ»€λ°‹λœ 읽기)
    READ UNCOMMITTED (μ»€λ°‹λ˜μ§€ μ•Šμ€ 읽기)

πŸ“Œ 4. 지속성 (Durability)

  • 지속성은 μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λœ νŠΈλžœμž­μ…˜μ€ μ˜μ›νžˆ λ°˜μ˜λ˜μ–΄μ•Ό ν•˜λŠ” κ²ƒμ„ λ§ν•œλ‹€.

 

ν•΄λ‹Ή 글은
μ½”λ”©νŒ©ν† λ¦¬μ˜ '[DB기초] νŠΈλžœμž­μ…˜μ΄λž€ 무엇인가?',
개발자둜 ν™€λ‘œ μ„œκΈ° λ‹˜μ˜ 'νŠΈλžœμž­μ…˜(Transaction)μ΄λž€?',
Inpa λ‹˜μ˜ '[MYSQL] νŠΈλžœμž­μ…˜(Transaction) κ°œλ… & μ‚¬μš© μ™„λ²½ 정리',
주홍철 λ‹˜μ˜ '면접을 μœ„ν•œ CS 전곡지식 λ…ΈνŠΈ'
λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ > κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

MySQL의 전체 ꡬ쑰 & 쿼리 μ‹€ν–‰ ꡬ쑰  (0) 2023.06.18
νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€ (Transaction Isolation Level)  (1) 2023.06.18
[DB] λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key) κ°œλ… & ν‚€(Key) μ’…λ₯˜  (0) 2023.06.13
μ„œλΈŒμΏΌλ¦¬(Subquery)  (0) 2023.04.18
쑰인(JOIN)  (0) 2023.04.18
  • πŸ“™ 1. κ°œλ…
  • πŸ“™ 2. νŠΈλžœμž­μ…˜ μ—°μ‚°
  • πŸ“™ 3. νŠΈλžœμž­μ…˜ μƒνƒœ
  • πŸ“™ 4. νŠΈλžœμž­μ…˜ νŠΉμ§• (ACID)
'πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€/κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • MySQL의 전체 ꡬ쑰 & 쿼리 μ‹€ν–‰ ꡬ쑰
  • νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€ (Transaction Isolation Level)
  • [DB] λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key) κ°œλ… & ν‚€(Key) μ’…λ₯˜
  • μ„œλΈŒμΏΌλ¦¬(Subquery)
Amenable
Amenable
CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.