๊ฐ•์˜

๋ฉ˜ํ† ๋ง

๋กœ๋“œ๋งต

์ธํ”„๋Ÿฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์งˆ๋ฌธ&๋‹ต๋ณ€

wndgks49๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
wndgks49

์ž‘์„ฑํ•œ ์งˆ๋ฌธ์ˆ˜

์ฃฝ์Œ์˜ Spring Batch: ์ƒˆ๋ฒฝ 3์‹œ์˜ ์ฒ˜์ ˆํ•œ ๊ณตํฌ๋Š” ์ด์ œ ๋์ด๋‹ค.

2์žฅ. ์ž‘์ „1: FlatFileItemReader (์‹œ์Šคํ…œ์˜ ๋งˆ์ง€๋ง‰ ๊ธฐ๋ก์„ ์ฝ์–ด๋‚ด๋‹ค โ˜ ๏ธ)

[๐Ÿ”ฅ์‘๊ธ‰๐Ÿ”ฅ] ๋ฏธ์Šคํ„ฐ KILL-9 ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ๊ถ๊ธˆํ•œ๊ฒŒ ์žˆ๋‹ค!

์ž‘์„ฑ

ยท

22

ยท

์ˆ˜์ •๋จ

1

์•ž์„  ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€ ๊ณ ๋ง™๋‹ค ๋ฏธ์Šคํ„ฐ KILL-9

๋•๋ถ„์— ์†์‰ฝ๊ฒŒ ์—‘์…€์„ ์ฒ˜ํ˜•(์ฒ˜๋ฆฌ)ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€

 

ํ•˜์ง€๋งŒ ๊ทธ ๋‹ค์Œ ๊ด€๋ฌธ์ด ์กด์žฌํ•˜๋Š”๊ตฐ ํ›„ํ›„..

๊ฐ STEP ๋งˆ๋‹ค RepeatStatus ์— ๋”ฐ๋ผ์„œ ํŠธ๋žœ์žญ์…˜์ด ๋ณด์žฅํ•˜๋Š”๊ฑด ์ดํ•ดํ–ˆ๋‹ค

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ ์žฌ ์‹œ

ํŠธ๋žœ์žญ์…˜์„ ์–ด๋–ป๊ฒŒ ๋ณด์žฅํ• ์ง€ ๊ฐ์ด ์•ˆ์˜จ๋‹ค ๋ฏธ์Šคํ„ฐ KILL-9

 

์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜์ง€..

FILE-A, FILE-B ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ปฌ๋Ÿผ์„ ๊ฐ€์ง„ ํŒŒ์ผ๋“ค์ด์ง€

FILE-A๋Š” TABLE-A์— ์ ์žฌํ•˜๊ณ 

FILE-B๋Š” TABLE-B์— ์ ์žฌํ•œ๋‹ค

๊ฐ FILE ๋‹น ROW 100๊ฐœ์”ฉ ์ฝ์œผ๋ฉด์„œ ์ ์žฌํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ•ด๋‹น 100๊ฑด๋งŒ ๋กค๋ฐฑํ• ํ…๋ฐ

๋ฌธ์ œ๋Š” TABLE-A ์™€ TABLE-B์˜ ๊ด€๊ณ„๋‹ค

TABLE-A ๊ฐ€ ๋ถ€๋ชจ๊ณ  TABLE-B์ž ์ž์‹ ํ…Œ์ด๋ธ”์ธ ์ƒํ™ฉ์—์„œ

ํŠน์ • TABLE-B ๋ฐ์ดํ„ฐ ๋กค๋ฐฑ ์‹œ TABLE-A ๋ฐ์ดํ„ฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋กค๋ฐฑ ํ•ด์•ผํ• ๊ฑฐ ๊ฐ™์€๋ฐ

์ด๋Ÿฐ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์›์ž์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€์— ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€..?

 

ํ˜„์žฌ ๋‚ด๊ฐ€ ๋– ์˜ค๋ฅธ ๋ฐฉ์•ˆ์€

๊ฒฐ๊ตญ์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์ด๋‹ˆ

ํŠน์ • ๋ถ€๋ถ„ ์ฒ˜๋ฆฌ ์‹คํŒจํ•˜๋ฉด

๋ฐ๋“œ DLQ (Dead Letter Queue)

์— ๋‹ด์•„์„œ ๋‚˜์ค‘์— ์ฒ˜ํ˜•(์ฒ˜๋ฆฌ)ํ•˜๋„๋ก ํ•ด์•ผํ•˜๋‚˜ ์‹ถ๋‹ค!

 

