νΈλμμ μ΄λ, λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ°κΎΈλ κΈ°λ₯μ μννκΈ° μν μμ μ λ¨μ μ΄λ€. λͺ¨λ λͺ λ Ήμ΄μ μ±κ³΅ λλ μ€ν¨λ₯Ό ν λ²μ μ²λ¦¬νλλ°, μ΄ κΈ°λ₯μ΄ μ μμ μΌλ‘ λμνλ €λ©΄ μ±κ³΅ λλ μ€ν¨κ° ν λ²μ μΌμ΄λμΌνλ€.
μ² μκ° μν¬μκ² 1000μμ μ‘κΈνλ μν©μ μλμ κ°μ΄ μμ½ν μ μλ€.
- μ² μμ κ³μ’μμ 1000μ μΆκΈ
- μν¬μ κ³μ’μ 1000μ μ κΈ
κ·Έλ°λ° λ§μ½ μ² μμ κ³μ’μμ μΆκΈμ΄ μ±κ³΅νμ§λ§ μν¬μ κ³μ’μ μ κΈνλ λμ€ μ€λ₯κ° λ°μνλ©΄, μ² μμ κ³μ’μμλ μ΄λ―Έ μ²μμ΄ μ€μμΌλ μν¬λ λ°μ λμ΄ μλ μν©μ΄ λλ€.
μ΄λ¬ν μν©μ΄ λ°μνλ©΄ μλλ―λ‘, λ κ°μ§ κΈ°λ₯μ νλμ νΈλμμ
μΌλ‘ κ΄λ¦¬ν΄μΌ νλ€. νλμ νΈλμμ
μΌλ‘ κ΄λ¦¬νλ©΄ μν¬μ κ³μ’μ μ
κΈνλ κΈ°λ₯μ΄ μ€ν¨νμ κ²½μ°, μ² μμ κ³μ’μ λμ΄ λ€μ μ
κΈν΄μΌ νλ€. μ΄λ¬ν κΈ°λ₯μ΄ RollBack
μ΄λ€.
- μμμ±(Atomicity) : ν νΈλμμ λ΄μμ μ€νν μμ λ€μ νλλ‘ κ°μ£Όν¨. μ¦, λͺ¨λ μ±κ³΅ νΉμ μ€ν¨
- μΌκ΄μ±(Consistency) : νΈλμμ μ μΌκ΄μ± μλ λ°μ΄ν°λ² μ΄μ€ μνλ₯Ό μ μ§νλ€.
- 격리μ±(Isolation) : λμμ μ€νλλ νΈλμμ λ€μ΄ μλ‘ μν₯μ λ―ΈμΉμ§ μλλ‘ κ²©λ¦¬ν΄μΌνλ€.
- μ§μμ±(Durability) : νΈλμμ μ μ±κ³΅μ μΌλ‘ λ§μΉλ©΄ κ²°κ³Όκ° νμ μ μ₯λμ΄μΌνλ€.
νΉμ νΈλμμ μ΄ μμ ν μμ§ μ»€λ°νμ§ μμλλ° λ€λ₯Έ νΈλμμ μ΄ κ·Έ λ μ½λμ μ κ·Όν μ μλ€.
μ΄λ¬ν κ²½μ μν©μμ λ°μν μ μλ λ¬Έμ λ ν¬κ² μΈ κ°μ§μ΄κ³ , μ΄λ₯Ό ν΄κ²°νκΈ° μν νΈλμμ 격리 μμ€(Transaction Isolation Level)μ΄ μ μλμ΄μλ€.
μμ μ€μΈ λ°μ΄ν°μ μ κ·Όμ νμ©ν κ²½μ° λ°μνλ λ°μ΄ν° λΆμΌμΉμ΄λ€.
ν νΈλμμ μμ κ°μ 쿼리λ₯Ό λ λ² μ€ννμ λ λ°μνλ λ°μ΄ν° λΆμΌμΉμ΄λ€.
ν νΈλμμ μμ μΌμ λ²μμ λ μ½λλ₯Ό λ λ² μ΄μ μ½μ λ λ°μνλ λ°μ΄ν° λΆμΌμΉμ΄λ€.
μ½μ΄λ³΄κΈ°..
μ @Transactionalμ μ°μ§ μμμ λ μλ¬κ° λ¬μκΉ (κ·Έλ₯ λμ μκ°...λκ° μΈν°λ·μ λ νΌλ°μ€λ₯Ό λ΄λ κΆκΈμ¦μ΄ ν΄κ²°λμ§ μμμ. μ λ΅ μλ μλ μμπ€«)
- νΈλμμ μ λ°μ΄ν°λ² μ΄μ€ μνλ₯Ό λ³κ²½μν€λ μμ λλ ν λ²μ μνλμ΄μΌνλ μ°μ°λ€μ μλ―Ένλ€.
- DBμ μ μ₯λ κ°μ²΄μ κ°μ μ¬μ©νκ³ μ νλλ°, μμ§ λ°μ΄ν°λ² μ΄μ€ μνμ λ³νκ° λλμ§ μμκ³ (λ€μ΄μ¬ κ°μ΄ λ μμμ) λ°λΌμ νΈλμμ μ μ€μ νμ§ μμμ λ ν΄λΉ κ°μ²΄μ νλκ° nullμ΄μλ€.
- νμ§λ§ @Transactionalμ μ μ©νλ©΄, λ°μ΄ν°λ² μ΄μ€μ μνκ° μμ ν λ³νλ μμ μμ 컀λ°μ νκ³ μ μ₯μ νλ€.
μΆμ²