๋ฐ˜์‘ํ˜•
๋ฐฐ์น˜ ์ฒ˜๋ฆฌ 

ใƒป ์ผ์ •๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ 
ใƒป ์ผ์ •ํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ง
ใƒป ์‘๋‹ต์„ฑ๋ณด๋‹ค ์‹œ๊ฐ„๋‹น ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์šฐ์„ ์‹œํ•˜๋Š” ์ฒ˜๋ฆฌ๋ฐฉ์‹!

โฐ ์žก ์Šค์ผ€์ค„๋Ÿฌ, ์…ธ ์Šคํฌ๋ฆฝํŠธ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ฑ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐฐ์น˜์ฒ˜๋ฆฌ ์ถฉ์กฑ ์กฐ๊ฑด

ใƒป ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋กœ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
ใƒป ๊ฐ€๋Šฅํ•œ ํ•œ ์ค‘๋‹จ๋œ ์ž‘์—…์„ ๋‹ค์‹œ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
ใƒป ๋‹ค์–‘ํ•œ ์‹คํ–‰ ์กฐ๊ฑด์„ ์ง€์›ํ•ด์•ผ ํ•จ.
ใƒป ๋‹ค์–‘ํ•œ ์ž…์ถœ๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

 

์Šคํ”„๋ง ๋ฐฐ์น˜

ใƒป ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฐฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ
ใƒป ์Šคํ”„๋ง์ด ๊ฐ€์ง€๊ณ  ์žˆ๋˜ DI ์ปจํ…Œ์ด๋„ˆ, AOP, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

๐Ÿ’ฅ ์ฐธ๊ณ ๋กœ ์Šคํ”„๋ง ๋ฐฐ์น˜๋Š” ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌ ํ•˜๊ณ 
์Šคํ”„๋ง ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์Šคํ”„๋ง ๋ฐฐ์น˜๋ฅผ ์ผ์ •ํ•œ ์‹œ๊ฐ„๊ฐ„๊ฒฉ or ์ผ์ •ํ•œ ์‹œ๊ฐ„์— !!์‹คํ–‰!!์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•จ! (๋ฐฐ์น˜๋ž‘ ์Šค์ผ€์ค„๋Ÿฌ ๋‹ค๋ฆ„!!)

์Šค์ผ€์ค„๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ..
- Spring Scheduler (๋ณ„๋„์˜ ์˜์กด์„ฑ ํ•„์š”ํ•˜์ง€ ์•Š์Œ! spring boot starter ์— ๊ธฐ๋ณธ ์˜์กด์„ฑ ์ œ๊ณต๋จ)
- Spring Quartz (์˜์กด์„ฑ ์ถ”๊ฐ€ ํ•„์š”, ์Šค์ผ€์ค„๋ง์˜ ์„ธ๋ฐ€ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ• ๋•Œ ์‚ฌ์šฉ..)
๋“ฑ์ด ์กด์žฌํ•จ.

์  ํ‚จ์Šค๋กœ๋„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์Šคํ”„๋ง ๋ฐฐ์น˜ ํŠน์ง•

ใƒป Tasklet ๋ฐฉ์‹ (SQL ํ•œ๋ฒˆ ์‹คํ–‰, ๋ช…๋ น ์‹คํ–‰ ๋“ฑ ๋‹จ์ˆœ ์ฒ˜๋ฆฌ) / Chunk ๋ฐฉ์‹ ์กด์žฌํ•จ (๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ํŠธ๋žœ์žญ์…˜์€ ์Šคํ”„๋ง ๋ฐฐ์น˜๊ฐ€ ์ฒ˜๋ฆฌ)
ใƒป ๋‹ค์–‘ํ•œ ์‹คํ–‰ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. (๋ช…๋ นํ–‰ ์‹คํ–‰, ์„œ๋ธ”๋ฆฟ ์‹คํ–‰ ๋“ฑ)
ใƒป ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ์ž…์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. (ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ฉ”์„ธ์ง€ํ ๋“ฑ)
ใƒป ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‹ค์ค‘์‹คํ–‰, ๋ณ‘๋ ฌ์‹คํ–‰, ์กฐ๊ฑด๋ถ„๊ธฐ ๋“ฑ)
ใƒป Job์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. (Job์ด ์‹คํ–‰๋˜๋˜ ์ƒํ™ฉ์„ ์ €์žฅ or ์žฌ์‹œ์ž‘ ๊ฐ€๋Šฅ)

 

