<aside>
</aside>
π μ±ν° μκ°
μλ
νμΈμ μ¬λ¬λΆ! π μ§λ μκ° μλ² λμμ±κ³Ό λ³λ ¬ μ²λ¦¬ μΈκ³λ₯Ό νννμ΅λλ€. λͺ¨λ μμ²μ μλ²κ° μ¦μ λͺ¨λ μμ
μλ£ ν μλ΅ν΄μΌ ν κΉμ? π€
νμκ°μ
ν νμ μ΄λ©μΌ λ°μ‘, λμμ μ
λ‘λ ν μΈμ½λ©, 볡μ‘ν 리ν¬νΈ μμ± μμ² λ±μ μκ° μμκ° ν½λλ€. μλ²κ° μ΄ μμ
μλ£κΉμ§ κΈ°λ€λ¦°λ€λ©΄, μ¬μ©μλ λ‘λ© νλ©΄λ§ λ΄μΌ ν κ±°μμ. β³ λμ°ν κ²½νμ΄μ£ !
μ΄λ² μκ°μλ μ΄λ° λ¬Έμ , μ¦ μκ°μ΄ μ€λ 걸리거λ λΉμ₯ μλ΅μ νμ μλ μμ
λ€μ λμ€μ(λ°±κ·ΈλΌμ΄λμμ) μ²λ¦¬νλ λΉλκΈ° μ²λ¦¬(Asynchronous Processing) λ°©μκ³Ό, μ΄λ₯Ό κ°λ₯μΌ νλ ν΅μ¬ κΈ°μ **λ©μμ§ ν(Message Queue)**λ₯Ό λ°°μλλ€! λ°μ 컀νΌμ μ£Όλ¬Έ(μμ²)λ§ λ°κ³ λμ€μ μ»€νΌ μ€λΉλλ©΄ μλ €μ£Όλ(μ²λ¦¬ μλ£) μμ€ν
μ²λΌ, μ¬μ©μ κ²½ν ν₯μ λ° μμ€ν
ν¨μ¨μ± μ¦λ λ§λ²μ μμλ΄
μλ€! ββ¨
π― μ±ν° λͺ©ν
- λΉλκΈ° μ²λ¦¬ νμμ±(μλ΅ μκ° κ°μ , κΈ΄ μμ
μ²λ¦¬ λ±) μ΄μ λ° κ°λ
μ€λͺ
.
- μμ²-μλ΅ μ¬μ΄ν΄ μΈ μμ
λ°±κ·ΈλΌμ΄λ μ²λ¦¬ λ°©μ μ΄μ μ΄ν΄.
- λ©μμ§ ν μ μ, λΉλκΈ° μ²λ¦¬ μν λμ μ리(νλ‘λμ/컨μλ¨Έ λͺ¨λΈ) μ€λͺ
.
- λ©μμ§ ν μ¬μ© μ μ£Όμ μ΄μ (λΉλκΈ° μ²λ¦¬, λ컀νλ§, λΆν λΆμ° λ±) μ€λͺ
.
- λν λ©μμ§ ν νλ«νΌ(RabbitMQ, Kafka, AWS SQS λ±) μ΄λ¦ λ° μν μ΄ν΄.
- (보λμ€!) μ΄λ²€νΈ κΈ°λ° μν€ν
μ²(EDA) κ΄κ³, λ©μμ§ ν vs. μ΄λ²€νΈ μ€νΈλ¦¬λ° μ°¨μ΄, λ°±κ·ΈλΌμ΄λ μμ
μ²λ¦¬κΈ°(Celery λ±), μμ
μ¬μλ/DLQ κ°λ
λ§λ³΄κΈ°.
π κ°μ λ΄μ©
1. μ λͺ¨λ μΌμ μ¦μ μ²λ¦¬ν νμλ μμκΉ? (λΉλκΈ° μ²λ¦¬μ νμμ±) π€
- μΉ μ± κΈ°λ³Έ λμ: λκΈ°(Synchronous) μ²λ¦¬ λͺ¨λΈ.
- λκΈ° μ²λ¦¬: ν΄λΌμ΄μΈνΈ μμ² β μλ² λͺ¨λ μμ
μλ£ ν ν΄λΌμ΄μΈνΈμ μλ΅. ν΄λΌμ΄μΈνΈλ μλ΅κΉμ§ λκΈ°(Blocking).