μμ€ν μν€ν μ²λ₯Ό 곡λΆνλ€λ³΄λ λ°μ΄ν°λ² μ΄μ€μ λΆμ°μμ€ν μ 곡λΆνκ² λλ μΌμ΄ μκ²Όλ€. κ·Έλ CAP μ΄λ‘ μ΄λΌλ λ¨μ΄λ₯Ό μ²μ λ΄€λλ°, Capability μ μκΈμλ₯Ό λ°μ λΆμ° μμ€ν μμ λ°μ΄ν° λ² μ΄μ€ κ°μ© λ₯λ ₯μ΄λ λ°μ΄ν° λ² μ΄μ€ μ±λ₯μ κ΄λ ¨λ μ΄λ‘ μΈμ€ μμλ€.
νμ§λ§ 곡λΆν΄λ³΄λ μ ν λ€λ₯Έ κ°λ μ΄μκ³ , CAP μ΄λ‘ μ λΆμ° μμ€ν μ DB νκ²½μμ λ€νΈμν¬ λΆν μ΄ λ°μνλ©΄ μμ€ν μ μΌκ΄μ±κ³Ό κ°μ©μ± μ€ νλλ₯Ό μ νν΄μΌ νλ©°, λ λ€λ₯Ό λμμ μλ²½νκ² λ³΄μ₯ν μ μλ€λ μ΄λ‘ μ΄μλ€. λκ² μ€μν κ°λ μΈ κ² κ°μμ κΈ°λ‘μΌλ‘ λ¨κ²¨λλ €κ³ νλ€.
κ°λ
λ¨Όμ κ°λ μ λ§νμλ©΄ λ€μκ³Ό κ°λ€.
CAP μ΄λ‘ (CAP theorem)μ λΆμ° μμ€ν μμ μΈ κ°μ§ μ£Όμ νΉμ±μΈ μΌκ΄μ±(Consistency), κ°μ©μ±(Availability), κ·Έλ¦¬κ³ λ€νΈμν¬ λΆν νμ©(Partition Tolerance) μ¬μ΄μμ λμμ λͺ¨λ νΉμ±(CAP μ λͺ¨λ)μ μλ²½νκ² λ³΄μ₯ν μ μλ€λ μ΄λ‘ μ΄λ€. μ΄ μ΄λ‘ μ Eric Brewerκ° μ μν κ²μΌλ‘, λΆμ° λ°μ΄ν°λ² μ΄μ€μ μ€κ³μμ μ€μν μν μ νλ€.
- μΌκ΄μ±(Consistency): λͺ¨λ λ Έλμμ λ°μ΄ν°λ₯Ό μ½μ λ νμ λμΌν μ΅μ λ°μ΄ν°λ₯Ό λ°ννλ κ²μ μλ―Ένλ€. μ¦, ν λ Έλμμ λ°μ΄ν°κ° μ λ°μ΄νΈλλ©΄ λͺ¨λ λ Έλμ μ¦μ λ°μλμ΄μΌ νλ€.
- κ°μ©μ±(Availability): λ°μ΄ν°λ₯Ό μμ²νλ λͺ¨λ ν΄λΌμ΄μΈνΈκ° νλ μ΄μμ λ Έλκ° λ€μ΄λ κ²½μ°μλ μλ΅μ λ°λλ€λ κ²μ μλ―Ένλ€. μ¦, λΆμ° μμ€ν μ λͺ¨λ μμ λ Έλκ° μμΈ μμ΄ λͺ¨λ μμ²μ λν΄ μ ν¨ν μλ΅μ λ°ννλ€.
- λ€νΈμν¬ λΆν νμ©(Partition Tolerance): λΆμ° μμ€ν μμ λ€νΈμν¬κ° λΆν λμμ λλ μμ€ν μ΄ κ³μν΄μ λμν μ μλ λ₯λ ₯μ μλ―Ένλ€. μ¦, μΌλΆ λ Έλ κ°μ ν΅μ μ΄ λΆκ°λ₯ν μν©μμλ μμ€ν μ΄ κ³μ μλν΄μΌ νλ€.
λ¨Όμ λ€νΈμν¬ λΆν νμ©μ μκ³ κ°μΌνλ€.
λ€νΈμν¬ λΆν νμ©μ ν΅μ¬μ λΆμ° μμ€ν μ΄ λ€νΈμν¬ λ¬Έμ λ‘ μΈν λ Έλ κ° ν΅μ λ¨μ μ΄ λ°μνλλΌλ, κ°λ₯ν λ§μ κΈ°λ₯μ μ μ§νκ³ λμ€μ λ°μ΄ν° μΌκ΄μ±μ 볡ꡬν μ μλ μ€κ³λ₯Ό μλ―Ένλ€. μ¦, λ€νΈμν¬κ° λΆλ¦¬λ λμμλ μμ€ν μ μΌλΆ λ Έλκ° μ μμ μΌλ‘ λμν μ μκ³ , λ€νΈμν¬κ° 볡ꡬλλ©΄ λ°μ΄ν°μ μΌκ΄μ±μ΄ ν볡λλλ‘ νλ κ²μ΄ λͺ©νμ΄λ€.
μλ₯Ό λ€μ΄, λΆμ° λ°μ΄ν°λ² μ΄μ€ μμ€ν μμ μλ κ·Έλ¦Όκ³Ό κ°μ΄
- μμ²μ΄ A λ°μ΄ν°λ² μ΄μ€ λ Έλλ‘ κ°λ κ²½μ°μ B λ°μ΄ν°λ² μ΄μ€ λ Έλλ‘ κ°λ κ²½μ°κ° μλ€.
- λ€νΈμν¬ λ¬Έμ λ‘ μΈν΄ Aμ B λ Έλ κ°μ μ°κ²°μ΄ λμ΄μ‘μ§λ§, κ°κ°μ λ Έλλ μ¬μ ν ν΄λΌμ΄μΈνΈ μμ²μ μ²λ¦¬ν μ μλ€.
μ΄ κ²½μ°, λ€νΈμν¬ λΆν μ΄ λ°μνμμλ κ° λ Έλλ λ 립μ μΌλ‘ λμνλ©΄μ κ°λ₯ν λ§μ μμ²μ μ²λ¦¬νλ €κ³ λ Έλ ₯νλ€. λ€νΈμν¬κ° 볡ꡬλλ©΄, κ° λ Έλκ° μ²λ¦¬ν λ°μ΄ν°λ₯Ό λκΈ°ννμ¬ μ΅μ’ μΌκ΄μ±μ λ§μΆλ€.
μ¬λ¬ IT μλΉμ€ νμ¬λ€μ λΉμ°νκ²λ λΆμ° λ°μ΄ν°λ² μ΄μ€ μ€κ³λ₯Ό κ°κ³ κ°λ€. λ§μ½ λ°μ΄ν° λ² μ΄μ€κ° νλλ§ μκ³ κ·Έ νλμ μ₯μ κ° λλ€λ©΄ λ¨μΌ μ₯μ μ§μ μ€ν¨λ‘ λͺ¨λ μλΉμ€κ° λ§λΉλ κ²μ΄λ€. μ΄λ κΈ° λλ¬Έμ λ°μ΄ν° λ°±μ μΈ‘λ©΄, νΈλν½ λΆμ° μΈ‘λ©΄, μ§λ¦¬μ 물리μ μΈ‘λ©΄ λλ¬Έμ΄λΌλ λΆμ° μμ€ν μ κ°κ² λλ€.
κ·ΈλΌ μ°λ¦¬λ κΈ°λ³Έμ μΌλ‘ P λ₯Ό νμ©νκ³ λ€μ λ¨κ³λ₯Ό λ°κ² λλ κ²μ΄λ€.
CAP μ΄λ‘ μ νΈλ μ΄λμ€ν
λΆμ° λ°μ΄ν°λ² μ΄μ€μμ λ€νΈμν¬ λΆν μ΄ λ°μν κ²½μ°, μμ€ν μ μΌκ΄μ±κ³Ό κ°μ©μ± μ¬μ΄μμ νΈλ μ΄λμ€νλ₯Ό μ νν΄μΌ νλ€. μ΄ μ νμ μμ€ν μ μꡬμ¬νμ λ°λΌ λ¬λΌμ§κ² λλ€.
λ¨Όμ μλ κ·Έλ¦Όκ³Ό κ°μ κ²½μ°λ₯Ό μμλ‘ μκ°ν΄λ³΄μ. λΆμ° λ°μ΄ν°λ² μ΄μ€ μμ€ν μμ λ€νΈμν¬ λΆν μ΄ μΌμ΄λμ A λ°μ΄ν° λ² μ΄μ€μ C λ°μ΄ν°λ² μ΄μ€ κ°μ ν΅μ μ΄ λκΈ°κ² λμκ³ , κ·Έλ λλ§μΉ¨ 1λ² μ¬μ©μμ ν¬μΈνΈ μ¬μ©μΌλ‘ ν¬μΈνΈκ° 0μΌλ‘ λλ€κ³ κ°μ ν΄λ³΄μ. A μ Cμ ν΅μ μ΄ λ¨μ λμΌλ―λ‘ λ³΅μ λ μ 보λ₯Ό μ μ‘ν μ μμ΄, λ°μ΄ν°μΌκ΄μ±μ΄ λ§μ§ μκ² λκ³ κ° λ°μ΄ν°λ² μ΄μ€μ 1λ² μ¬μ©μμ λν ν¬μΈνΈλ₯Ό λ¬Όμ΄λ³Έλ€λ©΄ 0 κ³Ό 10μΌλ‘ κ°κΈ° λ€λ₯Έ μλ΅μ΄ μ¬ κ²μ΄λ€.
1. CP μμ€ν (Consistency + Partition Tolerance)
- μΌκ΄μ±κ³Ό λ€νΈμν¬ λΆν νμ©μ±μ μ°μ νλ μμ€ν
μ΄λ€. λ€νΈμν¬ λΆν μ΄ λ°μνλ©΄, μμ€ν
μ μΌκ΄μ±μ μ μ§νκΈ° μν΄ κ°μ©μ±μ ν¬κΈ°νλ€. μ¦, μΌλΆ μμ²μ μ²λ¦¬λμ§ μκ³ μ€ν¨ν μ μμ§λ§, λͺ¨λ μλ΅μ νμ μ΅μ μνμ μΌκ΄λ λ°μ΄ν° λ°νμ 보μ₯νλ€.
κ·Έλ¦Όμ μμλ‘ λ€λ©΄, λ€νΈμν¬ λΆν μ΄ μΌμ΄λ μ CP μ€κ³μ΄λ―λ‘ λ€νΈμν¬κ° 볡ꡬλκ³ A λ°μ΄ν°λ² μ΄μ€μ μμ λ μ λ³΄κ° C λ°μ΄ν°λ² μ΄μ€μλ λ°μμ΄ λμ΄ λ°μ΄ν° μΌκ΄μ±μ΄ 보μ₯ λμμ λ μλ΅μ μ μμ μΌλ‘ 보λΈλ€. λ€νΈμν¬κ° 볡ꡬλμ΄ λ°μ΄ν°λ² μ΄μ€κ°μ μΌκ΄μ± μ±ν¬λ₯Ό λ§μΆλ κ³Όμ λμμ μμ²μ μ€ν¨ μ²λ¦¬κ° λλ―λ‘ κ°μ©μ± μΈ‘λ©΄μμλ λΆμ μ μ΄λ€. - μμ: μν κ±°λ μμ€ν . κΈμ΅ μμ€ν μμλ λͺ¨λ λ°μ΄ν°κ° λ°λμ μΌκ΄μ±μ μ μ§ν΄μΌ νλ κ²μ΄ μ€μνλ€. μλ₯Ό λ€μ΄, ν μ¬μ©μκ° μν κ³μ’μμ λμ μ΄μ²΄ν λ λͺ¨λ μμ€ν μ λμΌν κ³μ’ μμ‘μ΄ λ°μλμ΄μΌ νλ€. λ§μ½ λ€νΈμν¬ λΆν μ΄ λ°μνλ€λ©΄, κ°μ©μ±μ ν¬μνλλΌλ μΌκ΄μ±μ μ μ§ν΄μΌ νλ κ²μ΄ μλΉμ€ νΉμ±μ λ λ§λ€.
2. AP μμ€ν (Availability + Partition Tolerance)
- κ°μ©μ±κ³Ό λ€νΈμν¬ λΆν νμ©μ±μ μ°μ νλ μμ€ν μλ€. λ€νΈμν¬ λΆν μ΄ λ°μνλ©΄, μμ€ν μ κ°μ©μ±μ μ μ§νκΈ° μν΄ μΌκ΄μ±μ ν¬κΈ°ν μ μλ€. μ¦, λͺ¨λ μμ²μ μ μ μ²λ¦¬λμ§λ§, κ·Έ μλ΅ λ°μ΄ν°κ° μΌμμ μΌλ‘ μΌκ΄λμ§ μμ μ μλ€λ κ²μ΄λ€.
- μμ: μμ λ―Έλμ΄ νλ«νΌ. μμ λ―Έλμ΄μμλ μ¬μ©μκ° λκΈμ λ¬κ±°λ μ’μμλ₯Ό λλ₯΄λ λ±μ μμ μ μ¬μ©μ κ²½ν μΈ‘λ©΄μ μμ΄ μ¦κ°μ μΌλ‘ λ°μλμ΄μΌ νλ€. λ€νΈμν¬κ° λΆν λλλΌλ κ°μ©μ±μ μ μ§νλ κ²μ΄ μ€μνλ©°, μΌκ΄μ±μ λμ€μ 볡ꡬλ μ μλ€. μλ κ·Έλ¦Όμ μκ°ν΄λ³΄λ©΄ μ’μμ μ 11μ΄ C λ°μ΄ν°λ² μ΄μ€μλ μμ§ λ°μμ΄ λͺ»λ μ± λ€νΈμν¬ λΆν μ΄ μΌμ΄ λ¬λ€. μ΄λ C λ°μ΄ν° λ² μ΄μ€μ μ’μμλ₯Ό μμ²μ΄ μ μ©λλ€κ³ κ°μ ν΄λ³΄μ. μμ²μ λν μ€ν¨ μ²λ¦¬λ₯Ό ν ν, λ€νΈμν¬κ° 볡ꡬλμ΄ μ’μμ μ λ°μ΄ν°λ₯Ό 11λ‘ μΌκ΄μ±μ λ§μΆ ν, λ€μ μ’μμλ₯Ό λλ₯΄λ©΄ 12 λ‘ μ¦κ°μν€λ μΌκ΄μ± μ€μ νλ‘μΈμ€κ° μλ μΌλ¨ 10μμ 11λ‘ μ¦κ° μμΌ μ¦κ°μ μΈ μ¬μ©μ κ²½νμ΄ κ°λ₯νκ²λ κ°μ©μ±μ μ§ν€κ³ , μ΄ν μ νν μ’μμ μμ λν μΌκ΄μ±μ λ€νΈμν¬ λ³΅κ΅¬ λ€ λμ€μ λ§μΆκ² λ€λ λ»μ΄λ€.
κ²°λ‘
CAP μ΄λ‘ μ λΆμ° μμ€ν μ€κ³μμ μ€μν μ΄λ‘ μΌλ‘, λ€νΈμν¬ λΆν μ μΌκ΄μ±κ³Ό κ°μ©μ± κ°μ νΈλ μ΄λμ€νλ₯Ό λ€λ£¨λ λ°©μμ΄λ€. μ€κ³ μ μꡬ μ¬νμ λ°λΌ μ΄λ€ νΉμ±μ μ°μ μν μ§ κ²°μ ν΄μΌ νλ©°, μν κ±°λμ κ°μ μμ€ν μ μΌκ΄μ±μ, μ€μκ° μ±ν μ΄λ μμ λ―Έλμ΄λ κ°μ©μ±μ μ°μ μνλ κ²½μ°κ° λ§λ€. κ°κ°μ λλ©μΈμ νΉμ±κ³Ό μ ν리μΌμ΄μ μ μꡬμ¬νμ νμ νκ³ κ·Έ νΉμ±μ λ§κ² μ΄λ‘ μ μ μ©μν€κ² μ€μνλ€κ³ μκ°λλ€.
μ°Έκ³
λκΈ