Non-Reactive(비반응적) vs. Reactive(반응적): 우유 공장 예제
2024. 11. 21. 12:23ㆍProject Reactor
비반응적(Non-Reactive) vs. 반응적(Reactive): 우유 공장 예제
1. Non-Reactive 접근법: "Batch Processing (일괄 처리)"
- 무슨 일이 벌어지는가:
- 공장은 아침에 모든 우유가 도착할 때까지 기다립니다.
- 모든 우유가 모이면, 그때서야 포장 작업을 시작합니다.
- 포장 작업이 끝난 후(저녁쯤), 모든 우유 상자를 고객에게 한 번에 배달합니다.
- 핵심 아이디어:
- 작업은 특정 시간(아침에 수집, 저녁에 배달)에 큰 묶음(batch) 단위로 진행됩니다.
- 공장은 모든 것이 준비될 때까지 작업을 시작하지 않기 때문에 지연이 발생합니다.
- 비유:
- 쿠키를 구운다고 상상해보세요. 모든 재료가 준비될 때까지 기다렸다가 한 번에 큰 묶음으로 쿠키를 굽는 방식입니다.
2. Reactive 접근법: "Continuous Processing (연속 처리)"
- 무슨 일이 벌어지는가:
- 공장은 일부 우유라도 도착하면 즉시 포장 작업을 시작합니다.
- 포장된 우유는 즉시 고객에게 배달됩니다.
- 이 과정이 하루 종일 반복되어, 우유가 더 빠르게 고객에게 도달합니다.
- 핵심 아이디어:
- 작업은 작은 단위로 이루어지며, 모든 것을 기다리지 않고 입력(input)이 들어오는 즉시 시작됩니다.
- 비유:
- 쿠키를 구운다고 상상해보세요. 도우(dough)가 트레이 한 판 분량만 준비되면 즉시 구워내는 방식입니다.
왜 Reactive 접근법이 우유 공장에 더 적합한가?
- 더 빠른 배달:
- Reactive 접근법에서는 하루 종일 우유가 고객에게 배달되기 때문에, 더 신선한 우유가 더 빨리 도착합니다.
- Non-Reactive 접근법에서는 고객이 저녁까지 기다려야 합니다.
- 연속적 작업 흐름:
- 공장은 모든 우유가 도착할 때까지 기다릴 필요가 없습니다. 대신, 우유가 도착하는 즉시 처리 및 배달할 수 있습니다.
- 자원 활용 효율성:
- 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 |