Non-Reactive(비반응적) vs. Reactive(반응적): 우유 공장 예제

2024. 11. 21. 12:23Project Reactor

비반응적(Non-Reactive) vs. 반응적(Reactive): 우유 공장 예제

 

1. Non-Reactive 접근법: "Batch Processing (일괄 처리)"

  • 무슨 일이 벌어지는가:
    • 공장은 아침에 모든 우유가 도착할 때까지 기다립니다.
    • 모든 우유가 모이면, 그때서야 포장 작업을 시작합니다.
    • 포장 작업이 끝난 후(저녁쯤), 모든 우유 상자를 고객에게 한 번에 배달합니다.
  • 핵심 아이디어:
    • 작업은 특정 시간(아침에 수집, 저녁에 배달)에 큰 묶음(batch) 단위로 진행됩니다.
    • 공장은 모든 것이 준비될 때까지 작업을 시작하지 않기 때문에 지연이 발생합니다.
  • 비유:
    • 쿠키를 구운다고 상상해보세요. 모든 재료가 준비될 때까지 기다렸다가 한 번에 큰 묶음으로 쿠키를 굽는 방식입니다.

 

2. Reactive 접근법: "Continuous Processing (연속 처리)"

  • 무슨 일이 벌어지는가:
    • 공장은 일부 우유라도 도착하면 즉시 포장 작업을 시작합니다.
    • 포장된 우유는 즉시 고객에게 배달됩니다.
    • 이 과정이 하루 종일 반복되어, 우유가 더 빠르게 고객에게 도달합니다.
  • 핵심 아이디어:
    • 작업은 작은 단위로 이루어지며, 모든 것을 기다리지 않고 입력(input)이 들어오는 즉시 시작됩니다.
  • 비유:
    • 쿠키를 구운다고 상상해보세요. 도우(dough)가 트레이 한 판 분량만 준비되면 즉시 구워내는 방식입니다.

 

왜 Reactive 접근법이 우유 공장에 더 적합한가?

  1. 더 빠른 배달:
    • Reactive 접근법에서는 하루 종일 우유가 고객에게 배달되기 때문에, 더 신선한 우유더 빨리 도착합니다.
    • Non-Reactive 접근법에서는 고객이 저녁까지 기다려야 합니다.
  2. 연속적 작업 흐름:
    • 공장은 모든 우유가 도착할 때까지 기다릴 필요가 없습니다. 대신, 우유가 도착하는 즉시 처리 및 배달할 수 있습니다.
  3. 자원 활용 효율성:
    • Reactive 접근법에서는 기계와 인력을 하루 종일 효율적으로 활용할 수 있습니다.

 

핵심 요약

  • Non-Reactive (Batch): 모든 입력(input)을 기다림 → 한 번에 처리 → 한 번에 배달.
  • Reactive (Continuous): 입력이 들어오는 즉시 처리 → 바로바로 배달.
  • Reactive의 장점:
    • 더 빠른 결과, 더 신선한 품질, 그리고 더 효율적인 자원 활용!

'Project Reactor' 카테고리의 다른 글

How to read marble diagrams?  (0) 2024.11.20
Reactive Streams  (0) 2024.11.17