์Šคํ”„๋ง ๋ฐฐ์น˜ ๊ตฌ์กฐ

  • JobLauncher
    ๋ฐฐ์น˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋™ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค. ๋ชจ๋“  ๋ฐฐ์น˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ด ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์‹คํ–‰. 
    ์ธ์ˆ˜์ „๋‹ฌ ๋“ฑ๋„ ์—ฌ๊ธฐ์„œ ์ฒ˜๋ฆฌ!

  • Job
    ๋ฐฐ์น˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ผ๋ จ์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋งŒ๋“  ์‹คํ–‰ ๋‹จ์œ„

  • Step
    ์žก์„ ๊ตฌ์„ฑํ•˜๋Š” ์„ธ๋ถ€ ์ฒ˜๋ฆฌ ๋‹จ์œ„. ํ•˜๋‚˜์˜ Job์€ N๊ฐœ์˜ Step์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.
    ํ•˜๋‚˜์˜ Job ์ฒ˜๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ Step์œผ๋กœ ๋ถ„ํ• ํ•˜๋ฉด ์„ธ๋ถ€ ์ฒ˜๋ฆฌ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์กฐ๊ฑด ๋ถ„๊ธฐ์— ๋”ฐ๋ฅธ ์ œ์–ด๋„ ํ• ์ˆ˜์žˆ๋‹ค.
    Chunk๋ฐฉ์‹์ด๋‚˜ Step๋ฐฉ์‹ ์ค‘ ํ•œ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ์‹คํ–‰๋จ.

  • ItemReader, ItemProcessor, ItemWriter
    Step์„ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ, ๊ฐ€๊ณต, ์ถœ๋ ฅ์˜ ์„ธ๊ฐ€์ง€ ํŒจํ„ด ์ฒ˜๋ฆฌ๋กœ ๋ถ„ํ• ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค
    Chunk๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•  ๋•Œ ์ด ์„ธ๊ฐ€์ง€ ํŒจํ„ด์„ ํ™œ์šฉํ•จ.

  • JobRepository
    Job or Step ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•จ. ์ด๋Ÿฌํ•œ ์ •๋ณด๋Š” ์Šคํ”„๋ง ๋ฐฐ์น˜๊ฐ€ ์ •์˜ํ•œ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋จ.

 

์Šคํ”„๋ง ๋ฐฐ์น˜ ์•„ํ‚คํ…์ฒ˜

 

 


์ฐธ๊ณ 

https://terasoluna-batch.github.io/guideline/5.0.0.RELEASE/en/Ch02_SpringBatchArchitecture.html

 

Spring Batch Architecture

Spring Batch architecture acting as a base for TERASOLUNA Server Framework for Java (5.x) is explained. What is Spring Batch Spring Batch, as the name implies is a batch application framework. Following functions are offered based on DI container of Spring

terasoluna-batch.github.io

https://sabarada.tistory.com/113

 

[Spring] Scheduler ์–ด๋–ค๊ฑธ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ ? - Spring Scheduler์™€ Spring Quartz

์ผ์ •ํ•œ ์‹œ๊ฐ„๊ฐ„๊ฒฉ ๋˜๋Š” ์ผ์ •ํ•œ ์‹œ๊ฐ์— ํŠน์ • ๋กœ์ง์„ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ Scheduler๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ Scheduler๋Š” Spring์—์„œ Spring Scheduler์™€ Spring Quartz๋ผ๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. 1๊ฐ€์ง€ ์ผ

sabarada.tistory.com

https://blog.junu.dev/34

 

[์šฐ์•„ํ•œํ…Œํฌ์„ธ๋ฏธ๋‚˜] ์šฐ์•„ํ•œ ์Šคํ”„๋ง ๋ฐฐ์น˜ ํ›„๊ธฐ

์šฐ์•„ํ•œ ์Šคํ”„๋ง ๋ฐฐ์น˜ ์ง€๋‚œ๋‹ฌ์— ์ด์–ด์„œ ์šด ์ข‹๊ฒŒ9์›” ์šฐ์•„ํ•œ ํ…Œํฌ ์„ธ๋ฏธ๋‚˜์—๋„ ๋‹น์ฒจ๋˜์–ด ์„ธ๋ฏธ๋‚˜์— ๋‹ค๋…€์™”์Šต๋‹ˆ๋‹ค. ์ทจ์—…์ค€๋น„๋ฅผ ํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์€ ๋„์›€์„ ๋ฐ›์€ ๋ธ”๋กœ๊ทธ ์ด๊ธฐ๋„ ํ•˜๊ณ , ํ˜„์žฌ ์ œ๊ฐ€ ๋‹ค๋‹ˆ๋Š” ํšŒ

blog.junu.dev

https://jojoldu.tistory.com/325?category=902551 

 

2. Spring Batch ๊ฐ€์ด๋“œ - Batch Job ์‹คํ–‰ํ•ด๋ณด๊ธฐ

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ฐ„๋‹จํ•œ Spring Batch Job์„ ์ƒ์„ฑ & ์‹คํ–‰ํ•˜๋ฉด์„œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž‘์—…ํ•œ ๋ชจ๋“  ์ฝ”๋“œ๋Š” Github์— ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 2-1. Spring Batch ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ ๊ธฐ๋ณธ์ ์ธ

jojoldu.tistory.com

์ฑ… ์Šคํ”„๋ง ์ฒ ์ € ์ž…๋ฌธ 

๋ฐ˜์‘ํ˜•

+ Recent posts