[spring batch] μŠ€ν”„λ§ λ°°μΉ˜μ™€ μŠ€μΌ€μ€„λŸ¬μ˜ 차이

μŠ€ν”„λ§ 배치 λž€?

μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš© 없이 μ—¬λŸ¬ 개의 μž‘μ—…μ„ 미리 정해진 μˆœμ„œμ— 따라 쀑단 없이 μ²˜λ¦¬ν•˜λŠ” 것이닀. 

 

Spring BatchλŠ” μ—”ν„°ν”„λΌμ΄μ¦ˆ μ‹œμŠ€ν…œμ˜ μš΄μ˜μ— μžˆμ–΄ λŒ€μš©λŸ‰ μΌκ΄„μ²˜λ¦¬μ˜ 편의λ₯Ό μœ„ν•΄ μ„€κ³„λœ 가볍고 포괄적인 배치 ν”„λ ˆμž„μ›Œν¬λ‹€. Spring의 νŠΉμ„±μ„ κ·ΈλŒ€λ‘œ κ°€μ Έμ™”κΈ° λ•Œλ¬Έμ— DI, AOP, μ„œλΉ„μŠ€ 좔상화 λ“± Spring ν”„λ ˆμž„μ›Œν¬μ˜ 3λŒ€ μš”μ†Œλ₯Ό λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆλ‹€.

 

μŠ€ν”„λ§ 배치λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°λŠ” λ‹€μŒκ³Ό κ°™λ‹€

  • λŒ€μš©λŸ‰μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ°μ΄ν„°λ₯Ό λ³΅μž‘ν•œ μž‘μ—…μœΌλ‘œ μ²˜λ¦¬ν•΄μ•Όν•˜λŠ” κ²½μš° 
  • νŠΉμ •ν•œ μ‹œμ μ—μ„œ μŠ€μΌ€μ₯΄λŸ¬λ₯Ό ν†΅ν•΄ μžλ™ν™”λœ μž‘업이 ν•„μš”ν•œ κ²½μš° 
  • λŒ€μš©λŸ‰ λ°μ΄ν„°μ˜ ν¬λ§·μ„ λ³€κ²½, μœ νš¨μ„± κ²€μ‚¬ λ“±μ˜ μž‘업을 νŠΈλžœμž­μ…˜ μ•ˆμ—μ„œ μ²˜λ¦¬ ν›„ κΈ°λ‘ν•΄μ•Όν•˜λŠ” κ²½μš°

 

μŠ€ν”„λ§ 배치의 만쑱 쑰건

λŒ€μš©λŸ‰ λ°μ΄ν„° : λŒ€λŸ‰μ˜ λ°μ΄ν„°λ₯Ό κ°€μ Έμ˜€κ±°λ‚˜, μ „달, κ³„μ‚° λ“±μ˜ μ²˜λ¦¬λ₯Ό ν•  μˆ˜ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 

μžλ™ν™” : μ‹¬κ°ν•œ λ¬Έμ œ ν•΄κ²°μ„ μ œμ™Έν•˜κ³ λŠ” μ‚¬μš©μžκ°€ κ°œμž… μ—†μ΄ μ‹€ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 

견고성 : μž˜λͺ»λœ λ°μ΄ν„°λ₯Ό μΆ©λŒ/쀑단 μ—†μ΄ μ²˜λ¦¬ν•  μˆ˜ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 

μ‹ λ’°μ„± : λ¬΄μ—‡μ΄ μž˜λͺ»λ˜μ—ˆλŠ”지λ₯Ό μΆ”적할 μˆ˜ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.(λ‘œκΉ…, μ•Œλ¦Ό) 

μ„±λŠ₯ : μ§€μ •ν•œ μ‹œκ°„ μ•ˆμ— μ²˜λ¦¬λ₯Ό μ™„λ£Œν•˜κ±°λ‚˜ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°©ν•΄ν•˜μ§€ μ•Šλ„둝 μˆ˜ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

 

μŠ€ν”„λ§ μŠ€μΌ€μ€„λŸ¬ λž€?

μŠ€μΌ€μ€„λŸ¬λž€ νŠΉμ •ν•œ μ‹œκ°„μ— λ“±λ‘λœ μž‘μ—…μ„ μžλ™μœΌλ‘œ μ‹€ν–‰μ‹œν‚€λŠ” 것이닀. μŠ€ν”„λ§ μŠ€μΌ€μ€„λŸ¬λŠ” Spring Frameworkμ—μ„œ 기본적으둜 μ œκ³΅ν•˜λŠ” Scheduler이닀. 

 

μŠ€ν”„λ§ μŠ€μΌ€μ€„λŸ¬μ˜ νŠΉμ§•

좔가적인 μ˜μ‘΄μ„± λΆˆν•„μš” : Sprign Framework의 κΈ°λ³Έ κΈ°λŠ₯ 

μ‚¬μš©μ΄ μ‰¬μ›€ : @Component와 @Scheduled 

1개의 Tread pool μ‚¬μš© : Schedule이 λλ‚˜μ•Ό λ‹€μŒ Schedule μ‹€ν–‰ κ°€λŠ₯

 

cron ν‘œν˜„μ‹

cron = 0 * * * * ? : μ•žμ—μ„œλΆ€ν„° 초, λΆ„, μ‹œ, 일, μ›”, μš”μΌ (연도) 순으둜 μ§„ν–‰λœλ‹€.

좜처 : https://madplay .github.io/post/a-guide -to-cron-expression

 

  • cronν‘œν˜„μ‹ : 특수문자
    • * : λͺ¨λ“  κ°’(λ§€μ‹œ, 맀일, 맀주처럼 μ‚¬μš©ν•œλ‹€.)
    • ? : νŠΉμ • 값이 μ•„λ‹Œ μ–΄λ–€ 값이든 상관 μ—†μŒ
    • - : λ²”μœ„λ₯Ό 지정할 λ•Œ
    • , : μ—¬λŸ¬ 값을 지정할 λ•Œ
    • / : 증뢄값, 즉 μ΄ˆκΈ°κ°’κ³Ό μ¦κ°€μΉ˜λ₯Ό μ„€μ •ν•  λ•Œ
    • L : 지정할 수 μžˆλŠ” λ²”μœ„μ˜ λ§ˆμ§€λ§‰ κ°’ ν‘œμ‹œ
    • W : κ°€μž₯ κ°€κΉŒμš΄ 평일(weekday)을 μ„€μ •ν•  λ•Œ
    • # : N번 μ§Έ νŠΉμ • μš”μΌμ„ μ„€μ •ν•  λ•Œ

 

  • λ‹€μ–‘ν•œ cron ν‘œν˜„μ‹ μ˜ˆμ‹œ
    좜처 : IBM Knowledge Center