๋ฐฐ์น ์ฒ๋ฆฌ
ใป ์ผ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ํ๋ฒ์ ์ฒ๋ฆฌํ๋๊ฒ
ใป ์ผ์ ํ ์์์ ๋ฐ๋ผ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง
ใป ์๋ต์ฑ๋ณด๋ค ์๊ฐ๋น ์ฒ๋ฆฌ๋์ ์ฐ์ ์ํ๋ ์ฒ๋ฆฌ๋ฐฉ์!
โฐ ์ก ์ค์ผ์ค๋ฌ, ์ ธ ์คํฌ๋ฆฝํธ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฑ์ผ๋ก ๊ตฌํํ ์ ์๋ค.
๋ฐฐ์น์ฒ๋ฆฌ ์ถฉ์กฑ ์กฐ๊ฑด
ใป ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ ๋ฆฌ์์ค๋ก ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด์ผ ํจ
ใป ๊ฐ๋ฅํ ํ ์ค๋จ๋ ์์
์ ๋ค์ ๊ณ์ํ ์ ์์ด์ผ ํจ
ใป ๋ค์ํ ์คํ ์กฐ๊ฑด์ ์ง์ํด์ผ ํจ.
ใป ๋ค์ํ ์
์ถ๋ ฅ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฃฐ ์ ์์ด์ผ ํจ
์คํ๋ง ๋ฐฐ์น
ใป ์คํ๋ง์์ ์ ๊ณตํด์ฃผ๋ ๋ฐฐ์น ํ๋ ์์ํฌ
ใป ์คํ๋ง์ด ๊ฐ์ง๊ณ ์๋ 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
[์ฐ์ํํ ํฌ์ธ๋ฏธ๋] ์ฐ์ํ ์คํ๋ง ๋ฐฐ์น ํ๊ธฐ
์ฐ์ํ ์คํ๋ง ๋ฐฐ์น ์ง๋๋ฌ์ ์ด์ด์ ์ด ์ข๊ฒ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
์ฑ ์คํ๋ง ์ฒ ์ ์ ๋ฌธ