...

S3 λ°μ΄ν° μΌκ΄μ± λͺ¨λΈ (Data Consistency Model)
λ°μ΄ν° μΌκ΄μ±μ΄λ, κ°μ μκ°μ μ‘°ννλ λ°μ΄ν°λ νμ λμΌν λ°μ΄ν°μμ 보μ¦νλ κ²μ λ§νλ€.

λ§μΌμ λ΄κ° S3μ νμΌμ λ£μλ§μ(0.01μ΄ κ°κ²©μΌλ‘) λ°λ‘ νμΌμ μ‘°νν΄ λ³΄μλ€κ³ κ°μ νμ.
S3λ νλ‘κ·Έλ¨μ΄λ νμΌμ μ λ‘λνλ μκ°(0.1μ΄ λΌκ³ κ°μ νμ)μ΄ κ±Έλ¦°λ€.
κ·Έλ¬λ©΄ λ΄κ° μ‘°νν κ²°κ³Όλ λΉ λ°μ΄ν°κ° λλ€. λΆλͺ λλ νμΌμ λ£λ λμμ λΆλͺ ν νλλ°λ λ§μ΄λ€.
μ΄κ²μ΄ "λ°μ΄ν° μΌκ΄μ±μ κ°μ§ μλλ€"λ₯Ό λ§νλ κ²μ΄λ€.
μ¦, μ΅μ μ λ΄μ©μΌλ‘ λ³κ²½ν λ΄μ©μ΄ μ¦κ°μ μΌλ‘ λ°μλμ§ μκ±°λ, μ λ°μ΄νΈ μ§ν λ°μ΄ν°λ₯Ό μ½μΌλ € ν λ λ³κ²½λ λ΄μ©μ νμΈν μ μκ² λ κ°λ₯μ±μ΄ μλ κ²μ΄λ€.
λ°λλ‘ λ΄κ° νν λμμ λν΄ λ°λμ κ²°κ³Όλ₯Ό λ΄μ€μΌ(보μ¦) νλ©΄ λ°μ΄ν° μΌκ΄μ±μ κ°μ§ κ²μ΄λ€.
S3μμλ PUT λμ(μ°κΈ° ν μ½κΈ°)μ λν΄μλ λ°μ΄ν° μΌκ΄μ±μ 보μ₯ν΄μ€λ€.
νμΌμ μ¬λ¦¬κ³ μ±κ³΅ν(200) μ¦μ μ½κΈ° κ°λ₯νλ€.
λ€λ§ κ°μ ν€μμ λμμ μ¬λ¬μ¬λμ΄ PUTμμ²μ νλ€λ©΄, λ¨Όμ putν μμ²μ΄ μ°μ κΆμ κ°κ³ μμ°¨μ μΌλ‘ ννκ² λλ€.
μ¦, λμΌ νμΌμ λν΄μ λμλ€λ°μ μΌλ‘ μμ²μ΄ μ€λ κ²½μ° μ΅μ’ νμμ€ν νλ₯Ό μ§λ μμ² μ μΌ λμ€μ μ¨ μμ²μ λ°λ₯΄κ² λλ€.
κ·Έλ¬λ λ¬Έμ λ Update / Delete λμμ΄λ€.
Update / Deleteλ λ°μ΄ν° μΌκ΄μ±μ 보μ₯ν΄ μ£Όμ§ μλλ€.
νμΌμ μμ νκ±°λ μ λ°μ΄νΈ νλ©΄, μΌμ μκ° νμ κ²°κ³Όκ° λ°μ λκ²λλ€. (κ·Έλλ΄£μ 1μ΄ λ―Έλ§)
κ·Έλμ λ΄κ° νμΌμ μ λ°μ΄νΈ νμλ λ°λ‘ λκ° μ½κ²λλ©΄ κ·Έ νμΌμ΄ μ λ°μ΄νΈκ° μλμλ μνμΌ μλ μλ€.
μλ₯Ό λ€μ΄ μμΈ μλ²μ μλ S3μ νμΌμ μ λ°μ΄νΈ νλ€. κ°μ μμΈκΆμ μλ μ¬λμ΄ νμΌμ μ½μΌλ©΄ λ¬Έμ μμ΄ μΌκ΄μ±μ 보μ₯λ°μμ μκ² μ§λ§ μλμ μΌλ‘ κ±°λ¦¬κ° λ¨Ό λΆμ° μ¬λμ΄ νμΌμ μ½μΌλ©΄ μ λ°μ΄νΈκ° μλ ꡬλ²μ Ό νμΌμ΄ μ½ν λ²λ¦΄μ μκ²λλ€.
μ΄λ₯Ό μμμ± ν보 λΆκ°λ₯μ΄λΌκ³ λ§νλ€.
μμμ±: νΈλμμ κ³Ό κ΄λ ¨λ μΌμ λͺ¨λ μ€νλλμ§ λͺ¨λ μ€νλμ§ μλλ‘ νλμ§λ₯Ό 보μ₯νλ νΉμ±
S3 μΌκ΄μ± λͺ¨λΈ
μΌκ΄μ± λͺ¨λΈ κ΄λ ¨νμ¬ λ€μκ³Ό κ°μ μμκ° μλ€.