๋‹ต๋ณ€ 1

1

KILL-9๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
KILL-9
์ง€์‹๊ณต์œ ์ž

๋˜ ๋ณด๋Š”๊ตฐ ๋ฏธ์Šคํ„ฐ ์ค‘ํ•œ ๐Ÿ’€
ํ‚ฌ๊ตฌ ์ดค์ ํ™” ๋ง์ฟ  ๋ง˜์— ๋“ ๋‹ค.

์šฐ์„  ๋„ˆ์˜ ๊ฑฑ์ •์ด ๋ฌด์—‡์ธ์ง€๋Š” ์ดํ•ดํ–ˆ๋‹ค. 
**ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค.**

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
 Spring Batch์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ดํ•ดํ•˜๋ฉด ๋‹ต์€ ๊ฐ„๋‹จํ•˜๋‹ค
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Job์€ Step๋“ค์„ **์ˆœ์ฐจ์ ์œผ๋กœ** ์‹คํ–‰ํ•œ๋‹ค.
์ด์ „ Step์ด ์‹คํŒจํ•˜๋ฉด? ๋‹ค์Œ Step์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.



```
Job
โ”œโ”€ Step A (FILE-A โ†’ TABLE-A)  
โ”‚   โ””โ”€ Status: FAILED โ† ์—ฌ๊ธฐ์„œ ํ„ฐ์ง€๋ฉด
โ”‚
โ””โ”€ Step B (FILE-B โ†’ TABLE-B)  
    โ””โ”€ ์‹คํ–‰ ์•ˆ ๋จ (STOPPED)
```

**๋„ˆ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค:**
1. Step A๊ฐ€ TABLE-A์— ๋ฐ์ดํ„ฐ ์ ์žฌ ์ค‘ ์‹คํŒจ
2. Step A๋Š” FAILED ์ƒํƒœ๋กœ ์ข…๋ฃŒ
3. Step B๋Š”? ์•„์˜ˆ ์‹œ์ž‘์กฐ์ฐจ ์•ˆ ํ•œ๋‹ค

**๋”ฐ๋ผ์„œ:**
TABLE-A์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š”๋ฐ TABLE-B์— ์ ์žฌ๋ฅผ ์‹œ๋„ํ•˜๋Š” ์ƒํ™ฉ ์ž์ฒด๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ•ด๊ฒฐ์ฑ…: ๊ทธ๋ƒฅ Step ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆ ๋ผ
Step A๊ฐ€ ์„ฑ๊ณตํ•ด์•ผ๋งŒ Step B๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

> ./spring_batch_trust_the_framework.sh
> kill -9 unnecessary_worries

KILL-9
wndgks49๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
wndgks49
์งˆ๋ฌธ์ž

๋‹ต๋ณ€ ๊ณ ๋ง™๋‹ค ๋ฏธ์Šคํ„ฐ KILL-9

๋‚˜๋Š” ๋งˆ์ € ๋ฐฐ์น˜์ž‘์—…์„ ์ฒ˜ํ˜•(์ฒ˜๋ฆฌ) ํ•˜๋Ÿฌ ๊ฐ€๋„๋ก ํ•˜์ง€ ๐Ÿ’€

๐Ÿ’€ KILL-9 squad member ๋“œ๋ฆผ ๐Ÿ’€

KILL-9๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
KILL-9
์ง€์‹๊ณต์œ ์ž

    _____ ____        _    _   _ _____    _    ____  
  / ___/ / __ \      / \  | | | | ____|  / \  |  _ \ 
 | |  _ | |  | |    / _ \ | |_| |  _|   / _ \ | | | |
 | |_| || |__| |   / ___ \|  _  | |___ / ___ \| |_| |
  \____| \____/   /_/   \_\_| |_|_____/_/   \_\____/ 
                                                      
  _  _____ _     _          ___  
 | |/ /_ _| |   | |        / _ \ 
 | ' / | || |   | |  _____| (_) |
 |  <  | || |___| |_|______\__, |
 |_|\_\___|_____|_____|      /_/ 
                                 
  ____   ___  _   _    _    ____  
 / ___| / _ \| | | |  / \  |  _ \ 
 \___ \| | | | | | | / _ \ | | | |
  ___) | |_| | |_| |/ ___ \| |_| |
 |____/ \__\_\\___//_/   \_\____/
wndgks49๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
wndgks49

์ž‘์„ฑํ•œ ์งˆ๋ฌธ์ˆ˜

์งˆ๋ฌธํ•˜๊ธฐ