CAP μ 리λ?
λΆμ° μμ€ν
μ μνλ μΈ κ°μ§ νΉμ±, μΌκ΄μ±, κ°μ©μ±, λΆν λ΄μ± μ€ λ κ°μ§λ§ μ 곡ν μ μμμ μ¦λͺ
ν μ 리
μΌκ΄μ±(Consistency)
- μ΄λ€ λ Έλμ μ°κ²°λμλμ§μ 무κ΄νκ² λͺ¨λ ν΄λΌμ΄μΈνΈκ° λμμ λμΌ λ°μ΄ν°λ₯Ό λ³Ό μ μμμ μλ―Ένλ€.
- λ°μ΄ν°κ° νλμ λ Έλμ κΈ°λ‘λ λλ§λ€ μ΄ λ°μ΄ν°λ μ°κΈ°κ° βμ±κ³΅βμΌλ‘ κ°μ£ΌλκΈ° μ μ μμ€ν μ λ€λ₯Έ λͺ¨λ λ Έλλ‘ μ¦μ μ λ¬λκ±°λ 볡μ λμ΄μΌ νλ€. κ°μ©μ±(Availability)
- νλ μ΄μμ λ Έλκ° μλ μ€μ§λ κ²½μ°μλ λ°μ΄ν°λ₯Ό μμ²νλ ν΄λΌμ΄μΈνΈκ° μλ΅μ λ°μμ μλ―Ένλ€.
- λΆμ° μμ€ν μ λͺ¨λ μμ μ€μΈ λ Έλλ μμΈ μμ΄ λͺ¨λ μμ²μ λν΄ μ ν¨ν μλ΅μ 리ν΄νλ€. λΆν λ΄μ±(Partition tolerance)
- λΆν (Partition)μ΄λ λΆμ° μμ€ν λ΄μ λ€νΈμν¬ λ¨μ , μ¦ λ λ Έλ κ°μ μ°κ²°μ΄ μ μ€λκ±°λ μΌμμ μΌλ‘ μ§μ°λ μνλ₯Ό λ§νλ€.
- λΆν λ΄μ±(Partition Tolerance)μ΄λ μμ€ν μ λ Έλ κ°μ λ€μμ λ€νΈμν¬ λ¨μ μλ λΆκ΅¬νκ³ ν΄λ¬μ€ν°κ° κ³μν΄μ μλν¨μ μλ―Ένλ€.
CAP μ NoSQL
NoSQL DBλ λΆμ° λ€νΈμν¬ μ΄ν리μΌμ΄μ μ μ ν©νλ€. μμ§ νμ₯μ΄ κ°λ₯ν RDBμ λ¬λ¦¬ NoSQL DB μμλ μν νμ₯μ΄ κ°λ₯νκ³ μ€κ³μ λ°λΌ λΆμ°λλ€. μ¦, μ¬λ¬ κ°μ μνΈ μ°κ²°λ λ Έλλ‘ κ΅¬μ±λ μ±μ₯ λ€νΈμν¬μμ λΉ λ₯΄κ² νμ₯ν μ μλ€.
Info
NoSQL DBλ CAP μ€ λ κ°μ νΉμ±μ κΈ°λ°μΌλ‘ λΆλ₯λλ€. CP λ°μ΄ν° λ² μ΄μ€
- κ°μ©μ±μ ν¬μμν€λ©΄μ μΌκ΄μ±κ³Ό λΆν λ΄μ±μ μ 곡
- λ λ Έλ κ°μ λΆν μ΄ λ°μνλ©΄, μμ€ν μ λΆν μ΄ ν΄κ²°λ λκΉμ§ μΌκ΄λμ§ μμ λ Έλλ₯Ό μ’ λ£(μ¦, μ¬μ© λΆκ°λ₯νκ²)ν΄μΌ νλ€. AP λ°μ΄ν° λ² μ΄μ€
- AP λ°μ΄ν°λ² μ΄μ€λ μΌκ΄μ±μ ν¬μμν€λ©΄μ κ°μ©μ±κ³Ό λΆν λ΄μ±μ μ 곡
- λΆν μ΄ λ°μνμ λ λͺ¨λ λ Έλκ° μ¬μ© κ°λ₯ν μνλ‘ μ μ§λμ§λ§ μλͺ»λ λΆν μ λμΈ λ Έλλ λ€λ₯Έ λ Έλλ³΄λ€ μ€λλ λ²μ μ λ°μ΄ν°λ₯Ό 리ν΄ν μ μλ€.
- λΆν μ΄ ν΄κ²°λλ©΄ AP λ°μ΄ν°λ² μ΄μ€λ μΌλ°μ μΌλ‘ λ Έλλ₯Ό μ¬λκΈ°ννμ¬ μμ€ν μ λͺ¨λ λΆμΌμΉλ₯Ό 볡ꡬνλ€. CA λ°μ΄ν°λ² μ΄μ€
- λͺ¨λ λ Έλμμ μΌκ΄μ±κ³Ό κ°μ©μ±μ μ 곡ν©λλ€.
- μμ€ν μ μλ λ λ Έλ μ¬μ΄μ λΆν μ΄ μμΌλ©΄ μΌκ΄μ±κ³Ό κ°μ©μ±μ μ 곡ν μ μκΈ° λλ¬Έμ λ΄κ²°ν¨μ±μ μ 곡ν μ μλ€.
- λΆμ° μμ€ν μμλ λΆν μ νΌν μ μμΌλ―λ‘ CA λ°μ΄ν°λ² μ΄μ€λ μ‘΄μ¬ν μ μλ€.
CAP μ MongoDB
- MongoDBλ CP λ°μ΄ν° μ μ₯μμ΄λ©° κ°μ©μ±μ ν¬μμν€λ©΄μ μΌκ΄μ±μ μ μ§νμ¬ λ€νΈμν¬ λΆν μ ν΄κ²°νλ€.
- MongoDBλΒ λ¨μΌ λ§μ€ν°Β μμ€ν μΌλ‘, κ°Β 볡μ λ³Έ μΈνΈμλ λͺ¨λ μ°κΈ° μ‘°μμ μμ νλ νλμ κΈ°λ³Έ λ Έλλ§ μμ μ μλ€.
- λμΌν 볡μ λ³Έ μΈνΈμ λ€λ₯Έ λͺ¨λ λ Έλλ 1μ°¨ λ Έλμ μ‘°μ λ‘κ·Έλ₯Ό 볡μ νμ¬ μ체 λ°μ΄ν° μΈνΈμ μ μ©νλ 2μ°¨ λ Έλμ΄λ€.
- κΈ°λ³Έμ μΌλ‘ ν΄λΌμ΄μΈνΈλ 1μ°¨ λ Έλμμ μ½μ§λ§, μ΄λ 2μ°¨ λ Έλμμλ μ½μ μ μλλ‘ νμ©νλΒ μ½κΈ° νκ²½ μ€μ μ μ§μ ν μλ μλ€.
- 1μ°¨ λ Έλκ° μ¬μ© λΆκ°λ₯νκ² λλ©΄, κ°μ₯ μ΅κ·Όμ μ‘°μ λ‘κ·Έκ° μλ 2μ°¨ λ Έλκ° μ 1μ°¨ λ Έλλ‘ μ μ λλ€.
- λ€λ₯Έ λͺ¨λ 2μ°¨ λ Έλκ° μ λ§μ€ν°λ₯Ό λ°λΌμ‘μΌλ©΄ ν΄λ¬μ€ν°λ₯Ό λ€μ μ¬μ©ν μ μκ² λλ€.
- ν΄λΌμ΄μΈνΈκ° μ΄ κ°κ²© λμ μ°κΈ° μμ²μ ν μ μμΌλ―λ‘, λ°μ΄ν°λ μ 체 λ€νΈμν¬μμ μΌκ΄μ±μ μ μ§ν©λλ€.
CAP μ λ§μ΄ν¬λ‘ μλΉμ€
- CAP μ 리λ₯Ό μ΄ν΄νλ©΄ μ¬λ¬ μμΉμμ μ€ν μ€μΈ λ§μ΄ν¬λ‘ μλΉμ€ κΈ°λ° μ ν리μΌμ΄μ
μ μ€κ³ν λ μ΅μμ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ ννλ λ° λμμ΄ λλ€.
- μ ν리μΌμ΄μ μ λ°μ΄ν° λͺ¨λΈμ λΉ λ₯΄κ² λ°λ³΅νκ³ μνμΌλ‘ νμ₯νλ κΈ°λ₯μ΄ νμμ΄μ§λ§, κΆκ·Ήμ μΌκ΄μ±μ νμ©ν μ μλ κ²½μ° Cassandra λλΒ Apache CouchDBμ κ°μ AP λ°μ΄ν°λ² μ΄μ€λ μ¬μ©μ μꡬμ¬νμ μΆ©μ‘±μν€κ³ λ°°μΉλ₯Ό κ°μνν μ μλ€.
- λ°λλ‘, μ ν리μΌμ΄μ μ΄ eCommerce μ ν리μΌμ΄μ μ΄λ μ§λΆ μλΉμ€μμμ κ°μ΄ λ°μ΄ν° μΌκ΄μ±μ ν¬κ² μμ‘΄νλ κ²½μ°μλ PostgreSQL λ±μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ νν μ μλ€.
Links
IBM - CAP A Beginnerβs Guide to CAP Theorem for Data Engineering