Read after Write (λ°μ΄ν° μΌκ΄μ± 보μ₯)
- S3μμ κ°μ²΄ Xλ₯Ό createν λ€, μ¦μ μ½κΈ°(get)λ₯Ό μλν΄λ³΄μ.
β λ³κ²½ μ¬νμ΄ μ΄λ£¨μ΄μ§κ³ λμ κ°μ²΄ Xλ₯Ό λ°ννλ€.
Eventually Consistent (μ΅μ’ μΌκ΄μ±. λ°μ΄ν° μΌκ΄μ± 보μ₯ μν¨)
- S3μμ κ°μ²΄ Xλ₯Ό createνλ€ κΈ°μ‘΄μ κ°μ²΄λ₯Ό λ체(overwrite)ν λ€, μ¦μ μ½κΈ°(get)λ₯Ό μλν΄λ³΄μ.
β Old λ°μ΄ν°λ₯Ό λ°νν μλ New λ°μ΄ν°λ₯Ό λ°νν μλ μλ€. - S3μμ κ°μ²΄ Xλ₯Ό createν λ€ κΈ°μ‘΄μ κ°μ²΄λ₯Ό μμ (delete)ν λ€, μ¦μ μ½κΈ°(get)λ₯Ό μλν΄λ³΄μ.
β μμ κ° μ μμ μΌλ‘ λμ errorλ₯Ό μ£Όκ±°λ, μμ λμμ νλλ°λ νμΌμ΄ κ·Έλλ‘ μ½νμ¬μλ μλ€.
λ°μ΄ν° μΌκ΄μ±κ³Ό μ΅μ’ μΌκ΄μ±μ λ°μ΄ν°λ² μ΄μ€μμ μμ£Ό λ±μ₯νλ μ©μ΄μ΄λ€.
RDB(κ΄κ³ν λ°μ΄ν°λ² μ΄μ€)λ λμμ±μ΄λΌκ³ ν΄μ κ°μ μκ°μ μ‘°ννλ λ°μ΄ν°λ νμ λμΌν λ°μ΄ν°μμ 보μ¦νλκ±Έ κΈ°λ³ΈμΌλ‘ νλ€.
κ·Έλ°λ° NoSQLμ΄ μ°μ΄κ² λλ©΄μ λμμ±μ λ μ΄μ 보μ₯νκΈ°κ° νλ€μ΄μ‘λ€.
NoSQLμ λΆμ° λ Έλλ₯Ό μ΄μ©νμ¬ κ·Έλ₯ 무쑰건 λΉ λ₯Έ λ°μ΄ν° μ²λ¦¬κ° μ£Όλͺ©μ μ΄κΈ° λλ¬Έμ΄λ€.
κ·Έλμ λ°μ΄ν° λ³κ²½μ΄ λ°μνμ λ, μκ°μ΄ μ§λ¨μ λ°λΌ μ¬λ¬ λ Έλμ μ νλλ©΄μ λΉμ₯μ μλμ§λ§ μ΅μ’ μ μΌλ‘ μΌκ΄μ±μ΄ μ μ§λλ κ²μ μ΅μ’ μΌκ΄μ±(Eventual Consistency)μ΄λΌκ³ νλ€.
κ²°κ΅μ λμμ±μ μ 곡νμ§ μκ³ κ²°κ³Όμ μΌλ‘ μΌκ΄μ±μ κ°λ λ€λ μλ―Έμ΄λ€.
κ·Έλ¬λ―λ‘ UPDATE λ° DELETEμ λν μ΅μ’ μΌκ΄μ±μ κ°μ§λ S3λ κ°μ²΄λ₯Ό μ²μ μμ± ν κ°μ Έμ¬ μμλ μΌκ΄μ± μλ λ°μ΄ν°λ₯Ό μ 곡νλ, μμ ν κ°μ Έμ¬ μμλ μΌκ΄μ± μλ κ²°κ³Όλ₯Ό 리ν΄ν μ μλ€λ νΉμ§μ κ°μ§κ² λλ κ²μ΄λ€.
μ΄ κΈμ΄ μ’μΌμ ¨λ€λ©΄ ꡬλ & μ’μμ
μ¬λ¬λΆμ ꡬλ
κ³Ό μ’μμλ
μ μμκ² ν° νμ΄ λ©λλ€.