π μ€λμ μ΄λ€ ν루μμ§..
μ 체μ μΌλ‘ ꡬνν λ΄μ©λ€μ λν΄ κ³ λνλ₯Ό μ§ννλ€!
μ°μ Slack μλ¦Όμ΄ νμν κ³³μ μΆκ°μ μΌλ‘ μλ¦Ό λ©μμ§κ° μ μ‘λ μ μλλ‘ κ΅¬ννλ€.
μ²μμλ λ¨μν μΆκ³ λμμ λμ λ°°μ‘ μνκ° λ³κ²½λμμ λλ λκ°μ΄ Slack μλ¦Όμ΄ μ¨λ€λ©΄ νΈν κ²μ΄λΌκ³ μκ°νλ€.
νμ§λ§ μ¬λμ κ°λ°μλ€μ΄ λ§μ΄ μ¬μ©νλ μ±μ΄μκ³ , μ¬μ©μλ€μ΄ μ¬λμ μ¬μ©νμ§λ μκΈ° λλ¬Έμ νμ€μ±μ΄ λ§μ΄ λ¨μ΄μ§λ μλ¦Όμ΄μλ€..
κ·Έλμ μ΄λ»κ² μλ¦Ό λ©μμ§λ₯Ό 보λ΄μ£Όλ κ²μ΄ μ’μκΉ? μκ°νκ³ , λ¬Έμ λ©μμ§/μΉ΄μΉ΄μ€ν‘/μ΄λ©μΌμ μκ°ν μ μμλ€.
κ·Έμ€μμ λ¬Έμ λ©μμ§λ μ λ£ μλΉμ€λΌλ κ²μ νμΈνκ³ , μ΄λ©μΌκ³Ό μΉ΄μΉ΄μ€ν‘ μ€ μ¬μ©μλ€μ΄ λ λ§μ΄ μ¬μ©νλ κ²μ μκ°ν΄ λ΄€λ€. μ°λ¦¬λλΌ μ¬λλ€μ μΉ΄μΉ΄μ€ν‘μ ν¨μ¬ λ λ§μ΄ μ¬μ©νκ³ μμλ€.
κ·Έλμ κ²°λ‘ μ μΌλ‘ μΉ΄μΉ΄μ€ν‘μΌλ‘ μΆκ³ , λ°°μ‘μ€, λ°°μ‘μλ£ λ©μμ§λ₯Ό 보λ΄μ£Όλ©΄ μ’μ§ μμκΉ λΌλ μκ°μ νκ² λμλ€.
κ·Έλ€μμΌλ‘ νμμκ² νΌλλ°±μ λ°κ² λμλ€.
νμ¬ μ¬κ³ κ°μ λ‘μ§μ΄ μ£Όλ¬Έ μμ± ν ν½ μμ μμΉνκ³ μλλ° λ°λ‘ λΊ΄λ κ²μ΄ λ λμ 보μΈλ€λ μ견μ΄μλ€. KafkaListenerλ₯Ό μ¬λ¬ κ° μ¬μ©ν΄λ λ¬Έμ μμΌλκΉ λ°λ‘ λΉΌμ κ΄λ¦¬νλ κ²μ΄ μ’μ κ² κ°λ€λ μ견μ λ°μλ€.
λν νμ¬ κ΅¬νν λ‘μ§μ λ¬Έμ μ μ΄ μμλ€.
κ°μ μ£Όλ¬Έμ λν΄ λ°°μ‘μ΄ μ¬λ¬λ² μμ±λ μ μλ€λ κ²μ΄μλ€. μ΄κ²μ λ°©μ§νκΈ° μν΄μλ orderIdμ λν΄μ μ€λ³΅μ΄ μ΄λ£¨μ΄μ§μ§ μκ² μ νν΄μΌ νλ€!
DeliveryRepositoryμμ μ£Όλ¬Έλ²νΈκ° λμΌν Deliveryλ μμ±ν μ μλλ‘ μ νν΄μΌ νλ€.
// ν΄λΉ μ£Όλ¬Έμ λν λ°°μ‘μ΄ μ‘΄μ¬ν κ²½μ° μμΈ μ²λ¦¬
if (deliveryRepository.existsByOrderId(request.orderId())) {
slackNotifier.sendDeliveryCreateFailureAlert(
request.orderId(),
"DELIVERY_ALREADY_EXISTS",
"IDκ° " + request.orderId() + "μΈ μ£Όλ¬Έμ λν λ°°μ‘μ΄ μ΄λ―Έ μ‘΄μ¬νμ¬ λ°°μ‘ μμ±μ μ€ν¨νμ΅λλ€.");
throw new ConflictException(ErrorCode.DELIVERY_ALREADY_EXISTS);
}
ν΄λΉ λ‘μ§μ μΆκ°νκ³ κ²°κ³Όμ μΌλ‘ λμΌν μ£Όλ¬Έ λ²νΈμ λν΄ λ°°μ‘μ μμ±νλ €κ³ νλ κ²½μ°
λ€μκ³Ό κ°μ΄ μλ¦Ό λ©μμ§κ° μ€κ² λμλ€!
λ€μ λ¬Έμ μ μ μ¬κ³ κ°μ → λ°°μ‘ μμ± νλ¦μΌλ‘ μ΄μ΄μ§κ³ μλλ° λ°°μ‘ μμ±μ΄ μ€ν¨ν κ²½μ° μ¬κ³ λ κ°μκ° λκ³ λ°°μ‘μ μλ μν©μ΄ λ°μνκ² λλ€.
κ·ΈλΌ μ¬κ³ λ§ μ€μ΄λ€κ² λκ³ λ°°μ‘μ μμ±λμ§ μλ νΌλμ΄ λ°μνλ€.
μ΄ μν©μ λ§κΈ° μν΄μλ λ°°μ‘ μμ±μ΄ μ€ν¨νμ κ²½μ° μ¬κ³ λ₯Ό λλ리λ λ‘μ§μ΄ νμνλ€.
μ¬κ³ κ°μ → λ°°μ‘ μ€ν¨ → μ¬κ³ 볡μ νλ¦μΌλ‘ ν΄κ²°ν μ μλλ‘ νλ κ²μ΄ λ² μ€νΈλΌκ³ μκ°νλ€.
κ·Έλ λ€λ©΄ μ¬κ³ 볡μμ μ΄λ»κ² μ§ννλ κ²μ΄ μ’μκΉ μκ°ν΄ λ΄€λ€.
λκ°μ΄ Kafkaλ₯Ό νμ©νμ¬ λΉλκΈ°λ‘ μ²λ¦¬νλ κ²μ΄ μ’λ€κ³ μκ°νλ€. μ€ν¨νμ κ²½μ° μ¬κ³ 볡μ λ©μμ§λ₯Ό 보λ΄κ³ Listenerκ° λ°μμ μ²λ¦¬ν μ μλλ‘ νλ κ²μ΄ μμ°μ€λ¬μ΄ νλ¦μ΄λΌκ³ μκ°νλ€.
μ΄λ κ² λ¬Έμ μ μ λν΄ ν΄κ²°μ± μ μκ°νλ€κ° νλ£¨κ° λ€ μ§λκ°λ²λ Έλ€ γ γ ..
ποΈ λ΄μΌμ λ νμ§?!
βοΈ μ¬κ³ 볡μ λ‘μ§ κ΅¬ννκΈ°
βοΈ μΉ΄μΉ΄μ€ν‘ μλ¦Ό λ©μμ§ κ΅¬ννκΈ°
βοΈ TIL μμ±νκΈ°