- ๋ฐ์ดํ„ฐ(Data) ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๋น„๊ต -

| | Batch-Processing | Real-Time | Stream-Processing | | --- | --- | --- | --- | | ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์‹œ๊ฐ„ | ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ์ผ๊ด„ ์ฒ˜๋ฆฌํ•จ | ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์‘์ด ์ผ์–ด๋‚จ ์š”์ฒญ์ด ์ผ์–ด๋‚˜๋ฉด ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•จ | ์ค€์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์‘์ด ์ผ์–ด๋‚จ | | ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰ | ์ •ํ•ด์ง„ ๋•Œ์— ์ •ํ•ด์ง„ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ โ€จํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•จ | ์š”์ฒญ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•จ | Stream์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ฒ˜๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ•จ | | ๊ตฌํ˜„ ํŠน์ง• | ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด โ€จRunningํ•˜๋„๋ก ๊ตฌํ˜„ํ•จ | Web Container์—์„œ ๋™์ž‘ํ•˜๋„๋ก ๊ตฌํ˜„ํ•จ | ์ œ 3์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œโ€จ (Kafka, RabbitMQ ๋“ฑ) | | ๋‹จ์  | ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ์ด ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ์— ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›€, ์ฒ˜๋ฆฌ๊ฐ€ ํŠน์ •ํ•œ ์‹œ๊ฐ„์— ์ง‘์ค‘ | ๋™์‹œ์— ๋งŽ์€ ์š”์ฒญ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€์ฒ˜๊ฐ€ ์–ด๋ ค์›€ | Stream์˜ input๊ณผ output์˜ flow๋ฅผ ์ปจํŠธ๋กค ํ•˜๊ธฐ ์–ด๋ ค์›€. ์ œ 3์˜ ๋„๊ตฌ์™€ ๋‹ค์ˆ˜์˜ stream์œผ๋กœ ์ธํ•ด fail ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›€ |

1) ํฌ์ธํŠธ ๊ด€๋ฆฌ - Batch Processing..

2) Spring Batch๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

โ€” SpringBatch์˜ ํŠน์ง• โ€”

  1. ๊ฐ€๋ณ๊ณ  ํฌ๊ด„์ ์ธ ๋ฐฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ
  2. ๋กœ๊น…, ์ถ”์ , ํŠธ๋žœ์žญ์…˜๊ด€๋ฆฌ, ์ž‘์—…์ฒ˜๋ฆฌํ†ต๊ณ„, ์žฌ์‹œ์ž‘, ๊ฑด๋„ˆ๋›ฐ๊ธฐ, ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋“ฑ ๋Œ€๋Ÿ‰์˜ ๋ ˆ์ฝ”๋“œ ์ฒ˜๋ฆฌ์— ํ•„์ˆ˜์ ์ธ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  3. ์ตœ์ ํ™”, ํŒŒํ‹ฐ์…”๋‹ ๊ธฐ์ˆ ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๊ณ ์„ฑ๋Šฅ ๋ฐฐ์น˜ ์ž‘์—… ๊ฐ€๋Šฅ
  4. ํ™•์žฅ์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚จ

โ€” ํฌ์ธํŠธ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ Spring Batch๋กœ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? โ€”

ํฌ์ธํŠธ๋ฅผ ์ ๋ฆฝ, ๋งŒ๋ฃŒํ•˜๋Š” ๊ณผ์ •์ด ํŠน์ • ์ผ์ž ๊ธฐ์ค€์— ๋ชฐ์•„์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ•„์š”