1. λΆμ° νΈλμμ μ κ°μ
- μ μ: μ¬λ¬ κ°μ λ 립λ μμ€ν μ΄λ DBμ κ±Έμ³ λ°μνλ νΈλμμ μ νλμ λ¨μλ‘ λ¬Άμ΄ μΌκ΄λκ² κ΄λ¦¬νλ λ°©λ²
- ν΅μ¬ 보μ₯: λͺ¨λ μμ€ν μ΄ μ±κ³΅νκ±°λ(All), μλλ©΄ λͺ¨λ μ€ν¨(Nothing)νλλ‘ λ³΄μ₯νμ¬ λ°μ΄ν° 격차λ₯Ό λ°©μ§ν¨.
- νμμ±: μλΉμ€κ° κΈ°λ₯λ³λ‘ μͺΌκ°μ§ λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²(MSA)μμλ κ° μλΉμ€μ DBκ° λ 립μ μ΄λ―λ‘, μλΉμ€ κ° λ°μ΄ν° μ ν©μ±μ λ§μΆκΈ° μν΄ νμμ μ.
2. μ£Όμ κ°λ λ° μμΉ
2.1 νΈλμμ μ κΈ°λ³Έ μμ± (ACID)
λΆμ° νκ²½μμλ λ°λμ μ§μΌμ ΈμΌ νλ 4κ°μ§ μμ±
- μμμ± (Atomicity): νΈλμμ λ΄ μμ μ 'λͺ¨λ μ±κ³΅' μλλ©΄ 'μ λΆ μ€ν¨'ν΄μΌ ν¨. μ€κ° λ¨κ³μμ λ©μΆλ μΌμ μμ.
- μΌκ΄μ± (Consistency): μ€ν μ νμ λ°μ΄ν°λ² μ΄μ€ μνλ νμ λ¬΄κ²°μ± μ μ½ μ‘°κ±΄μ λ§μ‘±νλ μ¬λ°λ₯Έ μνμ¬μΌ ν¨.
- κ²©λ¦¬μ± (Isolation): λμμ μ€νλλ μ¬λ¬ νΈλμμ μ΄ μλ‘μ μ€κ° κ³Όμ μ κ°μνμ§ λͺ»νλλ‘ μ°¨λ¨ν¨.
- μ§μμ± (Durability): μ±κ³΅μ μΌλ‘ μλ£λ νΈλμμ κ²°κ³Όλ μμ€ν μ₯μ κ° λ°μνλλΌλ μꡬμ μΌλ‘ 보쑴λ¨.
2.2 2PC (Two-Phase Commit)
νμ€μ μΈ λΆμ° νΈλμμ νλ‘ν μ½λ‘, μ€μ μ‘°μ μ(Coordinator)κ° νΈλμμ μ κ΄λ¦¬ν¨.
- μ€λΉ λ¨κ³ (Prepare Phase): λ§μ€ν° λ Έλκ° λͺ¨λ μ°Έμ¬ λ Έλμκ² "μ»€λ° μ€λΉλλ?"λΌκ³ λ¬Όμ΄λ³΄κ³ μλ΅μ κΈ°λ€λ¦Ό.
- μ»€λ° λ¨κ³ (Commit Phase): λͺ¨λ λ
Έλκ° "OK"νλ©΄ 컀λ°μ μ§μνκ³ , νλλΌλ κ±°μ νλ©΄ μ 체 λ‘€λ°±μ μ§μν¨.
π‘ μΆκ° μ€λͺ : κ°λ ₯ν μΌκ΄μ±μ 보μ₯νμ§λ§, ν λ ΈλλΌλ μλ΅μ΄ λ¦μ΄μ§λ©΄ μ 체 μμ€ν μ΄ λκΈ° μν(Blocking)μ λΉ μ§λ λ¨μ μ΄ μμ΄ λκ·λͺ¨ νΈλν½ νκ²½μμλ μ μ€ν μ¬μ©ν΄μΌ ν¨.
2.3 μ¬κ° ν¨ν΄ (Saga Pattern)
νΈλμμ μ μ¬λ¬ λ¨κ³μ λ‘컬 νΈλμμ μΌλ‘ λλμ΄ μμ°¨μ μΌλ‘ μ€ννλ λ°©μ
- νΉμ§: κ° λ¨κ³λ λ 립μ μΌλ‘ 컀λ°λ¨.
- 보μ νΈλμμ
(Compensating Transaction): μ€κ°μ μ€ν¨νλ©΄ μ΄λ―Έ 컀λ°λ μ΄μ λ¨κ³λ€μ μ·¨μνκΈ° μν΄ λ°λλλ μμ
(μ: κ²°μ μ·¨μ)μ μ€ννμ¬ μμ볡ꡬν¨.
- μμ: μ£Όλ¬Έ μμ± → κ²°μ μ²λ¦¬ → μ¬κ³ κ°μ, (μ€ν¨ μ) → κ²°μ μ·¨μ → μ£Όλ¬Έ μ·¨μ
2.4 μ΄λ²€νΈ μμ± (Event Sourcing)
- λ°©μ: λ°μ΄ν°μ μ΅μ’ μνλ§ μ μ₯νλ κ²μ΄ μλλΌ, μνλ₯Ό λ³νμν¨ λͺ¨λ 'μ΄λ²€νΈ'λ₯Ό μμ°¨μ μΌλ‘ κΈ°λ‘ν¨.
- μ₯μ : κ³Όκ±°μ λͺ¨λ λ³κ²½ μ΄λ ₯μ μΆμ ν μ μμΌλ©°, μ΄λ²€νΈλ₯Ό μ²μλΆν° λ€μ μ¬μ(Replay)νμ¬ μΈμ λ νμ¬ μνλ₯Ό 볡ꡬνκ±°λ νΉμ μμ μ μνλ₯Ό μ¬νν μ μμ.
3. λΆμ° νΈλμμ μ μ₯μ
- λ°μ΄ν° μΌκ΄μ± 보μ₯: μ¬λ¬ λ°μ΄ν° μμ€μ κ±Έμ³ λ°μ΄ν°κ° μ΄κΈλμ§ μλλ‘ μλ²½ν μν λκΈ°νλ₯Ό μ μ§ν¨.
- νμ₯μ±: μμ€ν μ΄ λ 립μ μΌλ‘ λμνλ©΄μλ νμν λλ§ νλ ₯νμ¬ μΌκ΄μ±μ μ μ§νλ―λ‘, μ 체 μμ€ν κ·λͺ¨λ₯Ό ν€μ°κΈ°μ μ©μ΄ν¨.
- μ λ’°μ±: λΆμ° νκ²½μμλ ACID μμ±μ μ μ§ν¨μΌλ‘μ¨ μμ€ν μ λ°μ λ°μ΄ν° 무결μ±μ μ λ’°ν μ μκ² ν¨.
- 볡ꡬ κ°λ₯μ±: μ€ν¨ μ§μ μμ λͺ
νν λ‘€λ°± λ©μ»€λμ¦μ μ 곡νμ¬ μκΈ°μΉ λͺ»ν μ€λ₯μλ μμ€ν
μμ μ±μ μ§ν΄.
- μ΅κ·Ό λκ·λͺ¨ μμ€ν μμλ μ±λ₯μ μν΄ 2PC보λ€λ μ¬κ° ν¨ν΄μ΄λ μ΄λ²€νΈ μμ±μ νμ©ν 'μ΅μ’ μ μΌκ΄μ±(Eventual Consistency)' λͺ¨λΈμ λ λ§μ΄ μ±ννλ μΆμΈλΌκ³ ν¨
'Kafka' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| 6. RabbitMQ (0) | 2026.03.23 |
|---|---|
| 5. κ³ λνλ μν€ν μ²μ μ΄μ μ λ΅ - 2PCλ₯Ό μ¬μ©ν νΈλμμ μ²λ¦¬λΆν° (0) | 2026.03.23 |
| 4. λ°μ΄ν° μΌκ΄μ± μ μ§ (2) (0) | 2026.03.23 |