μ€νλ§λΆνΈλ‘ ꡬννλ μΏ ν° μμ€ν (λμμ± μ΄μλ₯Ό κ³λ€μΈ)
Note
λκ΄μ λ½(Optimistic Lock), λΉκ΄μ λ½(Pessimistic Lock), λΆμ° λ½(Distributed Lock)μ νμ©νμ¬
μΏ ν° μμ€ν μμ λ°μν μ μλ λμμ± λ¬Έμ λ₯Ό ν΄κ²°νλ€.
- νΈμμ κ³Όμ μ ν΄λ‘ μ΄ 100μ₯μ μΏ ν°μ λ°κΈνλ€.
- μΏ ν° μ½λλ 10μ리μ λλ€ν μλμλ¬Έμμ μ«μλ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ΄λ€.
- μ¬μ©μλ μ μ°©μμΌλ‘ μΏ ν°μ λ°κΈλ°μ μ μλ€.
- μ΄λ―Έ μΏ ν°μ λ°κΈλ°μ μ¬μ©μκ° λ€μ λ°κΈμ μλνλ©΄ κΈ°μ‘΄μ μΏ ν° μ½λλ₯Ό λ°ννλ€.
- 100μ₯μ μΏ ν°μ΄ λͺ¨λ μμ§λλ©΄, μλ‘μ΄ μΏ ν° λ°κΈ μμ²μ HTTP 404 μλ΅μ λ°ννλ€.
- μΏ ν° λ°κΈ μ ν리μΌμ΄μ μ λΆμ° νκ²½μμ μλνλ€.
- 200λͺ
μ μ¬μ©μκ° λμμ μμ²νλ©΄, 100κ° μ΄μμ μΏ ν°μ΄ λ°κΈλ κ°λ₯μ±μ΄ μλ€.
- μΏ ν° λ°κΈ κ³Όμ μ λ€μκ³Ό κ°λ€:
- μΏ ν°μ λ¨μ κ°μλ₯Ό μ‘°ννλ€.
- λ¨μ κ°μκ° 1κ° μ΄μμ΄λ©΄, μΏ ν°μ λ°κΈνλ€.
- νμ§λ§ 200λͺ μ μ¬μ©μκ° λμμ μΏ ν°μ λ¨μ κ°μλ₯Ό μ‘°ννλ©΄, λͺ¨λ μμ²μ΄ λ¨μ κ°μλ₯Ό 100κ°λ‘ μΈμνμ¬ μ΄κ³Ό λ°κΈμ΄ λ°μν μ μλ€.
- μΏ ν° λ°κΈ κ³Όμ μ λ€μκ³Ό κ°λ€:
- μ¬μ©μκ° μΏ ν°μ λ°κΈλ°μλμ§ νμΈνκΈ° μν΄ λ§€λ² λ°μ΄ν°λ² μ΄μ€ μ‘°ν 쿼리λ₯Ό λ°μμν€λ©΄, λ°μ΄ν°λ² μ΄μ€μ κ³ΌλΆνκ° λ°μν μ μλ€.
- λκ΄μ λ½(Optimistic Lock) μ μ©
- λΉκ΄μ λ½(Pessimistic Lock) μ μ©
- λΆμ° λ½(Distributed Lock) μ μ©
- μ¬μ©μμ μΏ ν° λ°κΈ μ 보λ₯Ό
Redisμ μΊμ±νμ¬, λ°μ΄ν°λ² μ΄μ€μ λΆλ΄μ μ€μΈλ€.
- λμμ± λ¬Έμ ν΄κ²°: λκ΄μ /λΉκ΄μ /λΆμ° λ½μ μ μ©νμ¬ μ΄κ³Ό λ°κΈμ λ°©μ§νλ€.
- μ±λ₯ μ΅μ ν: Redis μΊμ± νμ©μΌλ‘ λ°μ΄ν°λ² μ΄μ€ λΆνλ₯Ό μ€μΈλ€.
- νμ₯μ± κ³ λ €: λΆμ° νκ²½μμλ μμ μ μΌλ‘ μΏ ν° λ°κΈμ΄ κ°λ₯νλλ‘ μ€κ³νλ€.